buzzer-melodie.ino

Arduino Micro · Fichier : buzzer-melodie.ino · Langage : Arduino · Usage : Jouer une mélodie sur un buzzer piézo avec tone()

tone() génère un carré à la fréquence demandée sur la broche du buzzer ; deux tableaux décrivent notes (Hz) et durées (temps musicaux). Un buzzer passif (piézo sans oscillateur) est requis pour jouer des mélodies.

Matériel requis

Une Arduino Micro (ATmega32U4, 16 MHz, 5 V) au format painboard avec connecteur micro-USB et USB natif (clavier/souris). 1 buzzer passif 5 V.

Branchement

Broche + du buzzer sur la broche 8, broche − sur GND.

Fonctionnement

Chaque note est jouée 90 % du temps alloué, le reste formant le silence entre les notes — c'est ce qui rend la mélodie lisible. Dans l'Arduino IDE, choisissez « Arduino Micro » et le port, puis Téléverser. Sous Windows, un pilote .inf peut être requis pour le port COM. Le 32U4 étant l'USB, un mauvais sketch peut bloquer le reflash (reset double).

Pour aller plus loin

Ajoutez un bouton pour changer de mélodie, ou un potentiomètre pour le 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);
}

← Retour à la fiche