FADE LED 12 VOLT - COME AGGIUNGERE TEMPO DI ACCESO E DI SPENTO FRA I FADE?

Ciao a tutti!
Io sto utilizzando questo programma per fare il fade su un led a 12 v, cosa devo fare per aggiungere un tempo di acceso per valoreFade 255 e un tempo di spento per valoreFade 0?
Se non fosse chiara la domanda, come faccio a fare rimanere acceso il led per un po’ quando arriva al massimo e farlo restare spento per un po’ quando arriva al minimo?
Grazie mille a chiunque abbia voglia e pazzienza di darmi una mano!

#define LED 11              
int valoreFade = 0;      
 
void setup()  {   
 pinMode(LED, OUTPUT);    
}   
 
void loop()  {  

 for (valoreFade = 0 ; valoreFade < 255; valoreFade++) {   
   analogWrite(LED, valoreFade);      //impostiamo la luminosità del LED  
   delay(10);    
} 
   

 for(valoreFade = 255 ; valoreFade > 0; valoreFade--) {  
   analogWrite(LED, valoreFade);      //impostiamo la luminosità del LED  
   delay(10);    
                                
 }   
}

..credo sia sufficente un "delay(time)" dove time è il ritardo in millisecondi

FredBaVa: essendo il tuo primo post, nel rispetto del regolamento, ti chiedo cortesemente di presentarti QUI (spiegando bene quali conoscenze hai di elettronica e di programmazione … possibilmente evitando di scrivere solo una riga di saluto) e di leggere con attenzione il su citato REGOLAMENTO

… poi, in conformità al suddetto regolamento, punto 7, devi editare il tuo post (in basso a destra del post, bottone More → Modify) e racchiudere il codice all’interno dei tag CODE (… sono quelli che in edit inserisce il bottone fatto così: </>, tutto a sinistra).

Grazie.

Guglielmo

Grazie mille per la risposta ma dove pensavi di metterlo?

>FredBaVa: ti prego di prestare attenzione a quanto ti ho chiesto nel post sopra (post #2). Grazie :slight_smile:

Guglielmo

fatto :wink:

Se fermi il programma per il tempo che vuoi dopo il primo for (quando i led sono arrivati a 255) hai il tempo in più al massimo, se fermi il programma per il tempo che vuoi dopo il secondo for (quando i led sono arrivati a 0) hai il tempo in più con i led spenti.

Con la frase "se fermi il programma" intendo se inserisci, come consigliatiti anche da vince59, una chiamata alla funzione delay() con il tempo espresso in millesimi di secondo. Tale funzione è bloccante per cui l'effetto è, praticamente, di arrestare il programma per il tempo indicato.

Guglielmo

Perfetto!
Era proprio così, posto la soluzione, grazie mille!!!

#define LED 11 // LED collegato al pin digitale 11
int valoreFade = 0; // variabile usata per contare in avanti e indietro

void setup() {
pinMode(LED, OUTPUT); // imposta il pin digitale come output
}

void loop() {
// procede ciclicamente da 0 a 254 (fade in → aumento luminosità)

for (valoreFade = 0 ; valoreFade < 255; valoreFade++) {
analogWrite(LED, valoreFade); //impostiamo la luminosità del LED
delay(8);
}

delay(5000);

for(valoreFade = 255 ; valoreFade > 50; valoreFade–) {
analogWrite(LED, valoreFade); //impostiamo la luminosità del LED
delay(2);
}

delay(5000);
}

caspita riesco a dare consigli di programmazione :slight_smile:

>FredBaVa: Si, ma vedo che ancora NON ti è chiaro che in conformità al regolamento, punto 7, devi editare il tuo post (in basso a destra del post, bottone More → Modify) e racchiudere il codice all’interno dei tag CODE (… sono quelli che in edit inserisce il bottone fatto così: </>, tutto a sinistra).

Cerca di ricordarlo in futuro e ora cortesemente sistema il tuo post ! Grazie.

Guglielmo

P.S.: Inoltre, se rilegessi quello che posti, ti accorgeresti di cosa succede ad avere del codice non racchiusto tra i tag CODE … alcune sequenze vengono interprtetate come “emoticons” e come tali rappresentate !