Semaforo a chiamata con Arduino
Vai alla navigazione
Vai alla ricerca
Template:Lavori in corso Template:Risorsa
Questa lezione descrive come realizza un semaforo con chiamata pedoni
Componenti utilizzati
- 6 resistenze da per i led;
- 1 resistenza da per il pulsante
- 6 LED (2 verdi, 2 gialli, 2 rossi)
- 1 Pulsante
Schema di montaggio

Codice
/**
* Semaforo con chiamata pedoni
* Giovanni Serafini
* 3B EN
* a.s. 2021/2022
**/
#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);
}
}
}
Espansioni suggerite
Si può aggiungere, al posto del pulsante, un sensore di prossimità che - quando qualcuno gli si avvicina - fa diventare verde il semaforo per i pedoni.