// schrijf code voor de toepassing van een verkeerslicht
// maak gebruik van LED ROOD, LED ORANJE, LED GROEN
// LEDROOD1,LEDORANJE1,LEDGROEN1 zijn voor een kant van het kruispunt
// LEDROOD2,LEDORANJE2,LEDGROEN2 voor andere kant van het kruispunt
// voor timing zijn volgende waarden van toepassing:
// De overgang tussen elke LED is 1,5 sec
// De tijd voor het vrijmaken van het kruispunt is 3 sec
// indrukken van de button triggert het voetgangers verkeerslicht
#define LEDROOD1 21
#define LEDORANJE1 22
#define LEDGROEN1 23
#define LEDROOD2 19
#define LEDORANJE2 18
#define LEDGROEN2 15
#define BUTTONPIN 2
#define LEDROOD3 4
#define LEDORANJE3 5
#define LEDGROEN3 13
void setup()
{
Serial.begin(115200);
pinMode(LEDROOD1, OUTPUT);
pinMode(LEDGROEN1, OUTPUT);
pinMode(LEDORANJE1, OUTPUT);
pinMode(LEDROOD2, OUTPUT);
pinMode(LEDORANJE2, OUTPUT);
pinMode(LEDGROEN2, OUTPUT);
pinMode(BUTTONPIN, INPUT);
pinMode(LEDROOD3, OUTPUT);
pinMode(LEDORANJE3, OUTPUT);
pinMode(LEDGROEN3, OUTPUT);
}
void loop()
{
if (digitalRead(BUTTONPIN) == HIGH)
{
delay(500);
digitalWrite(LEDROOD3, HIGH);
digitalWrite(LEDORANJE3, LOW);
digitalWrite(LEDGROEN3, LOW);
delay(1500);
digitalWrite(LEDROOD3, LOW);
digitalWrite(LEDORANJE3, LOW);
digitalWrite(LEDGROEN3, HIGH);
delay(1500);
digitalWrite(LEDROOD3, LOW);
digitalWrite(LEDORANJE3, HIGH);
digitalWrite(LEDGROEN3, LOW);
delay(1500);
digitalWrite(LEDROOD3, HIGH);
digitalWrite(LEDORANJE3, LOW);
digitalWrite(LEDGROEN3, LOW);
}
else
{
digitalWrite(LEDROOD3, HIGH);
//STEP 1
// LEDROOD1= AAN, LEDGROEN2=AAN
digitalWrite(LEDROOD1, HIGH);
digitalWrite(LEDORANJE1, LOW);
digitalWrite(LEDORANJE2, LOW);
digitalWrite(LEDROOD2, LOW);
digitalWrite(LEDGROEN2, HIGH);
delay(1500);
//*******************************************************
//STEP 2
//LEDROOD1=AAN, LEDGROEN2=UIT, LEDORANJE2=AAN
digitalWrite(LEDROOD1, HIGH);
digitalWrite(LEDORANJE1, LOW);
digitalWrite(LEDGROEN1, LOW);
digitalWrite(LEDGROEN2, LOW);
digitalWrite(LEDORANJE2, HIGH);
digitalWrite(LEDROOD2, LOW);
delay(1500);
//********************************************************
//STEP 3
// LEDROOD1=AAN,LEDROOD2=AAN,LEDORANJE2=UIT
//Led Oranje2 aan , LedRood 1 aan
digitalWrite(LEDROOD1, HIGH);
digitalWrite(LEDORANJE1, LOW);
digitalWrite(LEDGROEN1, LOW);
digitalWrite(LEDROOD2, HIGH);
digitalWrite(LEDORANJE2, LOW);
digitalWrite(LEDGROEN2, LOW);
delay(1500);
//********************************************************
//STEP 4
// Wacht 3 sec om kruispunt vrij te maken
//LEDROOD1 en LEDROOD2 =AAN
digitalWrite(LEDROOD1, HIGH);
digitalWrite(LEDORANJE1, LOW);
digitalWrite(LEDGROEN1, LOW);
digitalWrite(LEDROOD2, HIGH);
digitalWrite(LEDORANJE2, LOW);
digitalWrite(LEDGROEN2, LOW);
delay(3000);
//*********************************************************
//STEP 5
//LEDROOD1=UIT, LEDGROEN1=AAN,LEDROOD2=AAN
digitalWrite(LEDROOD1, LOW);
digitalWrite(LEDGROEN1, HIGH);
digitalWrite(LEDORANJE1, LOW);
digitalWrite(LEDROOD2, HIGH);
digitalWrite(LEDORANJE2, LOW);
digitalWrite(LEDGROEN2, LOW);
delay(1500);
//*********************************************************
//STEP 6
// LEDGROEN1= UIT, LEDORANJE1=AAN,LEDROOD2=AAN
digitalWrite(LEDGROEN1, LOW);
digitalWrite(LEDORANJE1, HIGH);
digitalWrite(LEDROOD1, LOW);
digitalWrite(LEDROOD2, HIGH);
digitalWrite(LEDORANJE2, LOW);
digitalWrite(LEDGROEN2, LOW);
delay(1500);
//********************************************************
//STEP 7
//LEDGROEN1=UIT,LEDROOD1=AAN, LEDROOD2=AAN
digitalWrite(LEDROOD1, HIGH);
digitalWrite(LEDORANJE1, LOW);
digitalWrite(LEDGROEN1, LOW);
digitalWrite(LEDROOD2, HIGH);
digitalWrite(LEDORANJE2, LOW);
digitalWrite(LEDGROEN2, LOW);
delay(1500);
//********************************************************
}
}