Manipular zumbador con pulsador en ESP32
Ahora que ya sabemos usar el zumbador, ahora vamos a manipular zumbador con pulsador en ESP32, de tal suerte que al presionar diferentes pulsadores que se generen diferentes frecuencias de sonidos, seguiremos estos pasos:
- Al presionar el pulsador 1 se genera un pulso de 400 decibelios.
- Al presionar el pulsador 2 se genera un pulso de 500 decibelios.
- Al presionar el pulsador 3 se genera un pulso de 600 decibelios.
Requerimientos:
- ESP32.
- Zumbador.
- 3 Resistencias de 330 Ohms.
- 3 Pulsadores.
- Cables
Conexiones:
- Conectamos la tierra (GND) del ESP32 al cable negro del zumbador.
- Conectamos el pin D4 del ESP32 al cable rojo del zumbador.
- Conectamos el pulsador 1 con su respectiva resistencia a la tierra y la corriente al pin 32.
- Conectamos el pulsador 2 con su respectiva resistencia a la tierra y la corriente al pin 35.
- Conectamos el pulsador 3 con su respectiva resistencia a la tierra y la corriente al pin 34.
Código de un Zumbador con pulsador en el ESP32:
/* Zumbador con pulsador en ESP32 */ //Declaramos el pin del zumbador int pinZumbador=4; //Pin del pulzador 1 int pinPulsador1=32; int pinPulsador2=35; int pinPulsador3=34; //Inicializamos las variables de la salida pwm int canal=0, frec=2000, resolucion=8; void setup() { Serial.begin(115200); //Inicializamos la salida del pwm ledcSetup(canal,frec,resolucion); //Declaramos pin donde se conecta el zumbador ledcAttachPin(pinZumbador, 0); // Configuramos los pulsdores para recibir los datos pinMode(pinPulsador1, INPUT); pinMode(pinPulsador2, INPUT); pinMode(pinPulsador3, INPUT); } void loop() { //Si precionamos el pulsador 1 if (digitalRead(pinPulsador1) == HIGH) { //Emitimos un tono de 400 ledcWriteTone(0, 400); Serial.println("1"); } //Si precionamos el pulsador 3 if (digitalRead(pinPulsador2) == HIGH) { //Emitimos un tono de 500 ledcWriteTone(0, 500); Serial.println("2"); } //Si precionamos el pulsador 3 if (digitalRead(pinPulsador3) == HIGH) { //Emitimos un tono de 600 ledcWriteTone(0, 600); Serial.println("3"); } //Si no se preciona ningun pulsador no emitimos ningun sonido if(digitalRead(pinPulsador3)==LOW && digitalRead(pinPulsador2)==LOW && digitalRead(pinPulsador1)==LOW ){ ledcWriteTone(0, 0); } //ledcWriteTone(0, 0); delay(10); }
Código y diagrama: https://wokwi.com/projects/344467599929639508
🎦 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