Cómo usar un Zumbador Activo con Arduino
Aprende a diferenciar un zumbador activo y pasivo, y crea tus primeros pitidos paso a paso.
¡Hola, equipo de futuros ingenieros e ingenieras! Bienvenidos a una de las lecciones más ruidosas y divertidas del mundo de Arduino. 🔊 Hoy vamos a aprender cómo generar sonido. No vamos a poner una canción de Spotify (todavía), pero sí vamos a entender los fundamentos para crear alertas, alarmas, pitidos de confirmación o incluso pequeñas melodías.
En este tutorial, te guiaré paso a paso para conectar un zumbador (o 'buzzer') a tu placa Arduino UNO y programarlo para que emita dos tonos diferentes, creando un efecto de sirena simple. Explicaremos no solo el "qué" hacer, sino el "por qué" de cada conexión y cada línea de código.
¡Este es un proyecto fundamental que abre la puerta a un montón de aplicaciones interactivas! Además, incluiremos un video tutorial completo para que no te pierdas ningún detalle.
Piensa en el "bip" de tu microondas cuando termina, la alarma de tu despertador, o el sonido de advertencia de un coche cuando das marcha atrás. Todos esos sistemas usan un principio similar al que aprenderás hoy: usar una señal eléctrica para crear una vibración audible. ¡Estás a punto de aprender ese secreto!
- Materiales Necesarios para el Proyecto
- ⚙️ Conceptos Clave: ¡El Secreto de los Zumbadores!
- Diagrama de Conexiones (Hardware)
- Explicación Detallada de las Conexiones
- Código Completo del Proyecto
- Explicación Detallada del Código (Línea por Línea)
- Resultado Esperado
- 🚨 ¿No funciona? Guía Rápida de Solución de Problemas
- 🚀 ¡Felicidades! Has Dominado el Sonido
Materiales Necesarios para el Proyecto
Para esta práctica, necesitarás muy pocos componentes. ¡Es probable que ya los tengas en tu kit de inicio!
Lista de Componentes ✅
- 1x Placa Arduino UNO R3 (o compatible, como STEREN, REX QUALIS, etc)
- 1x Placa de pruebas (Protoboard)
- 1x Zumbador (Buzzer)
- 2x Cables de Puente Macho-Macho (Jumpers M-M)

⚙️ Conceptos Clave: ¡El Secreto de los Zumbadores!
Antes de conectar nada, es fundamental que hablemos del componente principal. No todos los zumbadores son iguales, y esto confunde a muchísima gente. ¡Vamos a aclararlo de una vez por todas!
La Diferencia CLAVE: Zumbador Activo vs. Zumbador Pasivo

Imagina que quieres poner música. Tienes dos opciones:
- Un altavoz inteligente (como Alexa o Google Home) que solo necesita que le digas "enciéndete" para empezar a sonar.
- Un altavoz normal (pasivo) que no hace nada hasta que le conectas un móvil o un reproductor y le envías una señal de audio específica.
Los zumbadores funcionan igual:
- Zumbador ACTIVO: Es como el altavoz inteligente. Tiene un "cerebro" interno (un oscilador). Para que suene, solo tienes que aplicarle un voltaje de corriente directa (DC), es decir, conectarlo a 5V o a un pin en
HIGH. Siempre emitirá el mismo tono fijo (ej. 2kHz). Es fácil de usar para un "bip" simple. - Zumbador PASIVO: Es como el altavoz normal. Es "tonto". No tiene oscilador interno. Para que suene, debes enviarle una señal eléctrica que "vibre" (una onda cuadrada o corriente alterna, AC). La gran ventaja: tú controlas la frecuencia de esa vibración, y por lo tanto, ¡puedes controlar el tono (la nota musical)!
¡Muy Importante! ¿Qué zumbador estamos usando?
El tutorial base menciona un "Zumbador Activo". Si miras la foto, es posible que veas un símbolo de + y una pegatina que dice "Remove Seal After Washing". Estas características suelen ser de un zumbador activo.
PERO... ¡mira el código! El código que usaremos no se limita a poner el pin en HIGH. Lo enciende (HIGH) y apaga (LOW) rapidísimo, miles de veces por segundo. ¡Esto es exactamente cómo se controla un zumbador pasivo para generar un tono específico!
Conclusión: No te preocupes. Este tutorial funcionará en ambos casos, pero de formas distintas.
- Si tienes un zumbador pasivo (lo más probable si venía en un kit), oirás dos tonos distintos, uno más agudo y otro más grave, tal como lo programamos.
- Si tienes un zumbador activo, oirás su tono fijo encendiéndose y apagándose muy rápido (un sonido "entrecortado" o "stutter") y luego un sonido entrecortado a otra velocidad.
En cualquier caso, ¡harás ruido y aprenderás cómo funciona el código!
Diagrama de Conexiones (Hardware)
El montaje es increíblemente sencillo. Solo son dos cables. Vamos a conectar el zumbador al pin digital 12 y a tierra (GND).
| Arduino UNO | Zumbador | |
| GND | Pin Negativo (-) | |
| Pin D12 | Pin Positivo (+) |
Diagrama Esquemático
Así se vería el circuito en un diagrama técnico. Es la forma más simple de representar las conexiones eléctricas.

Diagrama de Montaje (Protoboard)
Y así es como probablemente lo montarás en tu placa de pruebas. Fíjate bien en la polaridad del zumbador (el pin más largo suele ser el positivo).

Explicación Detallada de las Conexiones
Sigue estos pasos con calma. ¡Es más fácil que atarse los zapatos!
- Identifica la polaridad: Toma tu zumbador. Debería tener un lado marcado con un símbolo de más (+) o tener una patilla más larga que la otra. Esa es la patilla positiva. La otra es la negativa (-).
- Conecta a Tierra (GND): Toma un cable de puente (te recomiendo usar uno negro, por convención). Conecta un extremo a cualquiera de los pines
GND(Ground o Tierra) de tu placa Arduino. El otro extremo conéctalo a la patilla negativa (-) del zumbador.(¿Por qué? La tierra es el punto de referencia de voltaje 0V. Es el "suelo" de nuestro circuito.)
- Conecta la Señal (D12): Toma otro cable (te recomiendo uno de color, como rojo). Conecta un extremo al pin digital
12de tu Arduino. El otro extremo conéctalo a la patilla positiva (+) del zumbador.(¿Por qué? Este es el pin que programaremos para que envíe los pulsos eléctricos que crearán el sonido.)
¡Y ya está! El hardware está listo.
Código Completo del Proyecto
Ahora vamos a la parte del software. Abre tu Arduino IDE, copia y pega el siguiente código.
// Asignamos un "nombre" al pin que usaremos
// 'buzzer' ahora es un alias para el pin 12
int buzzer = 12;
void setup()
{
// Configuramos el pin del zumbador como una SALIDA (OUTPUT)
// Esto significa que el Arduino enviará voltaje POR este pin.
pinMode(buzzer, OUTPUT);
}
void loop()
{
// Declaramos una variable 'i' que usaremos como contador
// 'unsigned char' es un tipo de número pequeño, de 0 a 255
unsigned char i;
// Este bucle 'while(1)' es infinito.
// Hará que los dos tonos se repitan una y otra vez.
while(1)
{
// --- PRIMER TONO ---
// Este bucle 'for' repite el código de adentro 80 veces
// Esto hace que el tono dure un poco más
for(i=0; i<80; i++)
{
digitalWrite(buzzer, HIGH); // Enciende el pin (envía 5V)
delay(1); // Espera 1 milisegundo
digitalWrite(buzzer, LOW); // Apaga el pin (envía 0V)
delay(1); // Espera 1 milisegundo
}
// --- SEGUNDO TONO ---
// Este bucle 'for' repite el código de adentro 100 veces
for(i=0; i<100; i++)
{
digitalWrite(buzzer, HIGH); // Enciende el pin
delay(2); // Espera 2 milisegundos
digitalWrite(buzzer, LOW); // Apaga el pin
delay(2); // Espera 2 milisegundos
}
} // El 'while(1)' vuelve a empezar
}Explicación Detallada del Código (Línea por Línea)
No te limites a copiar y pegar. ¡Entendamos qué hace cada instrucción!
Declaración de Variables Globales
int buzzer = 12;Creamos una variable de tipo entero (un "apodo") llamada
buzzery le decimos que es igual a12. Ahora, cada vez que escribamosbuzzeren el código, el Arduino sabrá que nos referimos al pin 12. Es mucho más fácil de leer que ver un12suelto.
La Configuración: void setup()
Esta sección se ejecuta una sola vez cuando el Arduino se enciende o se resetea.
pinMode(buzzer, OUTPUT);Aquí le damos una orden al Arduino: "Oye, el pin que llamamos
buzzer(el pin 12) lo vamos a usar como una SALIDA (OUTPUT)". Esto significa que enviaremos señales eléctricas (voltaje) desde el Arduino hacia el zumbador. Lo opuesto seríaINPUT, para leer señales (como con un botón).
El Bucle Principal: void loop()
Este código se repite infinitamente después de que el setup() termina.
unsigned char i;Declaramos una pequeña variable llamada
ique usaremos como contador en los buclesfor.while(1)Esto es un bucle infinito. Como
1siempre es "verdadero", el código dentro de sus llaves{ }se repetirá para siempre. (En Arduino es un poco redundante, ya que elvoid loop()ya es infinito, pero es una práctica común en programación C).
¡La Magia del Sonido! Generando Frecuencias
Aquí es donde creamos los tonos. Lo hacemos encendiendo y apagando el pin muy rápido. A esto se le llama una onda cuadrada.
Primer Tono (Bucle 1)
for(i=0; i<80; i++)Le decimos al Arduino: "Repite el siguiente bloque de código 80 veces". Esto no cambia el tono, solo hace que suene durante más tiempo.
digitalWrite(buzzer, HIGH);Envía 5 Voltios al zumbador. Si es un zumbador pasivo, esto "empuja" su membrana hacia afuera.
delay(1);Hace una pausa de 1 milisegundo (ms).
digitalWrite(buzzer, LOW);Corta el voltaje a 0 Voltios. La membrana del zumbador "regresa" a su posición.
delay(1);Hace otra pausa de 1 milisegundo.
El Cálculo del Tono (¡La Física!):
Un ciclo completo (encendido + apagado) dura 1ms (HIGH) + 1ms (LOW) = 2 milisegundos.
La frecuencia es el inverso del período (Tiempo del ciclo).
Frecuencia = 1 / 0.002 segundos = 500 Hz. ¡Estamos generando un tono de 500 Hertz!
Segundo Tono (Bucle 2)
for(i=0; i<100; i++)Repite el siguiente bloque 100 veces para que suene un rato.
digitalWrite(buzzer, HIGH);Envía 5V.
delay(2);Espera 2 milisegundos.
digitalWrite(buzzer, LOW);Envía 0V.
delay(2);Espera 2 milisegundos.
El Cálculo del Tono (¡La Física!):
El ciclo completo ahora dura 2ms (HIGH) + 2ms (LOW) = 4 milisegundos.
Frecuencia = 1 / 0.004 segundos = 250 Hz. ¡Un tono más grave que el anterior!
Y como todo esto está dentro de un while(1), en cuanto termina el tono de 250 Hz, vuelve a empezar con el de 500 Hz, creando un efecto de sirena "agudo-grave-agudo-grave...".
Resultado Esperado

Una vez que hayas verificado tu placa y puerto en el menú Herramientas y subido el código a tu Arduino UNO, deberías empezar a escuchar inmediatamente:
Un "bip-bip-bip" agudo (500 Hz) durante un momento, seguido de un "bop-bop-bop" más grave (250 Hz), y esto se repetirá sin parar.
🚨 ¿No funciona? Guía Rápida de Solución de Problemas
- No se oye nada:
- Revisa la polaridad: ¿Estás seguro de que el pin
+del zumbador va al pin 12 y el-va aGND? Prueba a invertirlos (no se romperá, solo no sonará si está al revés). - Revisa las conexiones: Asegúrate de que los cables están bien metidos en la protoboard y en los pines del Arduino. Prueba a cambiar de cable por si uno está defectuoso.
- Revisa el pin: ¿Está el cable de señal conectado exactamente al pin
12?
- Revisa la polaridad: ¿Estás seguro de que el pin
- El zumbador solo hace "clics" o un sonido muy bajo:
- Esto puede ser la confusión Activo/Pasivo que mencionamos. Si tienes un zumbador activo, este código (que es para uno pasivo) lo volverá loco.
- Prueba este código alternativo: Borra todo el
void loop()y escribe esto en su lugar:void loop() {digitalWrite(buzzer, HIGH); // Enciende el sonidodelay(500); // Déjalo sonar medio segundodigitalWrite(buzzer, LOW); // Apágalodelay(500); // Mantenlo en silencio medio segundo}Si con este código oyes un "BIIIP---silencio---BIIIP" claro, ¡felicidades, tenías un zumbador activo!
- Error al subir el código:
- Asegúrate de tener la placa correcta (
Arduino/Genuino Uno) y el puerto COM correcto seleccionados en el menúHerramientasde tu Arduino IDE. - Desconecta y vuelve a conectar el cable USB.
- Asegúrate de tener la placa correcta (
🚀 ¡Felicidades! Has Dominado el Sonido
¡Excelente trabajo! No solo has hecho ruido, sino que has aprendido conceptos fundamentales de la electrónica y la programación:
- La diferencia crítica entre un zumbador activo y uno pasivo.
- Cómo usar
pinMode()para configurar un pin como salida. - Cómo usar
digitalWrite()ydelay()para crear una onda cuadrada. - Cómo la frecuencia de esa onda cambia el tono (pitch) del sonido.
Próximos Pasos (¡El Desafío!):
- Experimenta: Intenta cambiar los números en los
delay(). ¿Qué pasa si ponesdelay(5)ydelay(5)? (Será un tono más grave). ¿Y si ponesdelay(1)ydelay(0)? - Usa la función `tone()`: Arduino tiene una función mucho más fácil para esto:
tone(pin, frecuencia, duracion). Intenta reemplazar el bucleforcontone(buzzer, 500, 500);ydelay(500);. ¡Es mucho más limpio! - Crea una melodía: Busca las frecuencias de las notas musicales (ej. "Do", "Re", "Mi") y ¡programa una canción simple como "Estrellita" o el tema de Mario Bros!
Deja una respuesta

Estos temas te pueden interesar