Buzzer Pasivo

El buzzer pasivo KY-006 es un pequeño módulo capaz de generar sonidos mediante la vibración de un diafragma interno. A diferencia de un buzzer activo, el KY-006 necesita una señal de frecuencia para producir diferentes tonos, lo que lo hace ideal para proyectos en los que quieras personalizar sonidos como alarmas, melodías o indicaciones acústicas. Este módulo se conecta fácilmente a un pin digital de Arduino, lo que permite controlar el tono y la duración del sonido mediante software.

Gracias a su simplicidad y bajo costo, el buzzer pasivo KY-006 es muy utilizado en proyectos educativos, sistemas de aviso y dispositivos interactivos. Aunque requiere un poco más de programación que un buzzer activo, ofrece la ventaja de poder generar sonidos con diferentes frecuencias, lo que amplía sus posibilidades creativas en tus proyectos con Arduino.


Pinout:

Buzzer Arduino
S (Señal) Pin digital (con PWM)
Sin rótulo (Voltaje) 5V
- (Tierra) GND

Código de ejemplo

//Notas en la melodía (frecuencias)
int melodia[] = {
  294, 349, 587, 294, 349, 587, 659, 698, 659, 698, 659, 523, 440
};

// Duración de las notas (4 = 1/4 de seg, 8 = 1/8 de seg, etc...)
int duracionNotas[] = {
  8,8,2,8,8,2,3,8,8,8,8,8,2
};

// Pin de señal del buzzer pasivo
// DEBE SER UN PIN COMPATIBLE CON SEÑALES PWM!
#define PIN_BUZZER 3

void setup() {
  // Obtiene cantidad de notas
  // Esto se hace para poder realizar correctamente el ciclo For
  int cantidad = sizeof(melodia)/sizeof(melodia[0]);
  for (int nota = 0; nota < cantidad; nota++) {

    // Calcula la duración de la nota (divide por la variable de duración)
    int duracionNota = 1000 / duracionNotas[nota];

    // Envía la señal al buzzer para sonar
    tone(PIN_BUZZER, melodia[nota], duracionNota);

    // Añade un pequeño espacio entre notas
    int pausaEntreNotas = duracionNota * 1.30;
    delay(pausaEntreNotas);

    // Silencia el buzzer antes de seguir
    noTone(PIN_BUZZER);
  }
}

void loop() {
  // no es necesario repetir la melodía.
}