Benvenuti in questo nuovo post. Con questo post cominceremo un progetto: comandare un semaforo con Arduino. Successivamente andremo a raffinare sempre più il programma.
In questo post cercheremo di capire come funziona un semaforo e di come comandarne uno da Arduino.
Questo sketch è la versione 1.0 del programma.
Questo sketch è la versione 1.0 del programma.
Materiale occorrente
- Arduino;
- 2x LED Rossi;
- 2x LED Gialli;
- 2x LED Verdi;
- 6x resistori da 220 Ohm;
- Breadboard e cavi di collegamento.
Funzionamento del circuito
Consideriamo un incrocio tra due strade come nella figura che segue. (L'incrocio in questione è quello che considereremo durante tutto il progetto).Notiamo che i due semafori della strada 1 (1a e 1b) avranno la stessa luce accesa nello stesso istante di tempo. Lo stesso discorso vale per la strada 2. Di conseguenza, anziché realizzare sul circuito i quattro semafori (1a, 1b, 2a, 2b) ne realizzeremo solo due (Semaforo1 e Semaforo2). Tale semplificazione è utile sopratutto in circuiti più complessi, dove conviene usare meno uscite possibili. Per realizzare i quattro semafori basta collegare ad in parallelo ad ogni LED un altro dello stesso colore.
Dopo aver caricato lo sketch in Arduino questi farà accendere e spegnere in sequenza i led che rappresentano la luce rossa del semaforo. Notiamo inoltre che il tempo di accensione della luce rossa (6 sec) sarà dato dalla somma del tempo di accensione della luce verde e della luce gialla (4.5 sec + 1.5 sec).
Lo sketch
Anche qui non credo ci sia niente da spiegare, dato che i commenti all'interno dello sketch stesso spiegano tutto.//Semaforo v. 1.0 void setup() { //Dichiarazione pin //Semaforo 1 pinMode (13, OUTPUT); //LED Rosso pinMode (12, OUTPUT); //LED Giallo pinMode (11, OUTPUT); //LED Verde //Semaforo 2 pinMode (10, OUTPUT); //LED Rosso pinMode (9, OUTPUT); //LED Giallo pinMode (8, OUTPUT); //LED Verde } void loop() { // Semaforo 1: Rosso - Semaforo 2: Verde digitalWrite (13, HIGH); //Rosso 1 digitalWrite (12, LOW); //Giallo 1 digitalWrite (11, LOW); //Verde 1 digitalWrite (10, LOW); //Rosso 2 digitalWrite (9, LOW); //Giallo 2 digitalWrite (8, HIGH); //Verde 2 delay (4500); // Semaforo 1: Rosso - Semaforo 2: Giallo digitalWrite (13, HIGH); //Rosso 1 digitalWrite (12, LOW); //Giallo 1 digitalWrite (11, LOW); //Verde 1 digitalWrite (10, LOW); //Rosso 2 digitalWrite (9, HIGH); //Giallo 2 digitalWrite (8, LOW); //Verde 2 delay (1500); // Semaforo 1: Verde - Semaforo 2: Rosso digitalWrite (13, LOW); //Rosso 1 digitalWrite (12, LOW); //Giallo 1 digitalWrite (11, HIGH); //Verde 1 digitalWrite (10, HIGH); //Rosso 2 digitalWrite (9, LOW); //Giallo 2 digitalWrite (8, LOW); //Verde 2 delay (4500); // Semaforo 1: Giallo - Semaforo 2: Rosso digitalWrite (13, LOW); //Rosso 1 digitalWrite (12, HIGH); //Giallo 1 digitalWrite (11, LOW); //Verde 1 digitalWrite (10, HIGH); //Rosso 2 digitalWrite (9, LOW); //Giallo 2 digitalWrite (8, LOW); //Verde 2 delay (1500); }
Il circuito
Il circuito è anch'esso molto semplice. Si tratta di sei led collegati alle sei uscite che abbiamo utilizzato. Ogni LED ha in serie una resistenza da 220 Ohm per evitare che si bruci.
Se il mio lavoro vi è piaciuto commentate e ci diamo appuntamento al prossimo sketch!
Lo staff di elettromatica.blogspot.com
PS: merito un commento e una condivisione per lo schema fatto a mano! ;)
PS: merito un commento e una condivisione per lo schema fatto a mano! ;)
Nessun commento:
Posta un commento