//programma voor eenvoudige F1 startlichten
int ledPins[8] = {0,1,2,3,4,5,6,7};
int power = 8;
int start = 9;
int speaker = 10;
int previous = 0;
int reading = 0;
int buttonState = 0;
long time = 0;
long debounce = 200;
int previousS = 0;
int readingS = 0;
int buttonStateS = 0;
long timeS = 0;
void setup() {
// put your setup code here, to run once:
for (int i = 0; i < 8; i++) {
pinMode(ledPins[i], OUTPUT);
};
pinMode(power, INPUT);
pinMode(start, INPUT);
pinMode(speaker, OUTPUT);
}
void loop() {
// put your main code here, to run repeatedly:
// power knop een toggle button maken
reading = digitalRead(power);
if (reading == HIGH && previous == LOW && millis() - time > debounce){
buttonState = !buttonState;
time = millis();
}
// start knop toggle
readingS = digitalRead(start);
if (readingS == HIGH && previousS == LOW && buttonState == HIGH && millis() - timeS > debounce){
buttonStateS = !buttonStateS;
timeS = millis();
}
//power aan => alle lichten aan
if (buttonState == HIGH) {
for (int i = 0; i < 8; i++) {
digitalWrite(ledPins[i], HIGH);
}
//start aan => start sequentie
if (buttonStateS == HIGH) {
//random delay voor de start
long randomDelay = random(50, 201);
for (int i = 0; i < 8; i++) {
digitalWrite(ledPins[i], LOW);
}
delay(1000);
for (int i = 4; i < 8; i++) {
digitalWrite(ledPins[i], HIGH);
tone(speaker, 265, 250); //speaker geluid laten maken
delay(1000);
}
for (int i = 4; i < 8; i++) {
digitalWrite(ledPins[i], LOW);
}
delay(randomDelay);
for (int i = 0; i < 4; i++) {
digitalWrite(ledPins[i], HIGH);
}
tone(speaker, 700, 1000); //speaker hogere toon laten maken
delay(5000);
buttonStateS = LOW;
}
}
else {
for (int i = 0; i < 8; i++) {
digitalWrite(ledPins[i], LOW);
}
}
}