Utente:Galessandroni/Semaforo

// Definizioni
#define tempoVerde 2500
#define tempoGiallo 500
#define tempoRosso 3000

#define pinVerde 4
#define pinGiallo 3
#define pinRosso 2

void setup() {
  // Definisce le luci del semaforo come uscite
  pinMode(pinVerde, OUTPUT);
  pinMode(pinGiallo, OUTPUT);
  pinMode(pinRosso, OUTPUT);

  // Spegne le eventuali luci accese in precedenza
  digitalWrite(pinVerde, LOW);
  digitalWrite(pinGiallo, LOW);
  digitalWrite(pinRosso, LOW);
}

void loop() {
  // Controllo del semaforo
  Semaforo(pinVerde, tempoVerde);
  Semaforo(pinGiallo, tempoGiallo);
  Semaforo(pinRosso, tempoRosso);
}

// Gestione singolo evento del semaforo
void Semaforo(int luce, int tempo) {
  // Accende la luce richiesta per il tempo desiderato
  digitalWrite(luce, HIGH);
  delay(tempo);
  // La spegne
  digitalWrite(luce, LOW);
}