Come accendere 3 LED diversi con Arduino e farli sembrare un semaforo?
Abbiamo già visto come accendere un LED con Arduino UNO, mentre oggi simuleremo un semaforo che dispone di ben 3 led. Andremo sempre ad utilizzare i pin digitali di Arduino, ma questa volta li faremo spegnere ed accendere in sequenza.
Cosa Serve?
Anche per questo esercizio ci servirà un Arduino UNO o un clone, tuttavia avremo bisogno di 3 LED ed 3 resistenze da 220 OHM. Anche in questo caso, per effettuare i collegamenti in modo pulito, consigliamo l’uso di jumper e una bredboard. Se non li avete ancora comprati, ecco la lista su Amazon:
- Arduino UNO: https://amzn.to/2LjKWvg
- Arduino UNO (clone): https://amzn.to/2LfJhH0
- LED: https://amzn.to/2Wl9YAv
- Resistenze da 220 OHM: https://amzn.to/3bku2qR
- Jumper: https://amzn.to/3dH3Mc1
- BreadBoard: https://amzn.to/2WMJ3fR
Collegamenti
Passiamo nuovamente ai collegamenti. Anche qui lo schema è identico a quello visto nello scorso articolo, ma va solo ripetuto per ogni LED.
Come nell’esempio scorso, anche qua usiamo il cavo nero per collegare tutti i Ground.
Codice
In questo sketch di prova si accenderà prima il LED verde collegato al pin 13, mantenendo spenti gli altri due. Dopo un’attesa di 5 secondi, il LED Giallo di accederà per 2 secondi, spegnendo gli altri, ed infine stessa cosa per il led rosso che resterà acceso per 5 secondi.
</span> // la funzione setup esegue una volta sola il codice void setup() { pinMode(11, OUTPUT); // Impostiamo la direzione del PIN 11 su OUTPUT perchè emetta un segnale pinMode(12, OUTPUT); // Impostiamo la direzione del PIN 12 su OUTPUT perchè emetta un segnale pinMode(13, OUTPUT); // Impostiamo la direzione del PIN 13 su OUTPUT perchè emetta un segnale } <pre> // la funzione LOOP ripete all'infinito le operazioni void loop() { digitalWrite(13, HIGH); // Accende il LED verde digitalWrite(12, LOW); // Spegne il LED giallo digitalWrite(11, LOW); // Spegne il LED rosso delay(5000); // attesa di 5 secondi digitalWrite(13, LOW); // Spegne il LED verde digitalWrite(12, HIGH); // Accende il LED giallo digitalWrite(11, LOW); // Spegne il LED rosso delay(2000); // attesa di 2 secondi digitalWrite(13, LOW); // Spegne il LED verde digitalWrite(12, LOW); // Spegne il LED giallo digitalWrite(11, HIGH); // Accende il LED rosso delay(5000); // attesa di 5 secondo }