abc Arduino
LED diode - simulacija semafora

4.1.. Napraviti simulaciju semafora (po dvije LED diode: crvena, žuta i zelena). Koristiti funkcije za svaku kombinaciju.

Šema povezivanja:

Elementi:
- LED dioda 6 kom (crvena, žuta i zelena) x2
- otpornik 220 Ω 6 kom.

Listing programa :

// semafor 1
int r1 = 7; // crveni 1
int y1 = 8; // zuti 1
int g1 = 9; // zeleni 1
int r2 = 2; // crveni 2
int y2 = 3; // zuti 2
int g2 = 4; // zeleni 2

int kasni_s1 = 3000; // kasnjenje semafora 1
int kasni_s2 = 3000; // kasnjenje semafora 2
int prelaz = 2000; // kasnjenje semafora 2

void f_r1_g2(){
   digitalWrite(r1, HIGH);
   digitalWrite(y1, LOW);
   digitalWrite(g1, LOW);
   digitalWrite(r2, LOW);
   digitalWrite(y2, LOW);
   digitalWrite(g2, HIGH);
   Serial.println("C1 Crveni 1   G2 zeleni 2");
}

void f_r1_y1_y2() {
   digitalWrite(r1, HIGH);
   digitalWrite(y1, HIGH);
   digitalWrite(g1, LOW);
   digitalWrite(r2, LOW);
   digitalWrite(y2, HIGH);
   digitalWrite(g2, LOW);
   Serial.println("C1 Crveni 1  Y1 zuti 1  G2 zeleni 2");
}

void f_g1_r2() {
   digitalWrite(r1, LOW);
   digitalWrite(y1, LOW);
   digitalWrite(g1, HIGH);
   digitalWrite(r2, HIGH);
   digitalWrite(y2, LOW);
   digitalWrite(g2, LOW);
   Serial.println("G1 zeleni 1   C2 Crveni 2  ");
}

void f_y1_r2_y2() {
   digitalWrite(r1, LOW);
   digitalWrite(y1, HIGH);
   digitalWrite(g1, LOW);
   digitalWrite(r2, HIGH);
   digitalWrite(y2, HIGH);
   digitalWrite(g2, LOW);
   Serial.println("Y1 zuti 1  C2 Crveni 2 Y2 zuti 2 ");
}

void setup() {
  pinMode(r1, OUTPUT);  
  pinMode(y1, OUTPUT);
  pinMode(g1, OUTPUT);
  pinMode(r2, OUTPUT);  
  pinMode(y2, OUTPUT);
  pinMode(g2, OUTPUT);      
  pinMode(13, OUTPUT);   
  Serial.begin(9600);
}

void loop() {
  f_r1_g2();  // crveni 1  :::  zeleni 2
     delay(kasni_s1);
  f_r1_y1_y2();  // crveni 1 i ziti 1  ::: i zeleni 2  
      delay(prelaz); // Wait for 1000 millisecond(s)
  
  f_g1_r2();  // zeleni 1  :::  crveni 2
     delay(kasni_s2);
  f_y1_r2_y2();  // zuti 1  :::   crveni 2 i ziti 2 
      delay(prelaz); // Wait for 1000 millisecond(s)
  }

Ispis na ekranu:

Index