const int lichtGroen2 = 13;
const int lichtOranje2 = 12;
const int lichtRood2 = 14;
const int lichtGroen1 = 25;
const int lichtOranje1 = 33;
const int lichtRood1 = 32;
const int knopSnelheid = 18;
const int knopKnipperen = 19;
const int lichtSnelheidWeergeven = 26;
void LichtWerking1(bool lichtGroen1Werking, bool lichtOranje1Werking, bool lichtRood1Werking, String lichtWaarde1Werking, int tijdLicht){
static int timeStampLichten;
if(millis() - timeStampLichten >= tijdLicht * 500){
timeStampLichten = millis();
Serial.println(lichtWaarde1Werking);
digitalWrite(lichtGroen1, lichtGroen1Werking);
digitalWrite(lichtOranje1, lichtOranje1Werking);
digitalWrite(lichtRood1, lichtRood1Werking);
}
}
void LichtWerking2(bool lichtGroen2Werking, bool lichtOranje2Werking, bool lichtRood2Werking, String lichtWaarde2Werking, int tijdLicht2){
static int timeStampLichten2;
if(millis() - timeStampLichten2 >= tijdLicht2 * 500){
timeStampLichten2 = millis();
digitalWrite(lichtGroen2, lichtGroen2Werking);
digitalWrite(lichtOranje2, lichtOranje2Werking);
digitalWrite(lichtRood2, lichtRood2Werking);
}
}
void setup() {
Serial.begin(115200);
Serial.setTimeout(999999);
pinMode(knopSnelheid, INPUT_PULLDOWN); pinMode(knopKnipperen, INPUT_PULLDOWN);
pinMode(lichtGroen1, OUTPUT); pinMode(lichtOranje1, OUTPUT); pinMode(lichtRood1, OUTPUT);
pinMode(lichtGroen2, OUTPUT); pinMode(lichtOranje2, OUTPUT); pinMode(lichtRood2, OUTPUT);
pinMode(lichtSnelheidWeergeven, OUTPUT);
}
void loop() {
static bool knipperenEerder = false;
static bool knipperenHoogLaag = 0;
static bool knipperen = false;
static bool statusKnopKnipperenEerder = 0;
static bool spitsUurEerder = false;
static bool spitsUur = false;
static bool statusKnopSpitsuurEerder = 0;
static int groen = 5000;
static int oranje = 1000;
static int rood = 6000;
///////////////////////////////////////////////////////////////
bool statusKnopKnipperen = digitalRead(knopKnipperen);
delay(10);
if(statusKnopKnipperen != statusKnopKnipperenEerder ){
statusKnopKnipperenEerder = statusKnopKnipperen ;
if(statusKnopKnipperen == 1){
Serial.println("knop knipperen gedrukt!");
knipperen = !knipperenEerder;
knipperenEerder = !knipperenEerder;
Serial.println(knipperen);
}
delay(5);
}
static bool knipperStand = 1;
static unsigned int timestampKnipperen = 0;
static unsigned int timestampVerkeerslicht = 0;
static bool groenStand = 1;
static bool oranjeStand= 0;
static bool roodStand= 0;
if(knipperen == 1){
digitalWrite(lichtGroen1, LOW); digitalWrite(lichtOranje1, LOW); digitalWrite(lichtRood1, LOW);
digitalWrite(lichtGroen2, LOW); digitalWrite(lichtOranje2, LOW); digitalWrite(lichtRood2, LOW);
roodStand = 1;
if(millis() - timestampKnipperen > 1000){
timestampKnipperen = millis();
digitalWrite(lichtOranje2, knipperStand);
digitalWrite(lichtOranje1, knipperStand);
delay(20);
knipperStand = !knipperStand;
}
}
else if(knipperen == 0){
LichtWerking1( 1, 0, 0, " Groen", 5);
LichtWerking1( 0, 1, 0, " Groen", 5);
LichtWerking1( 0, 0, 1, " Groen", 5);
}
bool statusKnopSpitsuur = digitalRead(knopSnelheid);
if(statusKnopSpitsuur != statusKnopSpitsuurEerder){
statusKnopSpitsuurEerder = statusKnopSpitsuur;
if(statusKnopSpitsuur == 1){
Serial.println("knop spitsuur gedrukt!");
spitsUur = !spitsUurEerder;
spitsUurEerder = !spitsUurEerder;
Serial.println(spitsUur);
}
delay(5);
}
if(spitsUur == 1){
digitalWrite(lichtSnelheidWeergeven, HIGH);
groen = 2500;
oranje = 500;
rood = 3000;
}
else if(spitsUur == 0){
digitalWrite(lichtSnelheidWeergeven, LOW);
groen = 5000;
oranje = 1000;
rood = 6000;
}
} ///