#define PULSADOR 3
#define intPin 2
#define LED3 13
#define LED2 12
#define LED1 11
int contador=0;
int salidaLED1, estadoLED1;
int salidaLED2, estadoLED2;
int salidaLED3, estadoLED3; //Asignar el estado del LED
int estadoSalidaPulsador=1, estadoPulsador; //Estado actual y de salida del pulsador
int estado_intPin, estadoSalida_intPin;
void setup()
{
Serial.begin(9600);
pinMode(PULSADOR, INPUT_PULLUP);
pinMode(LED1, OUTPUT);
pinMode(LED2, OUTPUT);
pinMode(LED3, OUTPUT);
attachInterrupt(digitalPinToInterrupt(intPin), Int_boton, FALLING);
}
void Int_boton() {
estado_intPin = digitalRead(intPin);
delay (20);
if(estado_intPin==LOW){
estadoSalida_intPin= 0;
}
if(estadoSalida_intPin==0 && estado_intPin==1)
{
estadoSalida_intPin= 1;
contador= 0;
Serial.println("LEDS APAGADOS");
digitalWrite(LED1, LOW);
digitalWrite(LED2, LOW);
digitalWrite(LED3, LOW);
//Serial.println(digitalRead(LED1)?"Prendido":"Apagado");
//Serial.println(digitalRead(LED2)?"Prendido":"Apagado");
//Serial.println(digitalRead(LED3)?"Prendido":"Apagado");
//Serial.println(contador);
}
}
void loop()
{
estadoPulsador = digitalRead(PULSADOR);
delay (20);
estadoLED1 = digitalRead(LED1);
estadoLED2 = digitalRead(LED2);
estadoLED3 = digitalRead(LED3);
if(estadoPulsador==LOW){
estadoSalidaPulsador= 0;
}
if(estadoSalidaPulsador==0 && estadoPulsador==1 && estadoLED1==0)
{
digitalWrite(LED1, HIGH);
contador ++;
//Serial.println(digitalRead(contador)?"Prendido":"Apagado");
Serial.println(contador);
estadoSalidaPulsador= 1;
}
if (estadoSalidaPulsador==0 && estadoPulsador== HIGH && estadoLED1==1 && estadoLED2==0)
{
digitalWrite(LED2, HIGH);
contador++ ;
Serial.println(contador);
estadoSalidaPulsador= 1;
}
if(estadoSalidaPulsador==0 && estadoPulsador== HIGH && estadoLED2== 1 && estadoLED2==1 && estadoLED3==0)
{
digitalWrite(LED3, HIGH);
contador ++;
Serial.println(contador);
estadoSalidaPulsador= 1;
}
if(estadoSalidaPulsador==0 && estadoPulsador== HIGH && estadoLED1==1 && estadoLED2==1 && estadoLED3==1)
{
digitalWrite(LED1, LOW);
digitalWrite(LED2, LOW);
digitalWrite(LED3, LOW);
Serial.println("LEDS APAGADOS");
contador=0;
estadoSalidaPulsador= 1;
}
}