CONTENUTO ►
Realizzare un semaforo su Arduino per i principianti che imparano il microcontrollore è un’ottima attività che vi permetterà di capire meglio l’ambiente di programmazione IDE di Arduino e di comprendere il principio di funzionamento dei pin digitali generici. Consideriamo lo schema di assemblaggio di un semaforo su Arduino Uno utilizzando una breadboard e presentiamo un semplice progetto che può essere utilizzato nelle lezioni di robotica.
Per questa attività sono necessari:
- Arduino Uno / Arduino Nano / Arduino Mega
- LED e resistenza
- pulsanti
- breadboard
- cavi di collegamento
Costruiamo un semplice semaforo con Arduino
Per cominciare, assembleremo un semplice circuito semaforico di tre LED su una breadboard per capire il codice del microcontrollore Arduino e comprendere l’algoritmo dei semafori agli incroci. Ciò sarà utile anche ai bambini per capire le modalità di funzionamento dei semafori sulla strada nella vita reale. Collegate i LED ad Arduino secondo lo schema precedente e caricate nel microcontrollore il seguente programma per controllare i semafori.
Programma Arduino per semplice semafori con LED
#define RED1 2 #define ORANGE1 3 #define GREEN1 4 #define RED2 9 #define ORANGE2 10 #define GREEN2 11 int pause = 3000; void setup() { pinMode(RED1, OUTPUT); pinMode(ORANGE1, OUTPUT); pinMode(GREEN1, OUTPUT); pinMode(RED2, OUTPUT); pinMode(ORANGE2, OUTPUT); pinMode(GREEN2, OUTPUT); } void loop() { digitalWrite(RED1, HIGH); digitalWrite(ORANGE1, LOW); digitalWrite(GREEN1, LOW); digitalWrite(RED2, LOW); digitalWrite(ORANGE2, LOW); digitalWrite(GREEN2, HIGH); delay(pause); digitalWrite(RED1, HIGH); digitalWrite(ORANGE1, HIGH); digitalWrite(GREEN1, LOW); digitalWrite(RED2, LOW); digitalWrite(ORANGE2, HIGH); digitalWrite(GREEN2, LOW); delay(pause); digitalWrite(RED1, LOW); digitalWrite(ORANGE1, LOW); digitalWrite(GREEN1, HIGH); digitalWrite(RED2, HIGH); digitalWrite(ORANGE2, LOW); digitalWrite(GREEN2, LOW); delay(pause); digitalWrite(RED1, LOW); digitalWrite(ORANGE1, HIGH); digitalWrite(GREEN1, LOW); digitalWrite(RED2, HIGH); digitalWrite(ORANGE2, HIGH); digitalWrite(GREEN2, LOW); delay(pause); }
Spiegazione del codice per semplice semafori Arduino:
- i pin con i LED sono nominati utilizzando la direttiva define Arduino;
- i LED si accendono ogni tre secondi; l’intervallo può essere modificato cambiando il valore della variabile int pause = 3000; nel programma.
Costruiamo un semaforo con pulsante Arduino
Il seguente esempio permetterà ai bambini di comprendere il funzionamento dei semafori sulle strisce pedonali, dove la modalità di funzionamento viene commutata premendo un pulsante. In questo algoritmo di semafori, è necessario utilizzare un ciclo while nel programma. Aggiungete un pulsante al circuito e commutate la modalità del semaforo quando il livello del segnale è alto sul pin digitale (analogico) a cui è stato collegato il pulsante.
Programma Arduino per semaforo con pulsante
#define RED1 2 #define ORANGE1 3 #define GREEN1 4 #define RED2 9 #define ORANGE2 10 #define GREEN2 11 #define BOUTON 7 int pause = 3000; void setup() { pinMode(RED1, OUTPUT); pinMode(ORANGE1, OUTPUT); pinMode(GREEN1, OUTPUT); pinMode(RED2, OUTPUT); pinMode(ORANGE2, OUTPUT); pinMode(GREEN2, OUTPUT); pinMode(BOUTON, INPUT); } void loop() { digitalWrite(RED1, HIGH); digitalWrite(ORANGE1, LOW); digitalWrite(GREEN1, LOW); digitalWrite(RED2, LOW); digitalWrite(ORANGE2, LOW); digitalWrite(GREEN2, HIGH); while (digitalRead(BOUTON) == HIGH) { digitalWrite(RED1, HIGH); digitalWrite(ORANGE1, HIGH); digitalWrite(GREEN1, LOW); digitalWrite(RED2, LOW); digitalWrite(ORANGE2, HIGH); digitalWrite(GREEN2, LOW); delay(pause); digitalWrite(RED1, LOW); digitalWrite(ORANGE1, LOW); digitalWrite(GREEN1, HIGH); digitalWrite(RED2, HIGH); digitalWrite(ORANGE2, LOW); digitalWrite(GREEN2, LOW); delay(pause); digitalWrite(RED1, LOW); digitalWrite(ORANGE1, HIGH); digitalWrite(GREEN1, LOW); digitalWrite(RED2, HIGH); digitalWrite(ORANGE2, HIGH); digitalWrite(GREEN2, LOW); delay(pause); } }
Spiegazione del codice per semaforo con pulsante a Arduino:
- il ciclo while viene eseguito solo quando viene premuto il pulsante.
Conclusione. Abbiamo presentato un piccolo progetto per principianti sulla programmazione di semafori basati sul microcontrollore Arduino. Nel programma è possibile implementare anche la luce verde lampeggiante del semaforo Arduino. Il progetto stesso del semaforo può essere migliorato sostituendo il pulsante con un telemetro a ultrasuoni hc-sr04.
Lascia un commento