Sei sulla pagina 1di 3

Semaforo Stradale + Pedonale

usando Arduino
Stabile Ismaele IV AI 21/01/2016 IPSIA G. Ferraris

Quest'impostazione semaforica dispone di 4 set di luci per corsie (Rosse, Gialle e Verdi) e di una
per i pedoni (Rossa e Verde).
I semafori sono posizionati come nella rappresentazione lateralare, creando
un controllo di circolazione presso un incrocio per auto e pedoni, con una
singola area di transito per i pedoni.
La sequenza di funzionamento, gestita attraverso un codice programmato in C
e C++ utilizzando Arduino IDE e gestita elettricamente dalla scheda Arduino
Mega 2560.

Per procedere occorre disporre del seguente materiale:

5 LED Verdi
4 LED Gialli
5 LED Rossi
14 Resistenze (330 )
Arduino Mega 2560
Jumper Maschio-Maschio
Arduino IDE

Come precendentemente accennato, saranno utilizzati C e C++ in Arduino IDE per gestire le
sequenze di accensione e spegnimento. Nel caso presente stato utilizzato Arduino Genuino 1.6.6.
La parte esterna dell'area di programmazione dedicata alla dichiarazione dei riferimenti e
variabili. Non sono necessari riferimenti a librerie esterne nel nostro caso.
E' stato preferito l'utilizzo delle costanti anzich delle variabili
data l'invariazione delle stesse durante il percorso
programmato. Le costanti fanno riferimento ai PIN ai quali di
ognuno sono stati collegati un LED e una resistenza.
Il nome della costante permette di identificare le propriet del
led collegato a quel PIN, senza causare confusione.
La spaziatura extra e superflua tra i vari pezzi di codice
sfruttata per avere una gestione visiva ottimale del codice su
cui andiamo a lavorare.
Le costanti compongono I quattro semafori per corsie (i primi
quattro set da tre costanti), seguiti da quello pedonale (quinto
set da due costanti) ed infine l'ultima costante variabile solo
attraverso Arduino IDE per la gestione (in questo caso
proporzionale) dei tempi.
Le ultime tre variabili utilizzano la precedente
ultima costante per ricavare in modo
proporzionale alla stessa, gli intervalli.

Nel void setup ci preoccupiamo di dichiarare tutti i


precedentemente descritti PIN come fonte di OUTPUT.
Anche qui la spaziatura non necessaria stata sfruttata.
Il sesto spezzone di questo codice provvede ad accendere
tutte le luci rosse, in modo da avere meno codice in loop.
Questa disposizione stata studiata per mantenere il loop
quanto pi leggero possibile, evitando rallentamenti non
necessari.

Nel void loop sufficente la spiegazione espressa nei


commenti per capirne le funzioni svolte.
In questo caso sono stati utilizzati i commenti per
gestire visivamente il codice anzich gli spazi.
Questi permettono di ricavare lo spezzone di codice su
cui eventualmente agire, separato dal precedente e dal
successivo con un delay.
L'impegno nel non ripetere l'accensione e lo
spegnimento di LED gi accesi o spenti stato curato,
eliminando inutili linee di codice e quindi tempi di
elaborazione da parte del micro-processore migliori,
facendo risultare il sistema nel complesso pi reattivo.