buzzer-melodie.ino

Arduino Mega ADK (Rev3) · 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 Mega ADK Rev3 (ATmega2560 + puce hôte USB MAX3421E avec port USB-A, broche D7 réservée au reset du MAX3421E). 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. Carte « Arduino Mega ADK » dans l'IDE. Pour l'hôte USB/ADK, installez la bibliothèque USB Host Shield 2.0 ; ne pas utiliser D7. Le port USB-A alimente l'accessoire en 5 V.

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