/*
Mira el tutorial en 
Programador Novato: https://www.programadornovato.com/encender-y-apagar-un-led-en-esp32-con-dos-pulsadores/
Youtube: https://www.youtube.com/watch?v=gtMqLL0xFao&list=PLCTD_CpMeEKTvjzabAvLGHakg-ql6t0q6&index=7

Ya aprendimos a encender y apagar un led con pulsador, 
ahora vamos a Encender y apagar un led en ESP32 con dos 
pulsadores, lo haremos con el siguiente reto: 
- Al presionar el pulsador1 encender y apagar el led.
- Al presionar el pulsador2 encender y apagar el led. 
- Sí se presiona dos veces el pulsador1 y el pulsador2 mantener encendido el led.
*/

//Variable que cuenta la cantidad de veces que se ha precionado el pulsador 1
int CONTADOR1 = 0;
//Variable que cuenta la cantidad de veces que se ha precionado el pulsador 2
int CONTADOR2 = 0;
//Variable que define el pin del pulsador 1
int pinPulsador1=4;
//Variable que define el pin del pulsador 2
int pinPulsador2=5;
//Definimos el pin del led
int pinLed=2;

void setup()
{
  //Inicializamos el pin del puñzador 1 como salida
  pinMode(pinPulsador1, INPUT);
  //Inicializamos el pin del puñzador 2 como salida
  pinMode(pinPulsador2, INPUT);
  //Inicializamos el pin del led como salida
  pinMode(pinLed, OUTPUT);
  //Iniciamos la velocidad en 9600 baudios
  Serial.begin(9600);

}
void loop()
{
  //Si se precionamos el pulsador 1 
  if (digitalRead(pinPulsador1) == HIGH) {
    //Incrementamos el contador1 en 1
    CONTADOR1 += 1;
    //Encendemos el led
    digitalWrite(pinLed, HIGH);
    //Esperamos 200 milisegundos
    delay(200);
    //Apagamos el led
    digitalWrite(pinLed, LOW);
  }
  //Si se precionamos el pulsador 2
  if (digitalRead(pinPulsador2) == HIGH) {
    //Incrementamos el contador2 en 1
    CONTADOR2 += 1;
    //Encendemos el led
    digitalWrite(pinLed, HIGH);
    //Esperamos 200 milisegundos
    delay(200);
    //Apagamos el led
    digitalWrite(pinLed, LOW);
  }
  mostrar();
  if (CONTADOR1 == 2 && CONTADOR2 == 2) {
    digitalWrite(pinLed, HIGH);
  } else {
    digitalWrite(pinLed, LOW);
  }
  if (CONTADOR1 > 2) {
    CONTADOR1 = 0;
  }
  if (CONTADOR2 > 2) {
    CONTADOR2 = 0;
  }
  delay(100);
}
void mostrar(){
  Serial.print("CONTADOR1:");
  Serial.println(CONTADOR1);
  Serial.print("CONTADOR2:");
  Serial.println(CONTADOR2);
}
esp:VIN
esp:GND.2
esp:D13
esp:D12
esp:D14
esp:D27
esp:D26
esp:D25
esp:D33
esp:D32
esp:D35
esp:D34
esp:VN
esp:VP
esp:EN
esp:3V3
esp:GND.1
esp:D15
esp:D2
esp:D4
esp:RX2
esp:TX2
esp:D5
esp:D18
esp:D19
esp:D21
esp:RX0
esp:TX0
esp:D22
esp:D23
led1:A
led1:C
r1:1
r1:2
r2:1
r2:2
btn1:1.l
btn1:2.l
btn1:1.r
btn1:2.r
btn2:1.l
btn2:2.l
btn2:1.r
btn2:2.r
r3:1
r3:2