Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

Lampeggiamento Led

Progetti, interfacciamento, discussioni varie su questa piattaforma.

Moderatori: Foto UtenteWALTERmwp, Foto Utentexyz

0
voti

[1] Lampeggiamento Led

Messaggioda Foto UtenteRickFindus » 13 lug 2017, 0:10

Ciao a tutti! Volevo sapere come, facendo lampeggiare un led con effetto "fade" , si potesse aumentare il tempo in cui sta spento, mi spiego meglio. Ho intenzione di creare un progetto con Arduino UNO per simulare alba, giorno, tramonto e notte. Ovviamente quando il led inizia ad accendersi sarà l'alba, al pieno della sua potenza sarà giorno, quando inizierà a svanire sarà il tramonto e spento simulerà la notte. Il mio problema è che non riesco a fermare il led per un certo lasso di tempo dopo il tramonto, ovvero la notte. Sapete aiutarmi? Grazie!
Avatar utente
Foto UtenteRickFindus
0 2
 
Messaggi: 8
Iscritto il: 12 lug 2017, 23:56

0
voti

[2] Re: Lampeggiamento Led

Messaggioda Foto Utentesolideo » 13 lug 2017, 4:49

Io userei i millis(). Quando il led è spento , quindi notte , leggi il valore dei millis() poi con un if decidi per quanto tempo deve aspettare prima di ricominciare con l'alba.
Codice: Seleziona tutto
... led spento
unsigned long tempo = millis() ; legge il valore dei millis
...prima dell'alba
unsigned long alba = millis();
if ( alba > tempo + 5000 ); Se sono trascorsi 5 secondi fai l'effetto alba
Avatar utente
Foto Utentesolideo
100 1 6
New entry
New entry
 
Messaggi: 82
Iscritto il: 11 lug 2014, 6:20

0
voti

[3] Re: Lampeggiamento Led

Messaggioda Foto Utentelelerelele » 13 lug 2017, 8:22

le tue parole mi suonano molto strano,
vuoi dire che hai implementato il controllo PWM per accendere il led da zero al massimo con tanti step e poi non sai come fare per attender un po di tempo tra il tramonto e l'alba?

saluti.
Avatar utente
Foto Utentelelerelele
4.899 3 7 9
Master
Master
 
Messaggi: 5505
Iscritto il: 8 giu 2011, 8:57
Località: Reggio Emilia

0
voti

[4] Re: Lampeggiamento Led

Messaggioda Foto UtenteRickFindus » 13 lug 2017, 11:03

Ciao! No, quello che non riesco a fare io è creare uno spazio di tempo in cui il led rimanga spento completamente una volta "tramontato"
Avatar utente
Foto UtenteRickFindus
0 2
 
Messaggi: 8
Iscritto il: 12 lug 2017, 23:56

0
voti

[5] Re: Lampeggiamento Led

Messaggioda Foto Utentexyz » 13 lug 2017, 11:53

Disattivi il PWM, spegni il LED e aspetti il tempo necessario.
Avatar utente
Foto Utentexyz
6.864 2 4 6
G.Master EY
G.Master EY
 
Messaggi: 1778
Iscritto il: 5 dic 2009, 18:37
Località: Italy Turin

0
voti

[6] Re: Lampeggiamento Led

Messaggioda Foto Utentelelerelele » 13 lug 2017, 12:57

RickFindus ha scritto:Ciao! No, quello che non riesco a fare io è creare uno spazio di tempo in cui il led rimanga spento completamente una volta "tramontato"

continuo a non capire.

in quale modo vorresti attendere questo tempo? modificando il software?
Avatar utente
Foto Utentelelerelele
4.899 3 7 9
Master
Master
 
Messaggi: 5505
Iscritto il: 8 giu 2011, 8:57
Località: Reggio Emilia

0
voti

[7] Re: Lampeggiamento Led

Messaggioda Foto Utenteclaudiocedrone » 13 lug 2017, 13:27

Foto UtenteRickFindus, per poter ottenere risposte sensate lo evono essere anche le domande;
sei quindi pregato di postare lo schema elettrico che hai implementato per ottenere il fade-in/out del LED e il codice (ipotizzo uno sketch... ) che hai caricato; grazie.
"Non farei mai parte di un club che accettasse la mia iscrizione" (G. Marx)
Avatar utente
Foto Utenteclaudiocedrone
21,3k 4 7 9
Master EY
Master EY
 
Messaggi: 15300
Iscritto il: 18 gen 2012, 13:36

0
voti

[8] Re: Lampeggiamento Led

Messaggioda Foto UtenteRickFindus » 13 lug 2017, 14:20

Capisco, forse mi sono spiegato male...
Il seguente sketch fa lampeggiare un led in dissolvenza. Con il comando "delay" posso aumentare o diminuire la durata della dissolvenza a mio piacimento. Il codice inoltre fa aumentare la lucentezza da 0 a 255 e da 255 a 0. Ciò che non riesco a fare è aumentare il tempo tra un ciclo e l'altro ovvero quando la lucentezza ritorna a 0 facendo rimanere il led spento.

lo sketch che uso io è questo:

Codice: Seleziona tutto
int lucentezza = 0;
int incremento = 5;

void setup ()
{
pinMode (9, OUTPUT);
}
void loop()
{
analogWrite (9, lucentezza);
lucentezza = lucentezza + incremento;
if (lucentezza == 0 || lucentezza == 255)

{
incremento = incremento *-1;


}
delay (200);
}
Ultima modifica di Foto Utentexyz il 13 lug 2017, 14:23, modificato 1 volta in totale.
Motivazione: Quando includi del codice usa i tag [code] e [/code]
Avatar utente
Foto UtenteRickFindus
0 2
 
Messaggi: 8
Iscritto il: 12 lug 2017, 23:56

0
voti

[9] Re: Lampeggiamento Led

Messaggioda Foto UtenteRickFindus » 13 lug 2017, 14:23

lelerelele ha scritto:le tue parole mi suonano molto strano,
vuoi dire che hai implementato il controllo PWM per accendere il led da zero al massimo con tanti step e poi non sai come fare per attender un po di tempo tra il tramonto e l'alba?

saluti.


esattamente
Avatar utente
Foto UtenteRickFindus
0 2
 
Messaggi: 8
Iscritto il: 12 lug 2017, 23:56

0
voti

[10] Re: Lampeggiamento Led

Messaggioda Foto Utentexyz » 13 lug 2017, 14:34

Il tuo è un problema sulle basi della programmazione dei microcontrollori, devi implementare nel codice una FSM (Finite State Machine). Esistono molte guide a riguado, basta cercare, ad esempio:

http://teachmetomake.com/wordpress/ardu ... te-machine

Quel moltiplicare per -1 per cambiare di segno non si può vedere, è una operazione costosa, è molto più veloce questo semplice codice:

Codice: Seleziona tutto
incremento = -incremento;
Avatar utente
Foto Utentexyz
6.864 2 4 6
G.Master EY
G.Master EY
 
Messaggi: 1778
Iscritto il: 5 dic 2009, 18:37
Località: Italy Turin

Prossimo

Torna a Arduino

Chi c’è in linea

Visitano il forum: Nessuno e 2 ospiti