Pues estoy haciendo semaforos inteligentes (aun no lo son) pero el caso es que mi boton no logra funcionar, yo quiero que al principio siga una secuencia comun, pero cuando un peaton pulsa un boton deberia ejecutarse un codigo especifico para que el peaton pase, el caso es que llevo 1 meses y sigo sin ser capaz de hacerlo funcionar, porque en el serial monitor dice que en efecto, esta siendo presionado pero el codigo lo ignora completamente, es la primera vez que programo y supongo que algo mal estara hecho.
int rojo=13;
int amarillo=12;
int verde=11;
int b=2;
int rp=7;
int vp=6;
int r2=10;
int a2=9;
int v2=8;
int rp2=5;
int vp2=4;
int buttonState = 0;
void setup()
{
pinMode(13, OUTPUT);
pinMode(12, OUTPUT);
pinMode(11,OUTPUT);
pinMode(7, OUTPUT);
pinMode(6, OUTPUT);
pinMode(10,OUTPUT);
pinMode(9,OUTPUT);
pinMode(8,OUTPUT);
pinMode(5,OUTPUT);
pinMode(4,OUTPUT);
pinMode(2,INPUT);
attachInterrupt(digitalPinToInterrupt(2), readButton, CHANGE);
Serial.begin(
2600);
}
void readButton()
{
buttonState = digitalRead(2);
Serial.println(buttonState);
}
void loop()
{
if (buttonState == 1) {
digitalWrite(verde,LOW);
digitalWrite(amarillo,HIGH);
digitalWrite(rojo,LOW);
digitalWrite(r2,LOW);
digitalWrite(a2,LOW);
digitalWrite(v2,HIGH);
delay(3000);
digitalWrite(rp,LOW);
digitalWrite(vp,HIGH);
digitalWrite(verde,LOW);
digitalWrite(amarillo,LOW);
digitalWrite(rojo,HIGH);
digitalWrite(rp2,HIGH);
digitalWrite(vp2,LOW);
digitalWrite(v2,HIGH);
digitalWrite(a2,LOW);
digitalWrite(r2,LOW);
delay(5000);
}
digitalWrite(rojo,HIGH);
digitalWrite(amarillo,LOW);
digitalWrite(verde,LOW);
digitalWrite(rp,LOW);
digitalWrite(vp,HIGH);
digitalWrite(r2,LOW);
digitalWrite(a2,LOW);
digitalWrite(v2,HIGH);
digitalWrite(rp2,HIGH);
digitalWrite(vp2,LOW);
delay(5000);
digitalWrite(v2,LOW);
digitalWrite(a2,HIGH);
delay(3000);
digitalWrite(rojo,LOW);
digitalWrite(amarillo,LOW);
digitalWrite(verde,HIGH);
digitalWrite(rp,HIGH);
digitalWrite(vp,LOW);
digitalWrite(a2,LOW);
digitalWrite(r2,HIGH);
digitalWrite(rp2,LOW);
digitalWrite(vp2,HIGH);
delay(20000);
digitalWrite(rojo,LOW);
digitalWrite(amarillo,HIGH);
digitalWrite(verde,LOW);
digitalWrite(r2,HIGH);
digitalWrite(a2,LOW);
digitalWrite(v2,LOW);
delay(7000);
digitalWrite(rojo,HIGH);
digitalWrite(amarillo,LOW);
digitalWrite(verde,LOW);
digitalWrite(rp,LOW);
digitalWrite(vp,HIGH);
digitalWrite(r2,LOW);
digitalWrite(a2,LOW);
digitalWrite(v2,HIGH);
digitalWrite(rp2,HIGH);
digitalWrite(vp2,LOW);
delay(20000);
}