
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
Ave que vuela, a la cazuela.