Introduction: Controllo Di Un Semaforo

In questo tutorial impariamo come creare un semaforo stradale e come controllarlo utilizzano la board Drivemall.
Vedremo come realizzare semafori per auto e per pedoni con pulsante di prenotazione.

Tutto questo sarà valido sia se utilizziamo l'Arduino e sia utilizzando la Drivemall Board.

di seguito il link per la realizzazione della Drivermall.

Il vantaggio di preferire il Drivemall alla classica scheda Arduino è quello di ridurre la complessità delle connessioni portando ad un setup più ordinato. Tuttavia, questo è opzionale: tutti i risultati sono ancora validi con la scheda arduino, una breadboard e abbastanza jumper dupont per i collegamenti.

Step 1: Di Cosa Abbiamo Bisogno

- Baord Drivemall
- 4 led rossi
- 4 led verdi
- 4 led gialli
- 8 transistor npn
- 16 resistori 220 ohm
- 8 resistori 22k ohm
- 1 resistenza 1k ohm
- cavo
- 1 pulsante

Step 2: Connessioni

Per andare a comandare il nostro semaforo utilizziamo due transistor PNP collegati secondo lo schema in figura 2. Il funzionamento del transistor PNP è molto semplice quando la base è collegata a GND viene abilitata il passaggio di corrente tra l’emettitore e il collettore.

Quindi se entrambe le BASI sono a VDD si accende il led rosso o per essere più chiarì il Led 21 17 14 6.

Se alimentiamo la BASE del secondo transistor si accenderanno i Led 3 15 18 19.

Per ultimo se colleghiamo entrambe le BASI a GND si accenderanno i Led 20 16 13 10.

Il collegamento del bottone è invece il classico resistenza collegata a GND su un pin del bottone e l'altro a VDD

i Pin dell'arduino utilizzati sono quelli da 1 a 10.

Step 3: Firmware

Per poter gestire la chiamata del bottone per i pedoni senza ritardo in real time si è utilizzata la funzione millis() che restituisce il tempo in millisecondi dall’accensione del dispositivo quindi per poterla utilizzare

esempio

unsigned long currentMillis = millis();.

if(currentMillis - previousMillis > 2000 and bt03==true and bbot==false )

{

Serial.println(1);

T1();

previousMillis = currentMillis;

bt1=true;

bt03=false;

}

Carichiamo ad ogni loop il tempo corrente e se il corrente meno il precedente è maggiore del tempo scelto entra nell’if per modificare lo stato del semaforo andando ad attivare la variabile booleana per la transizione successiva, naturalmente la prima variabile booleana è già vera prima dell’entrata del loop.

Step 4: Disclaim

Questo tutorial è stato prodotto nell'ambito del progetto Makerspace for Inclusion, cofinanziato dal Programma Erasmus + della Commissione Europea.

Il progetto mira a promuovere una forma di educazione informale come mezzo per favorire l'inclusione sociale dei giovani, l'educazione informale come si può trovare all'interno dei makerspace.

Questo tutorial riflette solo le opinioni degli autori e la Commissione Europea non può essere ritenuta responsabile per qualsiasi uso che possa essere fatto delle informazioni in esso contenute.