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.
Encender y apagar un led en ESP32 con dos pulsadores
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
pulsador dos leds

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 >>

Ads Blocker Image Powered by Code Help Pro

Ads Blocker Detected!!!

En Programador Novato vivimos de los anuncios, hemos detectado que está utilizando extensiones para bloquear anuncios. Ayudanos deshabilitando tu bloqueador de anuncios. :)