buzzer-melodie.ino

LilyPad Arduino · 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

Una LilyPad Arduino (ATmega168V/328V, 8 MHz, 3,3 V) con sus pastillas para coser, programada con cable FTDI (breakout) y alimentada por 3,7 V (LiPo) o 5 V en V-REG. 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 « LilyPad Arduino » y el puerto FTDI, y suba. El hilo conductor añade unos ohmios de resistencia: mantenga tiradas cortas y aísle los cruces.

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