Visualizza un messaggio singolo
Vecchio 12-11-2011, 21:17   #11
Carletto73
Guppy
 
L'avatar di Carletto73
 
Registrato: Feb 2010
Cittā: Bologna
Acquariofilo: Marino
N° Acquari: 1
Etā : 50
Messaggi: 126
Foto: 9 Albums: 2
Post "Grazie" / "Mi Piace"
Grazie (Dati):
Grazie (Ricev.):
Mi piace (Dati):
Mi piace (Ricev.):
Mentioned: 0 Post(s)
Feedback 1/100%

Annunci Mercatino: 0
Sperando che sia leggibile posto un mio programmino che gestisce 9 pwm per le luci (blu dx e sx, 10000K dx e sx, 20000K dx e sx e rgb).

io uso l'arduino mega per via dei display. come interfaccia utente ha solo il web per ora.
possiede un log per salvare sulla memory i dati della vasca secondo per secondo


codice:
// Include delle librerie usate
#include "EtherShield.h"   // EtherShield_1.6.zip
#include <SD.h>            // Inclusa
#include "Wire.h"          // Inclusa
#include <EEPROM.h>        // Inclusa

// Definizione pin utilizzati
#define SD_INT               2
#define PWM_BLU_SX           3
#define SD_CS                4
#define PWM_BLU_DX           5
#define PWM_10K_SX           6
#define PWM_10K_DX           7
#define PWM_20K_SX           8
#define PWM_20K_DX           9
#define PWM_RGB_RED          10
#define PWM_RGB_GREEN        11
#define PWM_RGB_BLUE         12
#define LED_ONBOARD          13
#define I2C_SDA              20
#define I2C_SCL              21
#define SPI_MISO             50
#define SPI_MOSI             51
#define SPI_SCK              52
#define ENC28J60_CONTROL_CS  53

// please modify the following two lines. mac and ip have to be unique
// in your local area network. You can not have the same numbers in
// two devices:
static uint8_t mymac[6] = {0x54,0x55,0x58,0x10,0x00,0x25}; 
static uint8_t myip[4] = {192,168,1,25};
static uint8_t buf[BUFFER_SIZE + 1];
static char strbuf[STR_BUFFER_SIZE];

static long          msLogger;
static long          msResetWeb;
static unsigned long msCurrent;
static long          msLastUpdateBluDx;
static long          msLastUpdateBluSx;
static long          msLastUpdate10kDx;
static long          msLastUpdate10kSx;
static long          msLastUpdate20kDx;
static long          msLastUpdate20kSx;
static long          msLastUpdateRRGB;
static long          msLastUpdateGRGB;
static long          msLastUpdateBRGB;
static long          msLastUpdateRTC;

static int           sdError;
static int           sdLogInCorso;
static File          sdDataFile;
static String        sdDataString;
static int           rtcSecond;
static int           rtcMinute;
static int           rtcHour;
static int           rtcWeekDay;
static int           rtcMonthDay;
static int           rtcMonth;
static int           rtcYear;
static int           luciOraAccensione;
static int           luciMinutoAccensione;
static int           luciMinutiDurataAlba;
static int           luciOreAccensioneCompleta;
static int           luciMinutiAccensioneCompleta;
static int           luciMinutiDurataTramonto;
static int           luciTargetBluSx;
static int           luciTargetBluDx;
static int           luciTarget10kSx;
static int           luciTarget10kDx;
static int           luciTarget20kSx;
static int           luciTarget20kDx;
static int           luciTargetRRGB;
static int           luciTargetGRGB;
static int           luciTargetBRGB;
static int           luciTipoAlbaTramonto; // bit 0 (prima blu poi bianchi), bit 1 (effetto est/ovest)
static int           luciTargetRRGBLunare;
static int           luciTargetGRGBLunare;
static int           luciTargetBRGBLunare;
static int           luciCurrentBluDx;
static int           luciCurrentBluSx;
static int           luciCurrent10kDx;
static int           luciCurrent10kSx;
static int           luciCurrent20kDx;
static int           luciCurrent20kSx;
static int           luciCurrentRRGB;
static int           luciCurrentGRGB;
static int           luciCurrentBRGB;


//static  int secondoCorrente;
//static  int secondoAccensioneBluDx;
//static  int secondoAccensioneBluSx;
//static  int secondoAccensioneBiancoDx;
//static  int secondoAccensioneBiancoSx;
//static  int secondoSpegnimentoBluDx;
//static  int secondoSpegnimentoBluSx;
//static  int secondoSpegnimentoBiancoDx;
//static  int secondoSpegnimentoBiancoSx;
//static  int decimiSecondoIncrementoBluDx;
//static  int decimiSecondoIncrementoBluSx;
//static  int decimiSecondoIncremento10kDx;
//static  int decimiSecondoIncremento10kSx;
//static  int decimiSecondoIncremento20kDx;
//static  int decimiSecondoIncremento20kSx;
//static  int decimiSecondoIncrementoRRGB;
//static  int decimiSecondoIncrementoGRGB;
//static  int decimiSecondoIncrementoBRGB;
//static  int decimiSecondoDecrementoBluDx;
//static  int decimiSecondoDecrementoBluSx;
//static  int decimiSecondoDecremento10kDx;
//static  int decimiSecondoDecremento10kSx;
//static  int decimiSecondoDecremento20kDx;
//static  int decimiSecondoDecremento20kSx;
//static  int decimiSecondoDecrementoRRGB;
//static  int decimiSecondoDecrementoGRGB;
//static  int decimiSecondoDecrementoBRGB;
//static  int luceBluDxAccesa;
//static  int luceBluSxAccesa;
//static  int luceBiancaDxAccesa;
//static  int luceBiancaSxAccesa;
//static  int luceRGBDiurnaAccesa;

// Include dei files del programma
#include "luci.h"
#include "web.h"
#include "sd.h"
#include "rtc.h"

void setup()
{

  msCurrent = 0;

//  Serial.begin(9600);
//  Serial.println("inizio");
  inizializza_enc28j60();
  inizializza_sd();
  inizializza_rtc();
  inizializza_luci();

}


void loop()
{
  msCurrent = millis();
  rtc_getDateTime();
  gestione_luci();
  logger_sd();
  webserver();

//  Serial.println("inizio ----------------------------");
//  Serial.print("secondoCorrente: ");
//  Serial.println(secondoCorrente);
//  Serial.print("luceBluDxAccesa: ");
//  Serial.println(luceBluDxAccesa);
//  Serial.print("luceBluSxAccesa: ");
//  Serial.println(luceBluSxAccesa);
//  Serial.print("luceBiancaDxAccesa: ");
//  Serial.println(luceBiancaDxAccesa);
//  Serial.print("luceBiancaSxAccesa: ");
//  Serial.println(luceBiancaSxAccesa);
//  Serial.print("luceRGBDiurnaAccesa: ");
//  Serial.println(luceRGBDiurnaAccesa);
//
//  Serial.print("luciCurrentBluDx: ");
//  Serial.println(luciCurrentBluDx);
//  Serial.print("luciCurrentBluSx: ");
//  Serial.println(luciCurrentBluSx);
//  Serial.print("luciCurrent10kDx: ");
//  Serial.println(luciCurrent10kDx);
//  Serial.print("luciCurrent10kSx: ");
//  Serial.println(luciCurrent10kSx);
//  Serial.print("luciCurrent20kDx: ");
//  Serial.println(luciCurrent20kDx);
//  Serial.print("luciCurrent20kSx: ");
//  Serial.println(luciCurrent20kSx);
//  Serial.print("luciCurrentRRGB: ");
//  Serial.println(luciCurrentRRGB);
//  Serial.print("luciCurrentGRGB: ");
//  Serial.println(luciCurrentGRGB);
//  Serial.print("luciCurrentBRGB: ");
//  Serial.println(luciCurrentBRGB);


}
luci.h
codice:
#define INDIRIZZOLUCIORAACCENSIONE 0
#define INDIRIZZOLUCIMINUTOACCENSIONE 1
#define INDIRIZZOLUCIMINUTIDURATAALBA 2
#define INDIRIZZOLUCIOREACCENSIONECOMPLETA 3
#define INDIRIZZOLUCIMINUTIACCENSIONECOMPLETA 4
#define INDIRIZZOLUCIMINUTIDURATATRAMANTO 5
#define INDIRIZZOLUCITARGETBLUSX 6
#define INDIRIZZOLUCITARGETBLUDX 7
#define INDIRIZZOLUCITARGET10KSX 8
#define INDIRIZZOLUCITARGET10KDX 9
#define INDIRIZZOLUCITARGET20KSX 10
#define INDIRIZZOLUCITARGET20KDX 11
#define INDIRIZZOLUCITARGETRRGB 12
#define INDIRIZZOLUCITARGETGRGB 13
#define INDIRIZZOLUCITARGETBRGB 14
#define INDIRIZZOLUCITIPOALBATRAMONTO 15
#define INDIRIZZOLUCITARGETRRGBLUNARE 16
#define INDIRIZZOLUCITARGETGRGBLUNARE 17
#define INDIRIZZOLUCITARGETBRGBLUNARE 18

void inizializza_luci()
{
  luciOraAccensione =            EEPROM.read(INDIRIZZOLUCIORAACCENSIONE);
  luciMinutoAccensione =         EEPROM.read(INDIRIZZOLUCIMINUTOACCENSIONE);
  luciMinutiDurataAlba =         EEPROM.read(INDIRIZZOLUCIMINUTIDURATAALBA);
  luciOreAccensioneCompleta =    EEPROM.read(INDIRIZZOLUCIOREACCENSIONECOMPLETA);
  luciMinutiAccensioneCompleta = EEPROM.read(INDIRIZZOLUCIMINUTIACCENSIONECOMPLETA);
  luciMinutiDurataTramonto =     EEPROM.read(INDIRIZZOLUCIMINUTIDURATATRAMANTO);
  luciTargetBluSx =              EEPROM.read(INDIRIZZOLUCITARGETBLUSX);
  luciTargetBluDx =              EEPROM.read(INDIRIZZOLUCITARGETBLUDX);
  luciTarget10kSx =              EEPROM.read(INDIRIZZOLUCITARGET10KSX);
  luciTarget10kDx =              EEPROM.read(INDIRIZZOLUCITARGET10KDX);
  luciTarget20kSx =              EEPROM.read(INDIRIZZOLUCITARGET20KSX);
  luciTarget20kDx =              EEPROM.read(INDIRIZZOLUCITARGET20KDX);
  luciTargetRRGB =               EEPROM.read(INDIRIZZOLUCITARGETRRGB);
  luciTargetGRGB =               EEPROM.read(INDIRIZZOLUCITARGETGRGB);
  luciTargetBRGB =               EEPROM.read(INDIRIZZOLUCITARGETBRGB);
  luciTipoAlbaTramonto =         EEPROM.read(INDIRIZZOLUCITIPOALBATRAMONTO);
  luciTargetRRGBLunare =         EEPROM.read(INDIRIZZOLUCITARGETRRGBLUNARE);
  luciTargetGRGBLunare =         EEPROM.read(INDIRIZZOLUCITARGETGRGBLUNARE);
  luciTargetBRGBLunare =         EEPROM.read(INDIRIZZOLUCITARGETBRGBLUNARE);
  luciCurrentBluDx = 0;
  luciCurrentBluSx = 0;
  luciCurrent10kDx = 0;
  luciCurrent10kSx = 0;
  luciCurrent20kDx = 0;
  luciCurrent20kSx = 0;
  luciCurrentRRGB = 0;
  luciCurrentGRGB = 0;
  luciCurrentBRGB = 0;
}

void gestione_luci()
{
  int secondoCorrente;
  int secondoAccensioneBluDx;
  int secondoAccensioneBluSx;
  int secondoAccensioneBiancoDx;
  int secondoAccensioneBiancoSx;
  int secondoSpegnimentoBluDx;
  int secondoSpegnimentoBluSx;
  int secondoSpegnimentoBiancoDx;
  int secondoSpegnimentoBiancoSx;
  int decimiSecondoIncrementoBluDx;
  int decimiSecondoIncrementoBluSx;
  int decimiSecondoIncremento10kDx;
  int decimiSecondoIncremento10kSx;
  int decimiSecondoIncremento20kDx;
  int decimiSecondoIncremento20kSx;
  int decimiSecondoIncrementoRRGB;
  int decimiSecondoIncrementoGRGB;
  int decimiSecondoIncrementoBRGB;
  int decimiSecondoDecrementoBluDx;
  int decimiSecondoDecrementoBluSx;
  int decimiSecondoDecremento10kDx;
  int decimiSecondoDecremento10kSx;
  int decimiSecondoDecremento20kDx;
  int decimiSecondoDecremento20kSx;
  int decimiSecondoDecrementoRRGB;
  int decimiSecondoDecrementoGRGB;
  int decimiSecondoDecrementoBRGB;
  int luceBluDxAccesa;
  int luceBluSxAccesa;
  int luceBiancaDxAccesa;
  int luceBiancaSxAccesa;
  int luceRGBDiurnaAccesa;
  int obiettivoBluDx;
  int obiettivoBluSx;
  int obiettivo10kDx;
  int obiettivo10kSx;
  int obiettivo20kDx;
  int obiettivo20kSx;
  int obiettivoRRGB;
  int obiettivoGRGB;
  int obiettivoBRGB;
  
  secondoCorrente = (rtcHour * 360) + (rtcMinute * 6) + (rtcSecond / 10);

  secondoAccensioneBluDx = (luciOraAccensione * 360) + (luciMinutoAccensione * 6);
  secondoSpegnimentoBiancoDx = secondoAccensioneBluDx + (luciMinutiDurataAlba * 6) + (luciOreAccensioneCompleta * 360) + (luciMinutiAccensioneCompleta * 6);
  if (luciTipoAlbaTramonto == 0)
  {
    secondoAccensioneBluSx = secondoAccensioneBluDx;
    secondoAccensioneBiancoDx = secondoAccensioneBluDx;
    secondoAccensioneBiancoSx = secondoAccensioneBluDx;
    secondoSpegnimentoBluDx = secondoSpegnimentoBiancoDx;
    secondoSpegnimentoBluSx = secondoSpegnimentoBiancoDx;
    secondoSpegnimentoBiancoSx = secondoSpegnimentoBiancoDx;
    if (luciTargetBluDx == 0) {decimiSecondoIncrementoBluDx = luciMinutiDurataAlba * 600;}
    else                      {decimiSecondoIncrementoBluDx = (luciMinutiDurataAlba * 600) / luciTargetBluDx;}
    if (luciTargetBluSx == 0) {decimiSecondoIncrementoBluSx = luciMinutiDurataAlba * 600;}
    else                      {decimiSecondoIncrementoBluSx = (luciMinutiDurataAlba * 600) / luciTargetBluSx;}
    if (luciTarget10kDx == 0) {decimiSecondoIncremento10kDx = luciMinutiDurataAlba * 600;}
    else                      {decimiSecondoIncremento10kDx = (luciMinutiDurataAlba * 600) / luciTarget10kDx;}
    if (luciTarget10kSx == 0) {decimiSecondoIncremento10kSx = luciMinutiDurataAlba * 600;}
    else                      {decimiSecondoIncremento10kSx = (luciMinutiDurataAlba * 600) / luciTarget10kSx;}
    if (luciTarget20kDx == 0) {decimiSecondoIncremento20kDx = luciMinutiDurataAlba * 600;}
    else                      {decimiSecondoIncremento20kDx = (luciMinutiDurataAlba * 600) / luciTarget20kDx;}
    if (luciTarget20kSx == 0) {decimiSecondoIncremento20kSx = luciMinutiDurataAlba * 600;}
    else                      {decimiSecondoIncremento20kSx = (luciMinutiDurataAlba * 600) / luciTarget20kSx;}
    if (luciTargetRRGB > luciTargetRRGBLunare)      {decimiSecondoIncrementoRRGB = (luciMinutiDurataAlba * 600) / (luciTargetRRGB - luciTargetRRGBLunare);}
    else if (luciTargetRRGB < luciTargetRRGBLunare) {decimiSecondoIncrementoRRGB = (luciMinutiDurataAlba * 600) / (luciTargetRRGBLunare - luciTargetRRGB);}
    else                                            {decimiSecondoIncrementoRRGB = (luciMinutiDurataAlba * 600);}
    if (luciTargetGRGB > luciTargetGRGBLunare)      {decimiSecondoIncrementoGRGB = (luciMinutiDurataAlba * 600) / (luciTargetGRGB - luciTargetGRGBLunare);}
    else if (luciTargetGRGB < luciTargetGRGBLunare) {decimiSecondoIncrementoGRGB = (luciMinutiDurataAlba * 600) / (luciTargetGRGBLunare - luciTargetGRGB);}
    else                                            {decimiSecondoIncrementoGRGB = (luciMinutiDurataAlba * 600);}
    if (luciTargetBRGB > luciTargetBRGBLunare)      {decimiSecondoIncrementoBRGB = (luciMinutiDurataAlba * 600) / (luciTargetBRGB - luciTargetBRGBLunare);}
    else if (luciTargetBRGB < luciTargetBRGBLunare) {decimiSecondoIncrementoBRGB = (luciMinutiDurataAlba * 600) / (luciTargetBRGBLunare - luciTargetBRGB);}
    else                                            {decimiSecondoIncrementoBRGB = (luciMinutiDurataAlba * 600);}
    if (luciTargetBluDx == 0) {decimiSecondoDecrementoBluDx = luciMinutiDurataTramonto * 600;}
    else                      {decimiSecondoDecrementoBluDx = (luciMinutiDurataTramonto * 600) / luciTargetBluDx;}
    if (luciTargetBluSx == 0) {decimiSecondoDecrementoBluSx = luciMinutiDurataTramonto * 600;}
    else                      {decimiSecondoDecrementoBluSx = (luciMinutiDurataTramonto * 600) / luciTargetBluSx;}
    if (luciTarget10kDx == 0) {decimiSecondoDecremento10kDx = luciMinutiDurataTramonto * 600;}
    else                      {decimiSecondoDecremento10kDx = (luciMinutiDurataTramonto * 600) / luciTarget10kDx;}
    if (luciTarget10kSx == 0) {decimiSecondoDecremento10kSx = luciMinutiDurataTramonto * 600;}
    else                      {decimiSecondoDecremento10kSx = (luciMinutiDurataTramonto * 600) / luciTarget10kSx;}
    if (luciTarget20kDx == 0) {decimiSecondoDecremento20kDx = luciMinutiDurataTramonto * 600;}
    else                      {decimiSecondoDecremento20kDx = (luciMinutiDurataTramonto * 600) / luciTarget20kDx;}
    if (luciTarget20kSx == 0) {decimiSecondoDecremento20kSx = luciMinutiDurataTramonto * 600;}
    else                      {decimiSecondoDecremento20kSx = (luciMinutiDurataTramonto * 600) / luciTarget20kSx;}
    if (luciTargetRRGB > luciTargetRRGBLunare)      {decimiSecondoDecrementoRRGB = (luciMinutiDurataTramonto * 600) / (luciTargetRRGB - luciTargetRRGBLunare);}
    else if (luciTargetRRGB < luciTargetRRGBLunare) {decimiSecondoDecrementoRRGB = (luciMinutiDurataTramonto * 600) / (luciTargetRRGBLunare - luciTargetRRGB);}
    else                                            {decimiSecondoDecrementoRRGB = (luciMinutiDurataTramonto * 600);}
    if (luciTargetGRGB > luciTargetGRGBLunare)      {decimiSecondoDecrementoGRGB = (luciMinutiDurataTramonto * 600) / (luciTargetGRGB - luciTargetGRGBLunare);}
    else if (luciTargetGRGB < luciTargetGRGBLunare) {decimiSecondoDecrementoGRGB = (luciMinutiDurataTramonto * 600) / (luciTargetGRGBLunare - luciTargetGRGB);}
    else                                            {decimiSecondoDecrementoGRGB = (luciMinutiDurataTramonto * 600);}
    if (luciTargetBRGB > luciTargetBRGBLunare)      {decimiSecondoDecrementoBRGB = (luciMinutiDurataTramonto * 600) / (luciTargetBRGB - luciTargetBRGBLunare);}
    else if (luciTargetBRGB < luciTargetBRGBLunare) {decimiSecondoDecrementoBRGB = (luciMinutiDurataTramonto * 600) / (luciTargetBRGBLunare - luciTargetBRGB);}
    else                                            {decimiSecondoDecrementoBRGB = (luciMinutiDurataTramonto * 600);}
  }
  else if (luciTipoAlbaTramonto == 1)
  {
    secondoAccensioneBluSx = secondoAccensioneBluDx;
    secondoAccensioneBiancoDx = secondoAccensioneBluDx + ((luciMinutiDurataAlba * 6) / 2);
    secondoAccensioneBiancoSx = secondoAccensioneBluDx + ((luciMinutiDurataAlba * 6) / 2);
    secondoSpegnimentoBluDx = secondoSpegnimentoBiancoDx + ((luciMinutiDurataTramonto * 6) / 2);
    secondoSpegnimentoBluSx = secondoSpegnimentoBiancoDx + ((luciMinutiDurataTramonto * 6) / 2);
    secondoSpegnimentoBiancoSx = secondoSpegnimentoBiancoDx;
    if (luciTargetBluDx == 0) {decimiSecondoIncrementoBluDx = luciMinutiDurataAlba * 300;}
    else                      {decimiSecondoIncrementoBluDx = (luciMinutiDurataAlba * 300) / luciTargetBluDx;}
    if (luciTargetBluSx == 0) {decimiSecondoIncrementoBluSx = luciMinutiDurataAlba * 300;}
    else                      {decimiSecondoIncrementoBluSx = (luciMinutiDurataAlba * 300) / luciTargetBluSx;}
    if (luciTarget10kDx == 0) {decimiSecondoIncremento10kDx = luciMinutiDurataAlba * 300;}
    else                      {decimiSecondoIncremento10kDx = (luciMinutiDurataAlba * 300) / luciTarget10kDx;}
    if (luciTarget10kSx == 0) {decimiSecondoIncremento10kSx = luciMinutiDurataAlba * 300;}
    else                      {decimiSecondoIncremento10kSx = (luciMinutiDurataAlba * 300) / luciTarget10kSx;}
    if (luciTarget20kDx == 0) {decimiSecondoIncremento20kDx = luciMinutiDurataAlba * 300;}
    else                      {decimiSecondoIncremento20kDx = (luciMinutiDurataAlba * 300) / luciTarget20kDx;}
    if (luciTarget20kSx == 0) {decimiSecondoIncremento20kSx = luciMinutiDurataAlba * 300;}
    else                      {decimiSecondoIncremento20kSx = (luciMinutiDurataAlba * 300) / luciTarget20kSx;}
    if (luciTargetRRGB > luciTargetRRGBLunare)      {decimiSecondoIncrementoRRGB = (luciMinutiDurataAlba * 600) / (luciTargetRRGB - luciTargetRRGBLunare);}
    else if (luciTargetRRGB < luciTargetRRGBLunare) {decimiSecondoIncrementoRRGB = (luciMinutiDurataAlba * 600) / (luciTargetRRGBLunare - luciTargetRRGB);}
    else                                            {decimiSecondoIncrementoRRGB = (luciMinutiDurataAlba * 600);}
    if (luciTargetGRGB > luciTargetGRGBLunare)      {decimiSecondoIncrementoGRGB = (luciMinutiDurataAlba * 600) / (luciTargetGRGB - luciTargetGRGBLunare);}
    else if (luciTargetGRGB < luciTargetGRGBLunare) {decimiSecondoIncrementoGRGB = (luciMinutiDurataAlba * 600) / (luciTargetGRGBLunare - luciTargetGRGB);}
    else                                            {decimiSecondoIncrementoGRGB = (luciMinutiDurataAlba * 600);}
    if (luciTargetBRGB > luciTargetBRGBLunare)      {decimiSecondoIncrementoBRGB = (luciMinutiDurataAlba * 600) / (luciTargetBRGB - luciTargetBRGBLunare);}
    else if (luciTargetBRGB < luciTargetBRGBLunare) {decimiSecondoIncrementoBRGB = (luciMinutiDurataAlba * 600) / (luciTargetBRGBLunare - luciTargetBRGB);}
    else                                            {decimiSecondoIncrementoBRGB = (luciMinutiDurataAlba * 600);}
    if (luciTargetBluDx == 0) {decimiSecondoDecrementoBluDx = luciMinutiDurataTramonto * 300;}
    else                      {decimiSecondoDecrementoBluDx = (luciMinutiDurataTramonto * 300) / luciTargetBluDx;}
    if (luciTargetBluSx == 0) {decimiSecondoDecrementoBluSx = luciMinutiDurataTramonto * 300;}
    else                      {decimiSecondoDecrementoBluSx = (luciMinutiDurataTramonto * 300) / luciTargetBluSx;}
    if (luciTarget10kDx == 0) {decimiSecondoDecremento10kDx = luciMinutiDurataTramonto * 300;}
    else                      {decimiSecondoDecremento10kDx = (luciMinutiDurataTramonto * 300) / luciTarget10kDx;}
    if (luciTarget10kSx == 0) {decimiSecondoDecremento10kSx = luciMinutiDurataTramonto * 300;}
    else                      {decimiSecondoDecremento10kSx = (luciMinutiDurataTramonto * 300) / luciTarget10kSx;}
    if (luciTarget20kDx == 0) {decimiSecondoDecremento20kDx = luciMinutiDurataTramonto * 300;}
    else                      {decimiSecondoDecremento20kDx = (luciMinutiDurataTramonto * 300) / luciTarget20kDx;}
    if (luciTarget20kSx == 0) {decimiSecondoDecremento20kSx = luciMinutiDurataTramonto * 300;}
    else                      {decimiSecondoDecremento20kSx = (luciMinutiDurataTramonto * 300) / luciTarget20kSx;}
    if (luciTargetRRGB > luciTargetRRGBLunare)      {decimiSecondoDecrementoRRGB = (luciMinutiDurataTramonto * 600) / (luciTargetRRGB - luciTargetRRGBLunare);}
    else if (luciTargetRRGB < luciTargetRRGBLunare) {decimiSecondoDecrementoRRGB = (luciMinutiDurataTramonto * 600) / (luciTargetRRGBLunare - luciTargetRRGB);}
    else                                            {decimiSecondoDecrementoRRGB = (luciMinutiDurataTramonto * 600);}
    if (luciTargetGRGB > luciTargetGRGBLunare)      {decimiSecondoDecrementoGRGB = (luciMinutiDurataTramonto * 600) / (luciTargetGRGB - luciTargetGRGBLunare);}
    else if (luciTargetGRGB < luciTargetGRGBLunare) {decimiSecondoDecrementoGRGB = (luciMinutiDurataTramonto * 600) / (luciTargetGRGBLunare - luciTargetGRGB);}
    else                                            {decimiSecondoDecrementoGRGB = (luciMinutiDurataTramonto * 600);}
    if (luciTargetBRGB > luciTargetBRGBLunare)      {decimiSecondoDecrementoBRGB = (luciMinutiDurataTramonto * 600) / (luciTargetBRGB - luciTargetBRGBLunare);}
    else if (luciTargetBRGB < luciTargetBRGBLunare) {decimiSecondoDecrementoBRGB = (luciMinutiDurataTramonto * 600) / (luciTargetBRGBLunare - luciTargetBRGB);}
    else                                            {decimiSecondoDecrementoBRGB = (luciMinutiDurataTramonto * 600);}
  }
  else if (luciTipoAlbaTramonto == 2)
  {
    secondoAccensioneBluSx = secondoAccensioneBluDx + ((luciMinutiDurataAlba * 6) / 2);
    secondoAccensioneBiancoDx = secondoAccensioneBluDx;
    secondoAccensioneBiancoSx = secondoAccensioneBluDx + ((luciMinutiDurataAlba * 6) / 2);
    secondoSpegnimentoBluDx = secondoSpegnimentoBiancoDx;
    secondoSpegnimentoBluSx = secondoSpegnimentoBiancoDx + ((luciMinutiDurataTramonto * 6) / 2);
    secondoSpegnimentoBiancoSx = secondoSpegnimentoBiancoDx + ((luciMinutiDurataTramonto * 6) / 2);
    if (luciTargetBluDx == 0) {decimiSecondoIncrementoBluDx = luciMinutiDurataAlba * 300;}
    else                      {decimiSecondoIncrementoBluDx = (luciMinutiDurataAlba * 300) / luciTargetBluDx;}
    if (luciTargetBluSx == 0) {decimiSecondoIncrementoBluSx = luciMinutiDurataAlba * 300;}
    else                      {decimiSecondoIncrementoBluSx = (luciMinutiDurataAlba * 300) / luciTargetBluSx;}
    if (luciTarget10kDx == 0) {decimiSecondoIncremento10kDx = luciMinutiDurataAlba * 300;}
    else                      {decimiSecondoIncremento10kDx = (luciMinutiDurataAlba * 300) / luciTarget10kDx;}
    if (luciTarget10kSx == 0) {decimiSecondoIncremento10kSx = luciMinutiDurataAlba * 300;}
    else                      {decimiSecondoIncremento10kSx = (luciMinutiDurataAlba * 300) / luciTarget10kSx;}
    if (luciTarget20kDx == 0) {decimiSecondoIncremento20kDx = luciMinutiDurataAlba * 300;}
    else                      {decimiSecondoIncremento20kDx = (luciMinutiDurataAlba * 300) / luciTarget20kDx;}
    if (luciTarget20kSx == 0) {decimiSecondoIncremento20kSx = luciMinutiDurataAlba * 300;}
    else                      {decimiSecondoIncremento20kSx = (luciMinutiDurataAlba * 300) / luciTarget20kSx;}
    if (luciTargetRRGB > luciTargetRRGBLunare)      {decimiSecondoIncrementoRRGB = (luciMinutiDurataAlba * 600) / (luciTargetRRGB - luciTargetRRGBLunare);}
    else if (luciTargetRRGB < luciTargetRRGBLunare) {decimiSecondoIncrementoRRGB = (luciMinutiDurataAlba * 600) / (luciTargetRRGBLunare - luciTargetRRGB);}
    else                                            {decimiSecondoIncrementoRRGB = (luciMinutiDurataAlba * 600);}
    if (luciTargetGRGB > luciTargetGRGBLunare)      {decimiSecondoIncrementoGRGB = (luciMinutiDurataAlba * 600) / (luciTargetGRGB - luciTargetGRGBLunare);}
    else if (luciTargetGRGB < luciTargetGRGBLunare) {decimiSecondoIncrementoGRGB = (luciMinutiDurataAlba * 600) / (luciTargetGRGBLunare - luciTargetGRGB);}
    else                                            {decimiSecondoIncrementoGRGB = (luciMinutiDurataAlba * 600);}
    if (luciTargetBRGB > luciTargetBRGBLunare)      {decimiSecondoIncrementoBRGB = (luciMinutiDurataAlba * 600) / (luciTargetBRGB - luciTargetBRGBLunare);}
    else if (luciTargetBRGB < luciTargetBRGBLunare) {decimiSecondoIncrementoBRGB = (luciMinutiDurataAlba * 600) / (luciTargetBRGBLunare - luciTargetBRGB);}
    else                                            {decimiSecondoIncrementoBRGB = (luciMinutiDurataAlba * 600);}
    if (luciTargetBluDx == 0) {decimiSecondoDecrementoBluDx = luciMinutiDurataTramonto * 300;}
    else                      {decimiSecondoDecrementoBluDx = (luciMinutiDurataTramonto * 300) / luciTargetBluDx;}
    if (luciTargetBluSx == 0) {decimiSecondoDecrementoBluSx = luciMinutiDurataTramonto * 300;}
    else                      {decimiSecondoDecrementoBluSx = (luciMinutiDurataTramonto * 300) / luciTargetBluSx;}
    if (luciTarget10kDx == 0) {decimiSecondoDecremento10kDx = luciMinutiDurataTramonto * 300;}
    else                      {decimiSecondoDecremento10kDx = (luciMinutiDurataTramonto * 300) / luciTarget10kDx;}
    if (luciTarget10kSx == 0) {decimiSecondoDecremento10kSx = luciMinutiDurataTramonto * 300;}
    else                      {decimiSecondoDecremento10kSx = (luciMinutiDurataTramonto * 300) / luciTarget10kSx;}
    if (luciTarget20kDx == 0) {decimiSecondoDecremento20kDx = luciMinutiDurataTramonto * 300;}
    else                      {decimiSecondoDecremento20kDx = (luciMinutiDurataTramonto * 300) / luciTarget20kDx;}
    if (luciTarget20kSx == 0) {decimiSecondoDecremento20kSx = luciMinutiDurataTramonto * 300;}
    else                      {decimiSecondoDecremento20kSx = (luciMinutiDurataTramonto * 300) / luciTarget20kSx;}
    if (luciTargetRRGB > luciTargetRRGBLunare)      {decimiSecondoDecrementoRRGB = (luciMinutiDurataTramonto * 600) / (luciTargetRRGB - luciTargetRRGBLunare);}
    else if (luciTargetRRGB < luciTargetRRGBLunare) {decimiSecondoDecrementoRRGB = (luciMinutiDurataTramonto * 600) / (luciTargetRRGBLunare - luciTargetRRGB);}
    else                                            {decimiSecondoDecrementoRRGB = (luciMinutiDurataTramonto * 600);}
    if (luciTargetGRGB > luciTargetGRGBLunare)      {decimiSecondoDecrementoGRGB = (luciMinutiDurataTramonto * 600) / (luciTargetGRGB - luciTargetGRGBLunare);}
    else if (luciTargetGRGB < luciTargetGRGBLunare) {decimiSecondoDecrementoGRGB = (luciMinutiDurataTramonto * 600) / (luciTargetGRGBLunare - luciTargetGRGB);}
    else                                            {decimiSecondoDecrementoGRGB = (luciMinutiDurataTramonto * 600);}
    if (luciTargetBRGB > luciTargetBRGBLunare)      {decimiSecondoDecrementoBRGB = (luciMinutiDurataTramonto * 600) / (luciTargetBRGB - luciTargetBRGBLunare);}
    else if (luciTargetBRGB < luciTargetBRGBLunare) {decimiSecondoDecrementoBRGB = (luciMinutiDurataTramonto * 600) / (luciTargetBRGBLunare - luciTargetBRGB);}
    else                                            {decimiSecondoDecrementoBRGB = (luciMinutiDurataTramonto * 600);}
  }
  else
  {
    secondoAccensioneBluSx = secondoAccensioneBluDx + ((luciMinutiDurataAlba * 6) / 4);
    secondoAccensioneBiancoDx = secondoAccensioneBluDx + (((luciMinutiDurataAlba * 6) / 4) * 2);
    secondoAccensioneBiancoSx = secondoAccensioneBluDx + (((luciMinutiDurataAlba * 6) / 4) * 3);
    secondoSpegnimentoBluDx = secondoSpegnimentoBiancoDx + (((luciMinutiDurataTramonto * 6) / 4) * 2);
    secondoSpegnimentoBluSx = secondoSpegnimentoBiancoDx + (((luciMinutiDurataTramonto * 6) / 4) * 3);
    secondoSpegnimentoBiancoSx = secondoSpegnimentoBiancoDx + ((luciMinutiDurataTramonto * 6) / 4);
    if (luciTargetBluDx == 0) {decimiSecondoIncrementoBluDx = luciMinutiDurataAlba * 150;}
    else                      {decimiSecondoIncrementoBluDx = (luciMinutiDurataAlba * 150) / luciTargetBluDx;}
    if (luciTargetBluSx == 0) {decimiSecondoIncrementoBluSx = luciMinutiDurataAlba * 150;}
    else                      {decimiSecondoIncrementoBluSx = (luciMinutiDurataAlba * 150) / luciTargetBluSx;}
    if (luciTarget10kDx == 0) {decimiSecondoIncremento10kDx = luciMinutiDurataAlba * 150;}
    else                      {decimiSecondoIncremento10kDx = (luciMinutiDurataAlba * 150) / luciTarget10kDx;}
    if (luciTarget10kSx == 0) {decimiSecondoIncremento10kSx = luciMinutiDurataAlba * 150;}
    else                      {decimiSecondoIncremento10kSx = (luciMinutiDurataAlba * 150) / luciTarget10kSx;}
    if (luciTarget20kDx == 0) {decimiSecondoIncremento20kDx = luciMinutiDurataAlba * 150;}
    else                      {decimiSecondoIncremento20kDx = (luciMinutiDurataAlba * 150) / luciTarget20kDx;}
    if (luciTarget20kSx == 0) {decimiSecondoIncremento20kSx = luciMinutiDurataAlba * 150;}
    else                      {decimiSecondoIncremento20kSx = (luciMinutiDurataAlba * 150) / luciTarget20kSx;}
    if (luciTargetRRGB > luciTargetRRGBLunare)      {decimiSecondoIncrementoRRGB = (luciMinutiDurataAlba * 600) / (luciTargetRRGB - luciTargetRRGBLunare);}
    else if (luciTargetRRGB < luciTargetRRGBLunare) {decimiSecondoIncrementoRRGB = (luciMinutiDurataAlba * 600) / (luciTargetRRGBLunare - luciTargetRRGB);}
    else                                            {decimiSecondoIncrementoRRGB = (luciMinutiDurataAlba * 600);}
    if (luciTargetGRGB > luciTargetGRGBLunare)      {decimiSecondoIncrementoGRGB = (luciMinutiDurataAlba * 600) / (luciTargetGRGB - luciTargetGRGBLunare);}
    else if (luciTargetGRGB < luciTargetGRGBLunare) {decimiSecondoIncrementoGRGB = (luciMinutiDurataAlba * 600) / (luciTargetGRGBLunare - luciTargetGRGB);}
    else                                            {decimiSecondoIncrementoGRGB = (luciMinutiDurataAlba * 600);}
    if (luciTargetBRGB > luciTargetBRGBLunare)      {decimiSecondoIncrementoBRGB = (luciMinutiDurataAlba * 600) / (luciTargetBRGB - luciTargetBRGBLunare);}
    else if (luciTargetBRGB < luciTargetBRGBLunare) {decimiSecondoIncrementoBRGB = (luciMinutiDurataAlba * 600) / (luciTargetBRGBLunare - luciTargetBRGB);}
    else                                            {decimiSecondoIncrementoBRGB = (luciMinutiDurataAlba * 600);}
    if (luciTargetBluDx == 0) {decimiSecondoDecrementoBluDx = luciMinutiDurataTramonto * 150;}
    else                      {decimiSecondoDecrementoBluDx = (luciMinutiDurataTramonto * 150) / luciTargetBluDx;}
    if (luciTargetBluSx == 0) {decimiSecondoDecrementoBluSx = luciMinutiDurataTramonto * 150;}
    else                      {decimiSecondoDecrementoBluSx = (luciMinutiDurataTramonto * 150) / luciTargetBluSx;}
    if (luciTarget10kDx == 0) {decimiSecondoDecremento10kDx = luciMinutiDurataTramonto * 150;}
    else                      {decimiSecondoDecremento10kDx = (luciMinutiDurataTramonto * 150) / luciTarget10kDx;}
    if (luciTarget10kSx == 0) {decimiSecondoDecremento10kSx = luciMinutiDurataTramonto * 150;}
    else                      {decimiSecondoDecremento10kSx = (luciMinutiDurataTramonto * 150) / luciTarget10kSx;}
    if (luciTarget20kDx == 0) {decimiSecondoDecremento20kDx = luciMinutiDurataTramonto * 150;}
    else                      {decimiSecondoDecremento20kDx = (luciMinutiDurataTramonto * 150) / luciTarget20kDx;}
    if (luciTarget20kSx == 0) {decimiSecondoDecremento20kSx = luciMinutiDurataTramonto * 150;}
    else                      {decimiSecondoDecremento20kSx = (luciMinutiDurataTramonto * 150) / luciTarget20kSx;}
    if (luciTargetRRGB > luciTargetRRGBLunare)      {decimiSecondoDecrementoRRGB = (luciMinutiDurataTramonto * 600) / (luciTargetRRGB - luciTargetRRGBLunare);}
    else if (luciTargetRRGB < luciTargetRRGBLunare) {decimiSecondoDecrementoRRGB = (luciMinutiDurataTramonto * 600) / (luciTargetRRGBLunare - luciTargetRRGB);}
    else                                            {decimiSecondoDecrementoRRGB = (luciMinutiDurataTramonto * 600);}
    if (luciTargetGRGB > luciTargetGRGBLunare)      {decimiSecondoDecrementoGRGB = (luciMinutiDurataTramonto * 600) / (luciTargetGRGB - luciTargetGRGBLunare);}
    else if (luciTargetGRGB < luciTargetGRGBLunare) {decimiSecondoDecrementoGRGB = (luciMinutiDurataTramonto * 600) / (luciTargetGRGBLunare - luciTargetGRGB);}
    else                                            {decimiSecondoDecrementoGRGB = (luciMinutiDurataTramonto * 600);}
    if (luciTargetBRGB > luciTargetBRGBLunare)      {decimiSecondoDecrementoBRGB = (luciMinutiDurataTramonto * 600) / (luciTargetBRGB - luciTargetBRGBLunare);}
    else if (luciTargetBRGB < luciTargetBRGBLunare) {decimiSecondoDecrementoBRGB = (luciMinutiDurataTramonto * 600) / (luciTargetBRGBLunare - luciTargetBRGB);}
    else                                            {decimiSecondoDecrementoBRGB = (luciMinutiDurataTramonto * 600);}
  }
  if (secondoAccensioneBluSx > 8639) {secondoAccensioneBluSx = secondoAccensioneBluSx - 8640;}
  if (secondoAccensioneBiancoDx > 8639) {secondoAccensioneBiancoDx = secondoAccensioneBiancoDx - 8640;}
  if (secondoAccensioneBiancoSx > 8639) {secondoAccensioneBiancoSx = secondoAccensioneBiancoSx - 8640;}
  if (secondoSpegnimentoBluDx > 8639) {secondoSpegnimentoBluDx = secondoSpegnimentoBluDx - 8640;}
  if (secondoSpegnimentoBluSx > 8639) {secondoSpegnimentoBluSx = secondoSpegnimentoBluSx - 8640;}
  if (secondoSpegnimentoBiancoDx > 8639) {secondoSpegnimentoBiancoDx = secondoSpegnimentoBiancoDx - 8640;}
  if (secondoSpegnimentoBiancoSx > 8639) {secondoSpegnimentoBiancoSx = secondoSpegnimentoBiancoSx - 8640;}

  luceBluDxAccesa = 0;
  luceBluSxAccesa = 0;
  luceBiancaDxAccesa = 0;
  luceBiancaSxAccesa = 0;
  luceRGBDiurnaAccesa = 0;

  if (secondoAccensioneBluDx < secondoSpegnimentoBluDx) {if ((secondoCorrente >= secondoAccensioneBluDx) && (secondoCorrente < secondoSpegnimentoBluDx)) {luceBluDxAccesa = 1;}}
  else                                                  {if ((secondoCorrente >= secondoAccensioneBluDx) || (secondoCorrente < secondoSpegnimentoBluDx)) {luceBluDxAccesa = 1;}}
  if (secondoAccensioneBluSx < secondoSpegnimentoBluSx) {if ((secondoCorrente >= secondoAccensioneBluSx) && (secondoCorrente < secondoSpegnimentoBluSx)) {luceBluSxAccesa = 1;}}
  else                                                  {if ((secondoCorrente >= secondoAccensioneBluSx) || (secondoCorrente < secondoSpegnimentoBluSx)) {luceBluSxAccesa = 1;}}
  if (secondoAccensioneBiancoDx < secondoSpegnimentoBiancoDx) {if ((secondoCorrente >= secondoAccensioneBiancoDx) && (secondoCorrente < secondoSpegnimentoBiancoDx)) {luceBiancaDxAccesa = 1;}}
  else                                                        {if ((secondoCorrente >= secondoAccensioneBiancoDx) || (secondoCorrente < secondoSpegnimentoBiancoDx)) {luceBiancaDxAccesa = 1;}}
  if (secondoAccensioneBiancoSx < secondoSpegnimentoBiancoSx) {if ((secondoCorrente >= secondoAccensioneBiancoSx) && (secondoCorrente < secondoSpegnimentoBiancoSx)) {luceBiancaSxAccesa = 1;}}
  else                                                        {if ((secondoCorrente >= secondoAccensioneBiancoSx) || (secondoCorrente < secondoSpegnimentoBiancoSx)) {luceBiancaSxAccesa = 1;}}
  if (secondoAccensioneBluDx < secondoSpegnimentoBiancoDx) {if ((secondoCorrente >= secondoAccensioneBluDx) && (secondoCorrente < secondoSpegnimentoBiancoDx)) {luceRGBDiurnaAccesa = 1;}}
  else                                                     {if ((secondoCorrente >= secondoAccensioneBluDx) || (secondoCorrente < secondoSpegnimentoBiancoDx)) {luceRGBDiurnaAccesa = 1;}}

  if (luceBluDxAccesa)     {obiettivoBluDx = luciTargetBluDx;}
  else                     {obiettivoBluDx = 0;}
  if (luceBluSxAccesa)     {obiettivoBluSx = luciTargetBluSx;}
  else                     {obiettivoBluSx = 0;}
  if (luceBiancaDxAccesa)  {obiettivo10kDx = luciTarget10kDx;}
  else                     {obiettivo10kDx = 0;}
  if (luceBiancaSxAccesa)  {obiettivo10kSx = luciTarget10kSx;}
  else                     {obiettivo10kSx = 0;}
  if (luceBiancaDxAccesa)  {obiettivo20kDx = luciTarget20kDx;}
  else                     {obiettivo20kDx = 0;}
  if (luceBiancaSxAccesa)  {obiettivo20kSx = luciTarget20kSx;}
  else                     {obiettivo20kSx = 0;}
  if (luceRGBDiurnaAccesa) {obiettivoRRGB = luciTargetRRGB;}
  else                     {obiettivoRRGB = luciTargetRRGBLunare;}
  if (luceRGBDiurnaAccesa) {obiettivoGRGB = luciTargetGRGB;}
  else                     {obiettivoGRGB = luciTargetGRGBLunare;}
  if (luceRGBDiurnaAccesa) {obiettivoBRGB = luciTargetBRGB;}
  else                     {obiettivoBRGB = luciTargetBRGBLunare;}

  if (luciCurrentBluDx < obiettivoBluDx)
  {
    if ((msCurrent - msLastUpdateBluDx) > (decimiSecondoIncrementoBluDx * 100))
    {
      msLastUpdateBluDx = msCurrent;
      luciCurrentBluDx++;
      analogWrite(PWM_BLU_DX, luciCurrentBluDx);
      return;
    }
  }
  else if (luciCurrentBluDx > obiettivoBluDx)
  {
    if ((msCurrent - msLastUpdateBluDx) > (decimiSecondoDecrementoBluDx * 100))
    {
      msLastUpdateBluDx = msCurrent;
      luciCurrentBluDx--;
      analogWrite(PWM_BLU_DX, luciCurrentBluDx);
      return;
    }
  }

  if (luciCurrentBluSx < obiettivoBluSx)
  {
    if ((msCurrent - msLastUpdateBluSx) > (decimiSecondoIncrementoBluSx * 100))
    {
      msLastUpdateBluSx = msCurrent;
      luciCurrentBluSx++;
      analogWrite(PWM_BLU_SX, luciCurrentBluSx);
      return;
    }
  }
  else if (luciCurrentBluSx > obiettivoBluSx)
  {
    if ((msCurrent - msLastUpdateBluSx) > (decimiSecondoDecrementoBluSx * 100))
    {
      msLastUpdateBluSx = msCurrent;
      luciCurrentBluSx--;
      analogWrite(PWM_BLU_SX, luciCurrentBluSx);
      return;
    }
  }

  if (luciCurrent10kDx < obiettivo10kDx)
  {
    if ((msCurrent - msLastUpdate10kDx) > (decimiSecondoIncremento10kDx * 100))
    {
      msLastUpdate10kDx = msCurrent;
      luciCurrent10kDx++;
      analogWrite(PWM_10K_DX, luciCurrent10kDx);
      return;
    }
  }
  else if (luciCurrent10kDx > obiettivo10kDx)
  {
    if ((msCurrent - msLastUpdate10kDx) > (decimiSecondoDecremento10kDx * 100))
    {
      msLastUpdate10kDx = msCurrent;
      luciCurrent10kDx--;
      analogWrite(PWM_10K_DX, luciCurrent10kDx);
      return;
    }
  }

  if (luciCurrent10kSx < obiettivo10kSx)
  {
    if ((msCurrent - msLastUpdate10kSx) > (decimiSecondoIncremento10kSx * 100))
    {
      msLastUpdate10kSx = msCurrent;
      luciCurrent10kSx++;
      analogWrite(PWM_10K_SX, luciCurrent10kSx);
      return;
    }
  }
  else if (luciCurrent10kSx > obiettivo10kSx)
  {
    if ((msCurrent - msLastUpdate10kSx) > (decimiSecondoDecremento10kSx * 100))
    {
      msLastUpdate10kSx = msCurrent;
      luciCurrent10kSx--;
      analogWrite(PWM_10K_SX, luciCurrent10kSx);
      return;
    }
  }

  if (luciCurrent20kDx < obiettivo20kDx)
  {
    if ((msCurrent - msLastUpdate20kDx) > (decimiSecondoIncremento20kDx * 100))
    {
      msLastUpdate20kDx = msCurrent;
      luciCurrent20kDx++;
      analogWrite(PWM_20K_DX, luciCurrent20kDx);
      return;
    }
  }
  else if (luciCurrent20kDx > obiettivo20kDx)
  {
    if ((msCurrent - msLastUpdate20kDx) > (decimiSecondoDecremento20kDx * 100))
    {
      msLastUpdate20kDx = msCurrent;
      luciCurrent20kDx--;
      analogWrite(PWM_20K_DX, luciCurrent20kDx);
      return;
    }
  }

  if (luciCurrent20kSx < obiettivo20kSx)
  {
    if ((msCurrent - msLastUpdate20kSx) > (decimiSecondoIncremento20kSx * 100))
    {
      msLastUpdate20kSx = msCurrent;
      luciCurrent20kSx++;
      analogWrite(PWM_20K_SX, luciCurrent20kSx);
      return;
    }
  }
  else if (luciCurrent20kSx > obiettivo20kSx)
  {
    if ((msCurrent - msLastUpdate20kSx) > (decimiSecondoDecremento20kSx * 100))
    {
      msLastUpdate20kSx = msCurrent;
      luciCurrent20kSx--;
      analogWrite(PWM_20K_SX, luciCurrent20kSx);
      return;
    }
  }


  if (luciCurrentRRGB < obiettivoRRGB)
  {
    if ((msCurrent - msLastUpdateRRGB) > (decimiSecondoIncrementoRRGB * 100))
    {
      msLastUpdateRRGB = msCurrent;
      luciCurrentRRGB++;
      analogWrite(PWM_RGB_RED, luciCurrentRRGB);
      return;
    }
  }
  else if (luciCurrentRRGB > obiettivoRRGB)
  {
    if ((msCurrent - msLastUpdateRRGB) > (decimiSecondoDecrementoRRGB * 100))
    {
      msLastUpdateRRGB = msCurrent;
      luciCurrentRRGB--;
      analogWrite(PWM_RGB_RED, luciCurrentRRGB);
      return;
    }
  }

  if (luciCurrentGRGB < obiettivoGRGB)
  {
    if ((msCurrent - msLastUpdateGRGB) > (decimiSecondoIncrementoGRGB * 100))
    {
      msLastUpdateGRGB = msCurrent;
      luciCurrentGRGB++;
      analogWrite(PWM_RGB_GREEN, luciCurrentGRGB);
      return;
    }
  }
  else if (luciCurrentGRGB > obiettivoGRGB)
  {
    if ((msCurrent - msLastUpdateGRGB) > (decimiSecondoDecrementoGRGB * 100))
    {
      msLastUpdateGRGB = msCurrent;
      luciCurrentGRGB--;
      analogWrite(PWM_RGB_GREEN, luciCurrentGRGB);
      return;
    }
  }

  if (luciCurrentBRGB < obiettivoBRGB)
  {
    if ((msCurrent - msLastUpdateBRGB) > (decimiSecondoIncrementoBRGB * 100))
    {
      msLastUpdateBRGB = msCurrent;
      luciCurrentBRGB++;
      analogWrite(PWM_RGB_BLUE, luciCurrentBRGB);
      return;
    }
  }
  else if (luciCurrentBRGB > obiettivoBRGB)
  {
    if ((msCurrent - msLastUpdateBRGB) > (decimiSecondoDecrementoBRGB * 100))
    {
      msLastUpdateBRGB = msCurrent;
      luciCurrentBRGB--;
      analogWrite(PWM_RGB_BLUE, luciCurrentBRGB);
      return;
    }
  }


}
segue ....
__________________
Il mio nanoreef
Carletto73 non č in linea   Rispondi quotando
 
Page generated in 0,13309 seconds with 14 queries