fade led

ciao a tutti io ho più led da accendere con effetto fade ma dopo svariati tentativi non sono riuscita a farli funzionare....
ho tre led bianchi e uno rosso/verde che vorrei che facessero l'effetto fade, che si accendessero in sequenza e non contemporaneamente e che il R/V passasse dal verde-giallo-rosso.

qualcuno mi può aiutare???

Descrivi anche come hai collegato i led e le porte usate

in pretica vuoi che 3 led si accendano in sequenza e contemporaneamente che un 4 led commuti il colore? posa qui:

  1. il codice che hai usato
  2. come hai collegato i led
  3. datasheet del led R/V (facoltativo)

Devi prima di tutto pilotare tutti i led con PWM ( mediante la funzione analogWrite() ) ed in questo modo puoi variare la luminosità.
Quindi all'interno di un unico loop incrementi e decrementi i vari valori di PWM, ma con valori iniziali diversi in modo da creare l'effetto di fade tra un led e l'altro...
Se hai dei dubbi postali pure, ma ti prego di impegnarti a tentare di capire cosa ho voluto indicarti.. :wink:

allora vi scrivo la mia sequenza luminosa:

int redPin = 6;
int greenPin = 7;
int ledPin1 = 9;
int ledPin2 = 8;
}

void setup() {
pinMode(redPin, OUTPUT);
pinMode(greenPin, OUTPUT);
pinMode(ledPin1, OUTPUT);
pinMode(ledPin2, OUTPUT);
}

void loop() {

digitalWrite(ledPin1, HIGH); // set the LED on
delay(1000);
digitalWrite(ledPin1,LOW);
delay(1000);

digitalWrite(ledPin2, HIGH); // set the LED on
delay(1000);
digitalWrite(ledPin2,LOW);
delay(1000);

//////////////feedback verde,giallo,rosso/////////////////
delay(5000);

digitalWrite(redPin,LOW);
digitalWrite(greenPin,HIGH);
delay(5000);
digitalWrite(redPin, HIGH);
digitalWrite(greenPin, HIGH);
delay(5000);
digitalWrite(redPin, HIGH);
digitalWrite(greenPin, LOW);
delay(5000);
digitalWrite(redPin, LOW);
digitalWrite(greenPin, LOW);
delay(5000);
}

}

questa è la sequenza che in questo modo si accende e spegne... ma vorrei capire come poter aggiungere l'effetto fade ad ogni led di questa sequenza.

Non hai letto quello che ti ho scritto sul PWM... :-/

ok ho provato leggendo questo...ma non è tutto così chiaro!

Come avrai notato, il PWM altro non è che un sistema di "riempimento" (o meno) di una forma d'onda. In sostanza, variando il duty cycle è possibile ottenere una distribuzione dell'uscita in modo graduale nel tempo.

Ti starai chiedendo cosa c'entra questo con i tuoi led.. :wink:

Ebbene, devi considerare che i nostri occhi hanno delle precise particolarità fisiche, tra le quali quella di non accorgersi che una luce intermittente si accende e spegne se la sua frequenza è superiore al 25mo 30mo di secondo (vedi persistenza retinica). Così, accendendo e spegnendo un led ad alta frequenza ma modificandone il tempo di accensione, percepiamo il tutto come una differenza di luminosità.

Tutto chiaro?

-- per approfondire vedi: http://it.wikipedia.org/wiki/Persistenza_della_visione

"tutto il mondo è un filtro passa bassa" cit. di un mio vecchio Prof.

ok chiaro!
leggendo questo capisco la teoria e quello che mi vuoi dire....
ma la pratica, e cioè come modificare il mio codice, non è poi così semplice per me che non sono un'esperta! :wink:

Potresti prendere spunto da qui:
http://www.andrewfrueh.com/electronics/?pageContent=fade_LED_with_knob.html
o da qui:
http://www.andrewfrueh.com/electronics/?pageContent=fade_LED_with_button.htm
::slight_smile:

Prima di tutto fai delle prove con nuovo codice.
Inizia con il far accendere e spegnere un led gradualmente all'interno di due loop for( ; ; ). Il primo che aumenta l'intensità ed il secondo che la riduce sino a spegnerla.
Chiaramente per percepire il tutto dovrai immettere anche un certo ritardo all'interno di ciascun loop.

@brainbooster: facciamoli un pochino ragionare sti ragazzi, altrimenti non hanno soddisfazione quando poi arrivano a riuscire :wink:

scusami se mi permetto.... non pensare che io non ragioni e non provi a sperimentare ma, purtroppo per me, sono una ragazza che arduino lo conosce da un mese e di programmazione ne sa pochissimo; non chiedo aiuto sul forum sperando nella soluzione immediata e precisa ma nemmeno puoi pretendere da gente inesperta che ti capisca e che inventa codici così!

se ho chiesto aiuto è perchè non sono realmente molto in grado di farle queste cose per le pochissime conoscenze che ho

Per il carattere che stai dimostrando di avere io sono certo che puoi andare molto, molto lontano..
E visto il codice che hai già scritto non credo tu possa avere grossi problemi a mettere in pratica quello che ti ho indicato. :wink:

il mio modo di aiutare punta a far diventare indipendente il più presto possibile chi riesce ad ascoltarmi, perchè se le cose le si fanno da soli le si comprendono molto meglio e le si usano più facilmente quando occorrono (come dei semplici ingredienti in cucina.. che se non lli conosci, non li usi!)

Comunque sia, se preferisci non ascoltare i miei consigli nessuno ti obbliga a farlo, e vista la tua reazione vedrò di astenermi dal dartene ancora, ok?

L'importante che tu riesca a sperimentare divertendoti.. tutto qui. :stuck_out_tongue:

acetto sempre consigli da persone che sono più preparate di me in determinati argomenti, certo non so fino a che punto potranno essermi d'aiuto i tuoi consigli ma vanno benissimo lo stesso!

dai non è così dura come la si sta mettendo giù!!!
Ti consiglio di farti un bel giro sul sito di Arduino nella sezione learning, trovi tutti i tutorial base per cominciare ad imparare.

In particolare nella sezione learning per fare il fading di un solo Led trovi questo.

Poi, visto che dal codice che hai scritto si capisce che vuoi comandare un led RGB e se ti interessa variare il colore dei tre led con un solo potenziometro, allora vai a dare un occhio a questo articolo che ho scritto sul mio blog. Il codice forse non è abbastanza commentato, se hai dubbi chiedi pure!

ok, visto che si vuole fargli vedere per forza del codice, credo sia giusto io indichi un mio vecchio post (nel "lontano" 2008) dove ho proprio mostrato la gestione di led rgb con completa funzione di conversione e controllo del colore.
Ee è proprio in questo forum :o, ecco qua: http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1200939322/0 (bastava una piccola ricerca :wink: )

comunque il mio "aiuto" non è esattamente quello che serve a lei, ma di lì si capisce come, nei due esempi, il pwm viene utilizzato per il fade.
adesso che hai i mattoncini però, costruisci una casa :wink:

io ho cominciato a scrivere codice dopo aver letto del codice già scritto e funzionante...esempi da cui apprendere.

Per Arduino si trova un mondo di codice già scritto e pubblicato, ottime basi di partenza. Tanto comunque se una cosa ti interessa capirla ci devi sbattere sopra la testa, anche se hai già una soluzione pronta!