Introduzione:

In questa terza lezione di Arduino voglio presentarvi un semplice semaforo didattico,  che eseguirà tramite dei LED la sequenza da verde, giallo lampeggiante, rosso. Questo progetto potrebbe essere utilizzato su un modello ferroviario.

Esercizio 3 componenti utilizzati :

Per la realizzazione di questo semaforo occorrono:

–  la bread-board;
– 3 LED possibilmente di tre colori diversi (rosso,giallo,verde);
– 3 resistenze da 220 ohm 1/4 watt;
– cavi per bread-board.

 Come si nota dal programma ho utilizzato l’ istruzione for che in questo caso permette di far lampeggiare 10  volte il led giallo. E’ possibile determina l’esecuzione di una porzione di programma ripetuta per un certo numero di volte, modificando semplicemente il valore della condizione, in questo caso è 10.

L’istruzione for serve per ripetere un blocco di istruzioni racchiuso tra parentesi graffe. Si distingue in questo modo da altre forme di ciclo, come il ciclo while, che determina la ripetizione di una porzione di un programma fino al verificarsi di una determinata condizione. La scelta fra questi due tipi di ciclo è legata a considerazioni di leggibilità e chiarezza del codice; in linea di principio, infatti, qualunque algoritmo che impieghi un ciclo  for può essere trascritto in una forma che usa solo il ciclo while, e viceversa.

Ci sono tre parti per il  ciclo di intestazione:

for ( l'inizializzazione , condizione , incremento )

{ qui si fa qualcosa;

}

Programma :

int redPin = 10;//led connesso al pin digitale 10
int yellowPin = 9;//led connesso al pin digitale 9
int greenPin = 8;//led connesso al pin digitale 8
void setup() { //ripeti una sola volta quando il programma inizia
pinMode(redPin, OUTPUT);//imposta il pin come uscita
pinMode(yellowPin, OUTPUT);//imposta il pin come uscita
pinMode(greenPin, OUTPUT);//imposta il pin come uscita
}
void loop() {  //esegui più volte
digitalWrite(redPin, LOW);// imposta il pin digitale a livello basso
digitalWrite(greenPin, HIGH);// imposta il pin digitale a livello alto
digitalWrite(yellowPin,LOW);//imposta il pin digitale a livello basso
delay(10000);//attende 10 secondi
digitalWrite(greenPin,LOW);//imposta il pin digitale a livello basso
for(int x = 0; x < 10; x++) { //ripeti 10 volte
 digitalWrite(yellowPin,HIGH);//imposta il pin digitale a livello alto
 delay(500);//attende 500ms
 digitalWrite(yellowPin,LOW);//imposta il pin digitale a livello basso
 }
digitalWrite(yellowPin, LOW); // imposta il pin digitale a livello basso
digitalWrite(greenPin, LOW); // imposta il pin digitale a livello basso
digitalWrite(redPin, HIGH); //imposta il pin digitale a livello alto
delay(10000); // attendi 10 secondi
}

Schema :

Lo schema non richiede particolari spiegazioni, vi ricordo di rispettare la polarità dei 3 led, il pin più lungo è l’anodo (+), mentre il pin più corto è il catodo (-). Come si nota dallo schema bisogna  inserire come sempre sull ‘anodo del LED una resistenza da 220 ohm circa,ed infine collegarla al pin digitale corrispondente.

a cura di: Conicella Valerio