Hallo,
Ik ben voor mijn profielwerkstuk bezig met het programmeren van verkeerslichten. Ik ben dit aan het doen met ledjes op een breadboard (Arduino). Ik ben nu met twee stoplichten bezig.
Ik wil nu graag dat als ik op button 1 druk het ene stoplicht op groen gaat en de ander op rood,
Dat als ik op button 2 druk het net andersom gebeurt,
Als ik op geen van beide druk gaat hij gewoon het normale rijtje af (Changelights) .
Dit heb ik tot nu toe, maar het wil maar niet lukken. Er gebeurt niks als ik op de buttons druk, hij gaat alleen het normale rijtje af (Changelights). zou iemand kunnen vertellen wat ik verkeerd doe?
code:
const int red= 10;
const int yellow = 9;
const int green = 8;
const int red2= 7;
const int yellow2 = 6;
const int green2 = 5;
const int buttonPin = 12;
const int button2Pin = 11;
int buttonState = LOW;
int button2State = LOW;
void setup() {
// put your setup code here, to run once:
pinMode(red, OUTPUT);
pinMode(yellow, OUTPUT);
pinMode(green, OUTPUT);
pinMode(red2, OUTPUT);
pinMode(yellow2, OUTPUT);
pinMode(green2, OUTPUT);
pinMode(buttonPin, INPUT);
pinMode(button2Pin, INPUT);
}
void loop() {
// put your main code here, to run repeatedly:
buttonState = digitalRead(buttonPin);
button2State = digitalRead(button2Pin);
if (buttonState == HIGH && button2State == LOW){
digitalWrite(green, HIGH);
digitalWrite(yellow, LOW);
digitalWrite(red, LOW);
digitalWrite(green2, LOW);
digitalWrite(yellow2, LOW);
digitalWrite(red2, HIGH);
delay(6000);
}
else{
Changelights();
delay(1000);
Changelights();
}
if (buttonState == LOW && button2State == HIGH){
digitalWrite(green, LOW);
digitalWrite(yellow, LOW);
digitalWrite(red, HIGH);
digitalWrite(green2, HIGH);
digitalWrite(yellow2, LOW);
digitalWrite(red2, LOW);
delay(6000);
}
else{
Changelights();
delay(1000);
Changelights();
}
void Changelights() {
digitalWrite(red, LOW);
digitalWrite(yellow, LOW);
digitalWrite(green, HIGH);
digitalWrite(red2, HIGH);
digitalWrite(yellow2, LOW);
digitalWrite(green2, LOW);
delay(6000);
// stoplicht 1 staat op groen, stoplicht 2 staat op rood (6 seconden)
digitalWrite(red, LOW);
digitalWrite(yellow, HIGH);
digitalWrite(green, LOW);
digitalWrite(red2, HIGH);
digitalWrite(yellow2, LOW);
digitalWrite(green2, LOW);
delay(3000);
// stoplicht 1 staat op geel, stoplicht 2 staat op rood (3 seconden)
digitalWrite(red, HIGH);
digitalWrite(yellow, LOW);
digitalWrite(green, LOW);
digitalWrite(red2, LOW);
digitalWrite(yellow2, LOW);
digitalWrite(green2, HIGH);
delay(6000);
// stoplicht 1 staat op rood, stoplicht 2 staat op groen (6 seconden)
digitalWrite(red, HIGH);
digitalWrite(yellow, LOW);
digitalWrite(green, LOW);
digitalWrite(red2, LOW);
digitalWrite(yellow2, HIGH);
digitalWrite(green2, LOW);
delay(3000);
}