Progetti Arduino

Semafori

Semafori sincronizzati e con chiamata - Progetti con Arduino

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.

Scarica le risorse

Progetto: Semafori

Schema

Componenti

Codice

#define VERDE 0#define GIALLO 1#define ROSSO 2 int semaforo1[] = { 8910 };int semaforo2[] = { 567 };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);    }  }}
scarica il file

Progetto: Semaforo con chiamata pedonale

Schema

Componenti

Codice

#define VERDE 0#define GIALLO 1#define ROSSO 2 int semaforoPrincipale[] = { 8910 };int semaforoPedonale[] = { 567 };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);    }  }}
scarica il file

Arduino Software Hero

Vuoi imparare a programmare Arduino, ma non sai da dove cominciare?

Iscriviti al corso online

Libri consigliati


Tutorial consigliati

E-commerce di elettronica

Sul nostro negozio online trovi tutti i componenti usati nei tutorial.
Inoltre hai un'ampia scelta di prodotti tra:

  • Arduino
  • Raspberry Pi
  • Sensori
  • Robotica
  • Componenti elettronici
  • Accessori

Compra online, ricevi comodamente a casa

Visita il negozio