buzzer-melodie.ino

Arduino Micro · Archivo : buzzer-melodie.ino · Lenguaje : Arduino · Uso : Jouer une mélodie sur un buzzer piézo avec tone()

tone() genera una onda cuadrada a la frecuencia pedida en el pin del zumbador; dos arrays guardan notas (Hz) y duraciones (tiempos). Se necesita un zumbador pasivo (sin oscilador) para melodías.

Hardware necesario

Un Arduino Micro (ATmega32U4, 16 MHz, 5 V) en formato para protoboard con conector micro-USB y USB nativo (teclado/ratón). 1 zumbador pasivo de 5 V.

Cableado

Born + del zumbador al pin 8, − a GND.

Funcionamiento

Cada nota suena el 90% de su tiempo; el resto forma el silencio entre notas, lo que hace legible la melodía. En el Arduino IDE, elija « Arduino Micro » y el puerto, y suba. En Windows puede requerirse un driver .inf para el puerto COM. Como el 32U4 es el propio USB, un mal sketch puede bloquear el reflujo (doble reset).

Para ir más lejos

Añada un botón para cambiar de melodía o un potenciómetro para el tempo.

buzzer-melodie.ino

// Melodie sur buzzer passif : tableaux notes/durees.
const int BUZZER = 8;

const int MELODIE[] = {262, 330, 392, 523, 392, 330, 262}; // do mi sol do...
const int DUREES[]  = {4, 4, 4, 2, 4, 4, 2};              // en temps

void setup() {
  Serial.begin(9600);
}

void loop() {
  int tempo = 1000 / 4;
  for (size_t i = 0; i < sizeof(MELODIE) / sizeof(MELODIE[0]); i++) {
    int ms = tempo * 4 / DUREES[i];
    tone(BUZZER, MELODIE[i], ms * 9 / 10); // 90% de la note, puis silence
    delay(ms);
  }
  delay(1000);
}

← Volver a la ficha