Indice
Descrizione
Nel video impareremo come realizzare dei semafori con Arduino. Innanzitutto costruiremo il circuito e lo sketch per far funzionare due semafori sincronizzati, per poi modificarlo introducendo la chiamata per i pedoni.
Questo semplice progetto fai da te ci permette di approfondire l'utilizzo dei LED e dei pulsanti, oltre che imparare ad usare gli array, il costrutto FOR e la creazione di nuove funzioni.
#define VERDE 0#define GIALLO 1#define ROSSO 2 int semaforo1[] = { 8, 9, 10 };int semaforo2[] = { 5, 6, 7 };int ritardo = 2000; void setup(){ for(int i = 0; i < 3; i++){ pinMode(semaforo1[i], OUTPUT); pinMode(semaforo2[i], OUTPUT); }} void loop(){ cambiaLuce(semaforo2, ROSSO); cambiaLuce(semaforo1, VERDE); delay(ritardo); cambiaLuce(semaforo1, GIALLO); delay(ritardo/2); cambiaLuce(semaforo1, ROSSO); cambiaLuce(semaforo2, VERDE); delay(ritardo); cambiaLuce(semaforo2, GIALLO); delay(ritardo/2);} void cambiaLuce(int semaforo[], int luce){ for(int i = 0; i < 3; i++){ if(i == luce){ digitalWrite(semaforo[i], HIGH); }else{ digitalWrite(semaforo[i], LOW); } }}#define VERDE 0#define GIALLO 1#define ROSSO 2 int semaforoPrincipale[] = { 8, 9, 10 };int semaforoPedonale[] = { 5, 6, 7 };int ritardo = 2000;int pulsantePin = 2;int attesaChiamata = 3000; void setup(){ for(int i = 0; i < 3; i++){ pinMode(semaforoPrincipale[i], OUTPUT); pinMode(semaforoPedonale[i], OUTPUT); } pinMode(pulsantePin, INPUT); cambiaLuce(semaforoPedonale, ROSSO); cambiaLuce(semaforoPrincipale, VERDE);} void loop(){ if(digitalRead(pulsantePin) == HIGH){ delay(attesaChiamata); cambiaLuce(semaforoPrincipale, GIALLO); delay(ritardo/2); cambiaLuce(semaforoPrincipale, ROSSO); cambiaLuce(semaforoPedonale, VERDE); delay(ritardo); cambiaLuce(semaforoPedonale, GIALLO); delay(ritardo/2); cambiaLuce(semaforoPedonale, ROSSO); cambiaLuce(semaforoPrincipale, VERDE); } delay(10);} void cambiaLuce(int semaforo[], int luce){ for(int i = 0; i < 3; i++){ if(i == luce){ digitalWrite(semaforo[i], HIGH); }else{ digitalWrite(semaforo[i], LOW); } }}In qualità di Affiliato Amazon riceviamo un guadagno dagli acquisti idonei