Buonasera.
Io ho 9 led: entrambi i led hanno il loro cavo negativo, mentre i cavi positivi sono solo 3 (5, 2, 2; led per cavo).
I positivi sono collegati alla porta 5v (attraverso una breadbord), mentre i negativi sono collegati alle porte 1,2,3,4,5,6,7,8,9
Io vorrei che all'accensione di Arduino si accendesse il led 1, dopo mezzo secondo si accende il 2, dopo un altro mezzo secondo si accende il 3 [.....]. Al termine, sempre ogni mezzo secondo, partendo dal 9, si dovrebbero spegnere.
E' possibile???
E' possibile. Basta usare millis. Studiati l'esempio BlinkWithoutDelay e la miriade di esempi presenti sul forum ed in rete.
E soprattutto metti le resistenze sui Led sennò li bruci e con loro i pin a cui li hai attaccati.
io lo sketch lo avevo già preparato, ma devo avere sbagliato qualcosa perchè non funziona...
ora sto usando il cell, dopo scuola ti posto il mio sketch
resistenze di limitazione della corrente, calcolate per il tipo di led (colore) che usi.
Non puoi collegare un led ad un pin in maniera diretta, bruci l'uscita del microcontrollore perché non metti un "freno" alla corrente che eroga verso il Led.
Io ho 9 led: entrambi i led hanno il loro cavo negativo, mentre i cavi positivi sono solo 3 (5, 2, 2; led per cavo).
I positivi sono collegati alla porta 5v (attraverso una breadbord), mentre i negativi sono collegati alle porte 1,2,3,4,5,6,7,8,9
quindi si accendono quando metti l'uscita a LOW.
Leggendo il codice postato... fà quello che gli hai detto di fare :).
Secondo me ti conviene dichiarare i pin dei led con un array e poi scorrerlo con un ciclo for per accendere e poi spegnere i led.
esempio ( scrivo a braccio quindi sicuramente NON funziona :))
int led[] = { 2, 3, 4, 5, 6, 7, 8, 9, 10};
...
for (int i=0 i<=8 i++) { // da 0 a 8
digitalWrite(led[i],LOW); // accende il led
delay(500);
}
eccetera.
ciao
pippo72
EDIT: Occhio all'assorbimento accendendo tutti i led insieme.
livellacri:
Ho solo resistenze da 220... potrebbero esserci problemi se circola qualche ma in più????
Piuttosto che in più, fanne circolare in meno
Metti 2 R in serie, così la loro resistenza si somma, per cui 220+220 = 440 ohm. Ed hai un valore che va bene per la maggior parte del LED comuni (rosso, verde, giallo) senza bisogno di fare calcoli (usando i 5V di Arduino).
livellacri:
perchè da 0 a 8 ??? che cosa rappresentano???
andiamo con ordine:
int led[] = { 2, 3, 4, 5, 6, 7, 8, 9, 10};
creo un array di nove elementi che corrispondono ai pin dove sono collegati i led.
for (int i=0 i<=8 i++)
questo ciclo for "conta" da 0 a 8 e questi numeri rappresentano l'indice dell'array.
L'indice dell'array parte appunto da 0 e non da 1
digitalWrite(led[i],LOW);
accendo il led corrispondente all'indice dell'array ovvero:
quando i = 0 , l'array led[0] =2 quindi è come scrivere digitalWrite(2,LOW);
quando i = 1 , l'array led[1] =3 quindi è come scrivere digitalWrite(3,LOW);
eccetera.