Semafor za automobile i pješake

Zadatak

Nadogradite model semafora iz lekcije Upravljivi semafor sa semaforom za pješake. Semafori moraju naizmjenično propuštati pješake i automobile. Pješacima će biti zeleno samo onda kada je automobilima crveno. U svim drugim slučajevima pješacima mora svijetliti crveno svjetlo.

Prikaz spajanja

Arduino kod
int LedCrvena = 6;
int LedZuta = 7;
int LedZelena = 8;

int LedCrvenaP = 9;
int LedZelenaP = 10;

void setup() {
  pinMode(LedCrvena, OUTPUT);     //postavi izvod LedCrvena (6) kao izlazni
  pinMode(LedZuta, OUTPUT);       //postavi izvod LedZuta (7) kao izlazni
  pinMode(LedZelena, OUTPUT);     //postavi izvod LedZelena (8) kao izlazni

  pinMode(LedCrvenaP, OUTPUT);    //postavi izvod LedCrvenaP (9) kao izlazni
  pinMode(LedZelenaP, OUTPUT);    //postavi izvod LedZelenaP (10) kao izlazni
}

void loop() {
  //automobilima svijetli crveno, pješacima svijetli zeleno
  digitalWrite(LedCrvena, HIGH);  //uključi crveno svjetlo
  digitalWrite(LedZuta, LOW);     //isključi žuto svjetlo
  digitalWrite(LedZelena, LOW);   //isključi zeleno svjetlo
  digitalWrite(LedCrvenaP, LOW);  //isključi crveno svjetlo za pješake
  digitalWrite(LedZelenaP, HIGH); //uključi zeleno svjetlo za pješake
  delay(3000);                    //čekaj 3 sekunde

  //automobilima svijetle crveno i žuto, pješacima svijetli crveno
  digitalWrite(LedCrvena, HIGH);  //uključi crveno svjetlo
  digitalWrite(LedZuta, HIGH);    //uključi žuto svjetlo
  digitalWrite(LedZelena, LOW);   //isključi zeleno svjetlo
  digitalWrite(LedCrvenaP, HIGH); //uključi crveno svjetlo za pješake
  digitalWrite(LedZelenaP, LOW);  //isključi zeleno svjetlo za pješake
  delay(1000);                    //čekaj 1 sekundu

  //automobilima svijetli zeleno, pješacima svijetli crveno
  digitalWrite(LedCrvena, LOW);   //isključi crveno svjetlo
  digitalWrite(LedZuta, LOW);     //isključi žuto svjetlo
  digitalWrite(LedZelena, HIGH);  //uključi zeleno svjetlo
  digitalWrite(LedCrvenaP, HIGH); //uključi crveno svjetlo za pješake
  digitalWrite(LedZelenaP, LOW);  //isključi zeleno svjetlo za pješake
  delay(3000);                    //čekaj 3 sekunde

  //automobilima svijetli žuto, pješacima svijetli crveno
  digitalWrite(LedCrvena, LOW);   //isključi crveno svjetlo
  digitalWrite(LedZuta, LOW);     //uključi žuto svjetlo
  digitalWrite(LedZelena, HIGH);  //isključi zeleno svjetlo
  digitalWrite(LedCrvenaP, HIGH); //uključi crveno svjetlo za pješake
  digitalWrite(LedZelenaP, LOW);  //isključi zeleno svjetlo za pješake
  delay(1000);                    //čekaj 1 sekundu
}