Arduino Ai semaforo temporizzato a tre led

Share

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.