Ecco un esempio di codice Arduino per un semaforo temporizzato, con 2 minuti di luce verde, 30 secondi di luce arancione e 2 minuti di luce rossa:
// dichiarazione dei pin utilizzati
int greenLED = 2;
int orangeLED = 3;
int redLED = 4;
void setup() {
// impostiamo i pin come output
pinMode(greenLED, OUTPUT);
pinMode(orangeLED, OUTPUT);
pinMode(redLED, OUTPUT);
}
void loop() {
// accendiamo il LED verde per 2 minuti
digitalWrite(greenLED, HIGH);
digitalWrite(orangeLED, LOW);
digitalWrite(redLED, LOW);
delay(120000); // 2 minuti
// accendiamo il LED arancione per 30 secondi
digitalWrite(greenLED, LOW);
digitalWrite(orangeLED, HIGH);
digitalWrite(redLED, LOW);
delay(30000); // 30 secondi
// accendiamo il LED rosso per 2 minuti
digitalWrite(greenLED, LOW);
digitalWrite(orangeLED, LOW);
digitalWrite(redLED, HIGH);
delay(120000); // 2 minuti
// accendiamo il LED arancione per 30 secondi
digitalWrite(greenLED, LOW);
digitalWrite(orangeLED, HIGH);
digitalWrite(redLED, LOW);
delay(30000); // 30 secondi
}
In questo esempio, si utilizzano i pin 2, 3 e 4 di Arduino per collegare rispettivamente i LED verde, arancione e rosso. La funzione setup()
viene utilizzata per impostare i pin come output, mentre la funzione loop()
viene utilizzata per controllare i LED.
Nella prima parte del loop, si accende il LED verde e si spegne il LED arancione e il LED rosso per 2 minuti utilizzando la funzione digitalWrite()
e delay()
. Nella seconda parte del loop, si accende il LED arancione per 30 secondi utilizzando la stessa logica. Nella terza parte del loop, si spegne il LED verde e il LED arancione e si accende il LED rosso per altri 2 minuti utilizzando la stessa logica. Nell’ultima parte del loop, si accende il LED arancione per altri 30 secondi. Questo processo si ripete continuamente fintanto che l’Arduino è alimentato.