Los zumbadores piezoeléctricos son dispositivos simples que producen sonido y se usan ampliamente en proyectos electrónicos. Alertan a los usuarios con pitidos, tonos o alarmas.
Existen dos tipos principales de zumbadores: activos y pasivos. Cada tipo funciona de manera diferente y se adapta a distintas aplicaciones. Los zumbadores activos tienen osciladores integrados, por lo que producen sonido al recibir alimentación. Los zumbadores pasivos necesitan una señal externa, como una onda cuadrada, para generar sonido.
En las siguientes secciones exploraremos las diferencias entre zumbadores activos y pasivos, cómo conectarlos y cómo programarlos eficazmente.
Partes necesarias
Necesitarás un zumbador pasivo y uno activo. He listado dos a continuación, pero hay muchas alternativas. Ten en cuenta que el zumbador activo es para 5V, mientras que el pasivo funciona de 3V a 5V.
En cuanto al microcontrolador, usé un Arduino Uno para este proyecto, pero cualquier otro Arduino o ESP32 también funcionará. Además, una protoboard, algunos cables y un juego de resistencias serán útiles.

Zumbador activo 5V

Zumbador pasivo 3..5V

Kit de resistencias

Arduino Uno

Cable USB para Arduino UNO

Juego de cables Dupont

Protoboard
Makerguides is a participant in affiliate advertising programs designed to provide a means for sites to earn advertising fees by linking to Amazon, AliExpress, Elecrow, and other sites. As an Affiliate we may earn from qualifying purchases.
Principio de funcionamiento de los zumbadores piezoeléctricos
Un zumbador piezoeléctrico funciona basado en el efecto piezoeléctrico. Este efecto ocurre en ciertos materiales cerámicos que cambian de forma cuando se aplica un voltaje.
Dentro del zumbador hay un disco delgado de cerámica piezoeléctrica. Este disco está unido a un diafragma metálico. El diafragma metálico actúa como una membrana flexible.

Cuando se aplica un voltaje a través de los terminales, se crea un campo eléctrico en el material cerámico. La cerámica se expande o contrae según la polaridad del voltaje. El cambio en la dimensión es muy pequeño, pero suficiente para doblar el diafragma metálico unido.

Si se aplica un voltaje DC constante, el disco se mueve a una posición y se queda allí (zumbador pasivo). En este caso no se produce un sonido continuo. Para generar sonido, debe aplicarse un voltaje alterno. El voltaje cambia de polaridad a una frecuencia específica. Los zumbadores activos tienen un circuito oscilador incorporado que genera el voltaje alterno.

A medida que el voltaje alterna, el disco cerámico se expande y contrae rápidamente. Esto hace que el diafragma metálico se flexione hacia arriba y hacia abajo. El movimiento del diafragma empuja y jala el aire circundante. Esto crea ondas de presión en el aire, que escuchamos como sonido.
La frecuencia del sonido es igual a la frecuencia de la señal aplicada. El volumen depende de la amplitud del voltaje y del diseño mecánico del zumbador. Muchos zumbadores piezoeléctricos están diseñados para resonar a una frecuencia específica para aumentar el volumen.
Diferencias entre zumbadores pasivos y activos
Zumbador pasivo
Un zumbador pasivo contiene solo el elemento piezoeléctrico y el diafragma. No incluye un circuito oscilador interno. Cuando aplicas voltaje DC, no produce un sonido continuo. Solo hace clic cuando el voltaje cambia.
La siguiente imagen muestra las partes de un zumbador pasivo. Como puedes ver, la carcasa solo sostiene el elemento piezoeléctrico, pero no hay electrónica:

Para generar un tono con un zumbador pasivo, debes aplicar una señal alterna. Normalmente es una onda cuadrada generada por un Arduino o ESP32 usando PWM. La frecuencia de salida define directamente la frecuencia del sonido. Esto te permite generar diferentes tonos y melodías simples.

Zumbador activo
Un zumbador activo incluye un circuito oscilador incorporado. Cuando aplicas un voltaje DC dentro del rango especificado, el circuito interno genera automáticamente una señal AC para el elemento piezoeléctrico. El zumbador produce un tono fijo sin necesidad de señal externa. Solo necesitas poner el pin de control en HIGH para que suene. La frecuencia está predefinida por el oscilador interno – típicamente entre 2 y 4 kHz – y no puede cambiarse.

Resumen
Los zumbadores pasivos ofrecen control total sobre frecuencia y tiempo. Son adecuados para aplicaciones que requieren diferentes tonos o melodías. Los zumbadores activos son más simples de usar. Son ideales para alarmas o indicadores de estado donde solo se necesita un tono fijo.
Desde la perspectiva del microcontrolador, un zumbador pasivo requiere un pin capaz de PWM o generación de señal basada en temporizadores. Un zumbador activo solo necesita un pin digital que pueda cambiar entre HIGH y LOW.
Reconociendo zumbadores activos y pasivos
Los zumbadores pasivos y activos se parecen externamente y se confunden fácilmente. Identificar si un zumbador es activo o pasivo es crucial antes de conectarlo a tu Arduino o ESP32.
Como se mencionó antes, los zumbadores activos tienen un circuito con oscilador incorporado. Esto significa que solo necesitan un voltaje DC para producir sonido. Por otro lado, los zumbadores pasivos carecen de este oscilador interno. Requieren una señal externa, como una onda cuadrada, para generar sonido.
Parte trasera
Normalmente, la parte trasera de un zumbador activo está completamente cubierta con resina epoxi negra, mientras que los zumbadores pasivos exponen una placa de circuito:

Altura
Debido al circuito interno, la carcasa de un zumbador activo suele ser más alta que la de un zumbador pasivo y el pin del terminal positivo suele ser más largo:

Etiqueta
Finalmente, si compras un zumbador nuevo, los zumbadores activos suelen tener una etiqueta sobre el orificio de sonido que debes quitar antes de usarlo:

Resistencia
Además de la apariencia, también puedes medir la resistencia del zumbador para determinar su tipo. Los zumbadores activos tienen una resistencia alta de alrededor de 40 Ω o se miden como circuito abierto. Los zumbadores pasivos, en cambio, tienen una resistencia más baja de >20 Ω entre sus terminales.
Prueba con voltaje
El método más seguro para determinar el tipo de zumbador es conectarlo a 5V. Un zumbador activo sonará, mientras que un zumbador pasivo permanecerá en silencio o producirá un solo clic.
Resumen
La siguiente tabla resume las diferencias entre zumbadores activos y pasivos:
| Característica | Zumbador activo | Zumbador pasivo |
|---|---|---|
| Oscilador interno | Sí | No |
| Sonido con DC directo | Sí | No o clics |
| Parte trasera | Sellada con epoxi negra | PCB/circuito abierto |
| Capacidad sonora | Tono fijo | Tonos variados/musical |
| Resistencia | Alta (≈ 40 Ω) | Baja (≈ 20 Ω) |
| Corriente | 1 … 15 mA | 1 … 5 mA (pero con picos de corriente) |
Elegir el zumbador adecuado para tus proyectos
Seleccionar el zumbador correcto depende de las necesidades y complejidad de tu proyecto. Los zumbadores activos son fáciles de usar. Tienen un oscilador incorporado, por lo que solo necesitas suministrar energía para producir sonido. Esto los hace ideales para alertas o alarmas simples donde quieres un tono constante sin programación adicional.
Por otro lado, los zumbadores pasivos requieren una señal externa para generar sonido. No producen sonido por sí solos. En cambio, envías una onda cuadrada o señal de tono desde tu Arduino para controlar el tono y la duración. Esta flexibilidad hace que los zumbadores pasivos sean perfectos para proyectos que necesitan melodías, efectos de sonido o tonos variables.
Si quieres ahorrar tiempo y mantener tu código simple, elige un zumbador activo. Es plug-and-play y funciona bien para notificaciones básicas. Sin embargo, si tu proyecto involucra música o patrones de sonido complejos, un zumbador pasivo ofrece más control y creatividad.
También considera los requisitos de potencia y tamaño. Los zumbadores activos suelen consumir más corriente debido al oscilador interno. Los zumbadores pasivos pueden ser más eficientes energéticamente si controlas bien la señal. Además, puedes comprarlos sin carcasa, lo que los hace especialmente adecuados para proyectos compactos.
No olvides consultar la hoja de datos para conocer las especificaciones de voltaje y corriente y asegurar la compatibilidad.
Conectar un zumbador activo al Arduino
Conectar un zumbador activo a un Arduino es sencillo. Como los zumbadores activos tienen osciladores integrados, solo necesitan un voltaje DC para producir sonido. Esto significa que no tienes que generar una señal de tono desde el Arduino; simplemente alimentar el zumbador hará que suene. Sin embargo
Comienza identificando los terminales positivo y negativo del zumbador. El terminal positivo suele estar marcado con un signo más (+) o tiene un cable más largo.

Conecta este terminal a uno de los pines digitales del Arduino, como el pin 8. Luego, conecta el terminal negativo al pin GND (tierra) del Arduino como se muestra a continuación:

Una vez conectado, puedes controlar el zumbador poniendo el pin digital en HIGH o LOW, igual que con un LED. Poner el pin en HIGH alimenta el zumbador y lo hace sonar, mientras que ponerlo en LOW lo apaga.
A continuación, un ejemplo mínimo de sketch que enciende el zumbador por un segundo, luego lo apaga por un segundo, repetidamente:
const int buzzerPin = 8;
void setup() {
pinMode(buzzerPin, OUTPUT);
}
void loop() {
digitalWrite(buzzerPin, HIGH); // Turn buzzer on
delay(1000); // Wait for 1 second
digitalWrite(buzzerPin, LOW); // Turn buzzer off
delay(1000); // Wait for 1 second
}
Este código hace que el zumbador suene y se apague cada segundo. Como el zumbador activo genera el tono internamente, no puedes usar la tone() función ni señales PWM para controlarlo.
Conectar un zumbador pasivo al Arduino
Conectar un zumbador pasivo a un Arduino es fácil pero requiere un poco más de atención que un zumbador activo. A diferencia de los zumbadores activos, los pasivos necesitan una señal PWM para producir sonido, por lo que usarás uno de los pines digitales del Arduino capaces de generar PWM. La siguiente tabla lista los pines PWM para placas Arduino comunes:
| Placa | Pines PWM |
|---|---|
| Arduino UNO | 3, 5, 6, 9, 10, 11 |
| Arduino Nano | 3, 5, 6, 9, 10, 11 |
| Arduino Mega 2560 | 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 44, 45, 46 |
| Arduino Leonardo | 3, 5, 6, 9, 10, 11, 13 |
| Arduino Micro | 3, 5, 6, 9, 10, 11, 13 |
| Arduino Due | 2 a 13 |
| Arduino Zero | 3, 4, 5, 6, 8, 9, 10, 11, 12, 13 |
Para conectar el zumbador, comienza identificando los terminales positivo y negativo. El terminal positivo suele estar marcado en la PCB o hay un signo más en la carcasa. A menudo el signo más es muy débil y difícil de ver:

Conecta el terminal positivo a un pin digital con capacidad PWM en el Arduino, como el pin 11. Luego conecta el terminal negativo a tierra (GND) del Arduino.
Los zumbadores pasivos consumen muy poca corriente, entre 1 y 5 mA en promedio. Pero pueden tener picos de corriente durante el cambio. Por ello se recomienda añadir una resistencia limitadora de corriente en serie con el zumbador. Una resistencia de 100 Ω funciona bien en la mayoría de los casos. Conecta la resistencia entre el pin PWM 11 del Arduino y el terminal positivo del zumbador como se muestra a continuación.

Sin embargo, si encuentras que el volumen es muy bajo, puedes intentar quitar la resistencia de 100 Ω o reemplazarla por una de menor valor.
El circuito permite que el Arduino envíe señales de frecuencia variable al zumbador pasivo, permitiéndole producir diferentes tonos. Recuerda, el zumbador pasivo no sonará a menos que generes una señal PWM mediante tu código.
Ejemplos de código para zumbadores activos
Los zumbadores activos son fáciles de usar con Arduino porque solo necesitan un voltaje DC para producir sonido. No tienes que generar una señal de tono; solo enciende o apaga el zumbador conectándolo a un pin digital GPIO.
Aquí tienes un ejemplo básico para hacer que un zumbador activo emita un pitido durante un segundo:
int buzzerPin = 8;
void setup() {
pinMode(buzzerPin, OUTPUT);
}
void loop() {
digitalWrite(buzzerPin, HIGH); // Turn buzzer on
delay(1000); // Wait for 1 second
digitalWrite(buzzerPin, LOW); // Turn buzzer off
delay(1000); // Wait for 1 second
}
Este código configura el pin del zumbador como salida. Luego enciende el zumbador por un segundo y lo apaga por un segundo repetidamente. El zumbador emitirá un pitido constante durante el estado HIGH.
También puedes crear patrones simples cambiando los tiempos de retardo. Por ejemplo, para hacer un pitido corto seguido de una pausa:
void loop() {
digitalWrite(buzzerPin, HIGH);
delay(200); // Short beep
digitalWrite(buzzerPin, LOW);
delay(800); // Longer pause
}
Este método funciona bien para alarmas, notificaciones o efectos de sonido simples. Como los zumbadores activos tienen osciladores integrados, no necesitas preocuparte por generar frecuencias en tu código. Sin embargo, puedes cambiar ligeramente la frecuencia añadiendo una resistencia en serie, igual que hicimos con el zumbador pasivo. Prueba con una resistencia de 100 Ω y escucharás un tono un poco más bajo.
En resumen, controlar un zumbador activo con Arduino es sencillo. Solo aplica señales HIGH o LOW para encender o apagar el sonido.
Ejemplos de código para zumbadores pasivos
Los zumbadores pasivos requieren un poco más de trabajo que los activos porque no generan sonido por sí solos. En cambio, debes enviarles una señal de onda cuadrada a una frecuencia específica para producir un tono. Pero la función Arduino tone() facilita esto.
Aquí tienes un ejemplo simple que reproduce un tono de 1 kHz durante un segundo en un zumbador pasivo conectado al pin 11:
int buzzerPin = 11;
void setup() {
pinMode(buzzerPin, OUTPUT);
}
void loop() {
tone(buzzerPin, 1000); // Play 1000 Hz tone
delay(1000); // Wait for 1 second
noTone(buzzerPin); // Stop the tone
delay(1000); // Wait for 1 second before repeating
}
Este código configura el pin 11 como salida y usa tone() para generar una onda cuadrada de 1000 Hz. El zumbador suena durante un segundo, luego se detiene por un segundo, creando un patrón de pitidos.
También puedes crear melodías cambiando la frecuencia y duración. Por ejemplo, para tocar dos notas diferentes en secuencia:
int buzzerPin = 11;
void setup() {
pinMode(buzzerPin, OUTPUT);
}
void loop() {
tone(buzzerPin, 523); // Play C5 note (523 Hz)
delay(500);
tone(buzzerPin, 659); // Play E5 note (659 Hz)
delay(500);
noTone(buzzerPin);
delay(1000);
}
En este ejemplo, el zumbador toca una nota C5 seguida de una nota E5, cada una durante medio segundo. La función noTone() detiene el sonido antes de la pausa.
Si quieres más control, puedes generar tonos manualmente usando digitalWrite() y delayMicroseconds(), pero tone() suele ser suficiente y más fácil de usar. Aquí está el mismo código anterior pero con tone() reemplazada:
int buzzerPin = 11;
void playTone(int frequency, int durationMs) {
long halfPeriod = 1000000L / (2L * frequency);
long cycles = (long)frequency * durationMs / 1000L;
for (long i = 0; i < cycles; i++) {
digitalWrite(buzzerPin, HIGH);
delayMicroseconds(halfPeriod);
digitalWrite(buzzerPin, LOW);
delayMicroseconds(halfPeriod);
}
}
void setup() {
pinMode(buzzerPin, OUTPUT);
}
void loop() {
playTone(523, 500); // C5 (523 Hz) for 500 ms
delay(10); // Short pause between notes
playTone(659, 500); // E5 (659 Hz) for 500 ms
delay(1000); // Equivalent to noTone() + delay(1000)
}
Recuerda, los zumbadores pasivos requieren una señal de frecuencia para producir sonido, así que siempre usa tone() o métodos equivalentes para controlarlos. Para más ejemplos, consulta nuestro Use A Piezo Buzzer With Arduino tutorial.
Puedes usar la siguiente herramienta para encontrar las frecuencias y duraciones para la función tone() y reproducir los sonidos que desees:
Solución de problemas comunes
Al trabajar con zumbadores, puedes encontrar algunos problemas comunes. Afortunadamente, la mayoría son fáciles de solucionar con algunas comprobaciones y ajustes simples.
Primero, si tu zumbador no emite sonido, comienza verificando el cableado. Asegúrate de que los pines positivo y negativo del zumbador estén conectados correctamente al pin de salida y tierra del Arduino. La polaridad invertida puede impedir que el zumbador funcione, especialmente los activos.
Luego, revisa tu código. Para zumbadores activos, un simple digitalWrite a HIGH debería producir sonido. Para zumbadores pasivos, necesitas usar la función tone() para generar una frecuencia. Si olvidas esto, el zumbador permanecerá en silencio o solo escucharás un clic.
Si el zumbador emite un sonido débil o distorsionado, el problema podría ser la fuente de alimentación. Asegúrate de que tu placa Arduino suministre suficiente corriente. A veces, usar una fuente de alimentación separada o añadir un transistor para manejar el zumbador ayuda.
Otro problema es el zumbido continuo cuando esperas sonidos intermitentes. Esto suele ocurrir si tu código carece de temporización o retardos adecuados. Usa la función delay() o temporizadores para controlar cuándo el zumbador se enciende y apaga.
Finalmente, ten en cuenta que no puedes ajustar el volumen del zumbador mediante código; ya sea pasivo o activo. Sin embargo, puedes añadir una resistencia en serie a un zumbador pasivo para reducir el voltaje y, por tanto, el volumen en cierta medida.
Conclusiones
Los zumbadores añaden sonido y retroalimentación a tus proyectos Arduino de forma simple y efectiva. Los zumbadores activos son fáciles de usar porque solo necesitan energía para producir sonido. Solo los conectas a un pin digital y tierra, y pones el pin en HIGH para escuchar un tono. Los zumbadores pasivos, en cambio, requieren más control. Debes generar una señal de onda cuadrada para crear diferentes tonos, lo que te da más flexibilidad para melodías y efectos de sonido.
Elegir el zumbador adecuado depende de las necesidades de tu proyecto. Si quieres un pitido rápido o una alarma, un zumbador activo es la mejor opción. Si quieres reproducir melodías o sonidos personalizados, opta por un zumbador pasivo. Siempre revisa la hoja de datos del zumbador para confirmar su tipo y requisitos de voltaje.
Al conectar zumbadores a tu Arduino, recuerda usar resistencias limitadoras de corriente si es necesario y evita alimentarlos directamente desde pines que no puedan suministrar suficiente corriente.
Si tienes alguna pregunta, no dudes en dejarla en la sección de comentarios.
¡Feliz bricolaje! 😉

