Encender y apagar un led en ESP32 con dos pulsadores

Encender y apagar un led en ESP32 con dos pulsadores

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.

Requerimientos:

  • 2 Pulsadores.
  • 3 Resistencias de 330 Ω.
  • 1 Led.
  • Cables

Conexiones

  • Conectamos el pulsador1 al pin 4.
  • Conectamos el pulsador2 al pin 5.
  • Conectamos el led al pin 2.
Diagrama para Encender y apagar un led en ESP32 con dos pulsadores

Código para Encender y apagar un led en ESP32 con dos pulsadores

//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;
//Definimos el pin del pulsador 1
int pinPulsador1=4;
//Definimos el pin del pulsador 1
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);
}

Explicación del código

  • Declaramos la variable que cuenta, la cantidad de veces que se ha presionado el pulsador 1
  • Declaramos la variable que cuenta la cantidad de veces que se ha precionado el pulsador 2
  • Variable que define el pin del pulsador 1
  • Variable que define el pin del pulsador 2
  • Definimos el pin del led
  • Inicializamos el pin del pulsador 1 como salida
  • Inicializamos el pin del pulsador 2 como salida
  • Inicializamos el pin del led como salida
  • Iniciamos la velocidad en 9600 baudios
  • Si se presionamos el pulsador 1
  • Incrementamos el contador1 en 1
  • Encendemos el led
  • Esperamos 200 milisegundos
  • Apagamos el led

Link de la simulación https://wokwi.com/projects/342314100874805843

🎦 Este curso: https://www.youtube.com/watch?v=VuJkqL2Ys3Y&list=PLCTD_CpMeEKTvjzabAvLGHakg-ql6t0q6&ab_channel=ProgramadorNovato

🎦 Curso de Arduino: https://www.youtube.com/watch?v=oGinJt9aALc&list=PLCTD_CpMeEKSqw3Nh7rA9aXUAzbPIPkdv&ab_channel=ProgramadorNovato

🎦 [CURSO] C++ DE 0 A HEROE: https://www.youtube.com/watch?v=APN8aCyPvww&list=PLCTD_CpMeEKTofxs7iottRxJ5YPM7BOcc

<<Anterior tutorial Siguiente tutorial >>

Los comentarios están cerrados.

Salir de la versión móvil