#define ROOD 2
#define GROEN 3
#define ORANJE 4
int state;
void setup() {
pinMode(ROOD, OUTPUT);
pinMode(GROEN, OUTPUT);
pinMode(ORANJE, OUTPUT);
state = ROOD;
}
void loop() {
static unsigned long startTime = millis();
/* Hier komt je finite state machine */
switch (state) {
case ROOD:
digitalWrite(ROOD, HIGH);
state = GROEN;
if (millis() - startTime > 3000) {
digitalWrite(ROOD, LOW);
digitalWrite(GROEN, HIGH);
startTime = millis();
}
break;
case GROEN:
digitalWrite(GROEN, HIGH);
state = ORANJE;
if (millis() - startTime > 5000) {
digitalWrite(GROEN, LOW);
digitalWrite(ORANJE, HIGH);
startTime = millis();
}
break;
case ORANJE:
digitalWrite(ORANJE, HIGH);
state = ROOD;
if (millis() - startTime > 6000) {
digitalWrite(ORANJE, LOW);
digitalWrite(ROOD, HIGH);
startTime = millis();
}
break;
default:
digitalWrite(ROOD, HIGH);
digitalWrite(GROEN, LOW);
digitalWrite(ORANJE, LOW);
break;
}
/* Om een LED aan te zetten , gebruik je : */
digitalWrite(ROOD, HIGH);
/* Om een LED uit te zetten , gebruik je : */
digitalWrite(GROEN, LOW);
}