En esta lección vas a aprender a generar sonidos utilizando un buzzer activo con tu placa Elegoo. Es un componente fundamental para integrar alertas sonoras y alarmas en tus proyectos de electrónica de forma sencilla.
Resumen
Vas a aprender la lógica de funcionamiento de los buzzers y cómo diferenciarlos. El objetivo principal es que logres programar el dispositivo para que emita distintos tonos controlados desde el código.
Componentes necesarios
- (1) x Elegoo ESP32
- (1) x Buzzer activo
- (2) x Protoboard de 400 puntos
- (2) x Cables M-M (Macho a Macho)
Introducción de los componentes
BUZZER: Los buzzers electrónicos funcionan con corriente continua y vienen equipados con un circuito integrado. Se usan muchísimo en computadoras, impresoras, fotocopiadoras, alarmas, juguetes, dispositivos electrónicos para autos, teléfonos y timers. Se pueden categorizar en activos y pasivos. Si mirás los pines de ambos hacia arriba, el que tiene la placa de circuito verde es un buzzer pasivo, mientras que el que está cerrado con una cinta negra es uno activo.
La diferencia entre los dos es que el buzzer activo tiene una fuente de oscilación interna, por lo que genera sonido apenas recibe corriente. El pasivo no tiene esa fuente, así que no va a "pitar" con señales de corriente continua; para ese necesitás usar ondas cuadradas con una frecuencia de entre 2K y 5K para activarlo. El buzzer activo suele ser más caro que el pasivo porque ya trae incorporados los circuitos de oscilación.
Esquema de conexión
Fijate bien en la polaridad del buzzer antes de conectarlo; normalmente el pin más largo es el positivo.
Diagrama de cableado
Asegurate de que los cables estén bien firmes en la protoboard para evitar falsos contactos durante las pruebas.
Código
Podés hacer clic en el enlace de texto azul para descargar el archivo del programa a tu equipo, y después hacés doble clic para abrirlo. Tené en cuenta: antes de abrir el archivo, asegurate de haber instalado el entorno de desarrollo IDE de Arduino y de haber completado la instalación de los componentes necesarios, como el soporte para la placa ESP32 y los controladores. Si tenés alguna duda sobre este proceso, podés consultar la sección "Parte 1" de la documentación para tener una guía detallada.
📥 DESCARGAR active.ino
void loop()
{
unsigned char i;
while(1)
{
// salida de una frecuencia
for(i=0;i<80;i++)
{
digitalWrite(buzzer,HIGH);
delay(1);// espera 1ms
digitalWrite(buzzer,LOW);
delay(1);// espera 1ms
}
// salida de otra frecuencia
for(i=0;i<100;i++)
{
digitalWrite(buzzer,HIGH);
delay(2);// espera 2ms
digitalWrite(buzzer,LOW);
delay(2);// espera 2ms
}
}
}
while(condition) [Estructura de control]
Descripción: Un bucle while se repite de forma continua e infinita hasta que la expresión dentro del paréntesis () se vuelve falsa. Algo tiene que cambiar la variable evaluada, o el bucle no va a terminar nunca. Esto puede estar en tu código, como una variable que se incrementa, o ser una condición externa, como la lectura de un sensor.
Sintaxis:
while(condición){
// sentencias
}
Parámetros: condición es una expresión booleana que devuelve verdadero (true) o falso (false).
Si necesitás que el programa entre en un estado de ejecución de bucle infinito, podés configurar directamente la expresión en el while() como true o 1. Al mismo tiempo, vas a necesitar programar una condición de salida dentro del cuerpo del bucle. Cuando esa condición se cumpla, usás la sentencia break para terminar el bucle a la fuerza, logrando así la lógica de "entrar en un bucle infinito primero y salir cuando se cumpla lo esperado".
while(1){
if(x==1)
{
break;
}
//.........
}
Fuente: Adaptado al español desde el wiki oficial Elegoo (licencia CC BY-SA). Revisión técnica por equipo Breva.