INICIO /  APRENDE /  BLOG /  GUÍA
Guía6 min·

Buzzer: qué es, activo vs pasivo y cómo usarlo con Arduino

Un buzzer, o zumbador, convierte una señal eléctrica en sonido. Con uno puedes avisar que terminó un temporizador, confirmar que alguien apretó un botón o hacer sonar una alarma en tu proyecto con Arduino. Hay dos tipos que por fuera se ven casi iguales: el activo suena apenas le das voltaje continuo, y el pasivo necesita que Arduino le mande una señal que oscile. Saber cuál tienes define el circuito y el código.

Buzzer piezoeléctrico y magnético

El buzzer piezoeléctrico tiene un disco cerámico que se deforma con el voltaje y mueve el aire. El magnético usa una bobina que hace vibrar una membrana metálica; consume más corriente y se comporta como una carga inductiva, igual que un relé. Las dos tecnologías existen en versión activa y pasiva, así que en la ficha busca los dos datos: la tecnología y si trae oscilador.

Activo vs pasivo: cómo distinguirlos

El buzzer activo trae un oscilador interno. Le das el voltaje de su ficha y suena con un tono fijo; para hacer pitidos, lo enciendes y lo apagas. El pasivo no trae oscilador: tú le mandas una onda cuadrada y eliges la frecuencia, así que puedes tocar notas distintas. En las hojas de datos en inglés, el activo aparece como «indicator» y el pasivo como «transducer». La marca + o el largo de las patas no te dicen el tipo. Para probarlo, conéctalo un instante a su voltaje nominal, respetando la polaridad y con una fuente que limite la corriente. Si suena de forma continua, es activo. Si solo hace un clic al conectarlo, lo más probable es que sea pasivo.

Cuánta corriente aguanta un pin de Arduino

Arduino recomienda no pasar de 20 mA por pin en el Uno R3. El máximo absoluto del ATmega328P es 40 mA por pin, y superarlo puede dañar el microcontrolador. El chip también tiene límites por grupo de pines y en total, así que no sumes varias cargas al máximo. Si la ficha de tu buzzer indica un consumo bajo 20 mA a 5 V, puedes conectarlo directo al pin. Si consume más, si es magnético, si pide otro voltaje o si la ficha no dice cuánto consume, usa un transistor.

Cómo conectar el buzzer con un transistor

Con un transistor NPN armas un interruptor que Arduino controla. Conecta el positivo del buzzer a una fuente con el voltaje de su ficha, el negativo al colector del transistor y el emisor a GND. Une el GND de esa fuente con el GND de Arduino. Lleva el pin D8 a la base a través de una resistencia. Calcúlala para que el transistor quede saturado con la corriente del buzzer, usando las condiciones de saturación de su hoja de datos, sin pasar de los 20 mA del pin. Revisa el orden de las patas de tu transistor, porque cambia entre modelos. Si el buzzer es magnético, pon un diodo en paralelo con él, con el cátodo hacia el positivo: absorbe el pico de voltaje que genera la bobina al cortarse la corriente. Si es un piezoeléctrico pasivo, pon en cambio una resistencia en paralelo con el buzzer, del valor que indique su ficha. El piezo se comporta como un condensador, y sin esa resistencia no se descarga cuando el transistor se abre, así que no sigue bien la señal de tone(). Los dos sketches de abajo usan este montaje, activo con HIGH.

Código para un buzzer activo

Este sketch hace sonar un buzzer activo medio segundo y lo apaga otro medio segundo. digitalWrite pone D8 en HIGH para activar el transistor y en LOW para cortarlo. Cambia los valores de delay para crear otros patrones de aviso. Algunos módulos de tres pines (VCC, GND y S) se activan con LOW; si tu módulo es así, invierte los niveles.

const int BUZZER = 8;

void setup() {
  digitalWrite(BUZZER, LOW);
  pinMode(BUZZER, OUTPUT);
}

void loop() {
  digitalWrite(BUZZER, HIGH);
  delay(500);
  digitalWrite(BUZZER, LOW);
  delay(500);
}

Código para un buzzer pasivo con tone()

tone() genera una onda cuadrada en el pin que le indiques, con la frecuencia en hertz del segundo argumento. Este ejemplo suena a 2000 Hz; ajusta la frecuencia al rango que indica la ficha de tu buzzer. noTone() detiene la señal. D8 sirve aunque no tenga la marca de PWM. En el Uno R3, tone() interfiere con el PWM de los pines D3 y D11 mientras suena; si controlas un motor o un LED en esos pines, vuelve a llamar a analogWrite() después de noTone(), porque el PWM anterior no se restablece solo.

const int BUZZER = 8;

void setup() {
  digitalWrite(BUZZER, LOW);
  pinMode(BUZZER, OUTPUT);
}

void loop() {
  tone(BUZZER, 2000);
  delay(500);
  noTone(BUZZER);
  digitalWrite(BUZZER, LOW);
  delay(500);
}

Errores comunes al usar un buzzer

Si tu buzzer pasivo solo hace clic con digitalWrite, necesita tone(). Si el módulo no suena, revisa la polaridad, el GND común y si se activa con HIGH o LOW. Si suena muy bajo, prueba otras frecuencias: cada buzzer suena más fuerte en su frecuencia de resonancia, y la ficha suele indicarla. Un Arduino que se reinicia o un componente que se calienta indican exceso de consumo: desconecta y mide antes de volver a encender. Un parlante de 8 Ω conectado directo a un pin pide mucho más de 20 mA; ponle un transistor o un amplificador.

Cómo elegir un buzzer para tu proyecto

Si quieres un pitido de aviso con poco código, elige un buzzer activo. Si quieres melodías o una alarma que cambie de tono, elige uno pasivo. En Zamper, el Micro parlante Buzzer es un módulo pasivo que funciona de 3,3 a 5 V con señales de 2 a 5 kHz. El buzzer LilyPad funciona de 3 a 6 V y está hecho para las placas LilyPad, la línea de Arduino para proyectos cosidos en tela. Para partir sin cablear nada, el Arduino Uno Maker de Cytron trae un buzzer integrado en la placa; busca en su documentación a qué pin va conectado.

Preguntas frecuentes sobre buzzers

¿Un buzzer pasivo suena con corriente continua? Solo hace un clic al conectarlo y al desconectarlo. Para sonar de forma continua necesita una señal que oscile. ¿Puedo tocar una melodía con un buzzer activo? Su tono es fijo: puedes variar el ritmo de los pitidos, y para cambiar de nota necesitas uno pasivo. ¿tone() controla el volumen? Cambia la frecuencia. El volumen depende del buzzer y del voltaje con que lo alimentas. ¿Necesito instalar una librería? digitalWrite, tone y noTone vienen incluidas en el entorno de Arduino.

Fuentes técnicas

PRODUCTOS RELACIONADOS
Micro parlante Buzzer pasivoBuzzer zumbador LilyPadArduino Uno Maker de CytronSonidoBotón pulsador: tipos y cómo conectarlo a ArduinoConector jack 3,5 mm: TRS, TRRS y cómo usarlo con Arduino y ESP32
¿NECESITAS AYUDA?

Habla con un especialista IoT.

Contactar