melodie-buzzer.ino

Arduino UNO R4 Minima · Fichier : melodie-buzzer.ino · Langage : Arduino · Usage : Jouer une mélodie sur buzzer passif avec tone()

Une petite mélodie sur buzzer passif pour vérifier tone() sur le R4 : la table (fréquence, durée) se joue en séquence. Utile aussi comme signal sonore de statut dans un projet sans écran.

Matériel requis

Une Arduino UNO R4 Minima (Renesas RA4M1, Cortex-M4 @ 14 MHz, 5 V, DAC 12 bits, sans radio) alimentée par USB ou 6-24 V. 1 buzzer passif 3,3-5 V.

Câblage

Buzzer entre D3 et GND. Un buzzer actif ne jouerait qu'un bip fixe.

Fonctionnement

tone() configure un timer du RA4M1 pour la fréquence demandée ; la boucle joue la table note par note avec les durées associées.

Exécution

Arduino IDE 2.x (core « Arduino UNO R4 Boards » installé), choisir « Arduino UNO R4 Minima », sélectionner le port et Téléverser. Le moniteur série est à 9600.

Variantes

Stocker la mélodie en flash (PROGMEM), ou la déclencher selon une mesure (seuil de luminosité, appui bouton).

melodie-buzzer.ino

// Melodie sur buzzer passif (D3) avec table de notes.
const int BUZZER = 3;

const int MELODIE[][2] = {
  {262, 200}, {330, 200}, {392, 200}, {523, 400},  // do mi sol do2
  {523, 150}, {494, 150}, {440, 300}, {392, 300},  // descente
  {0, 300},                                        // pause
  {349, 200}, {392, 200}, {440, 400}, {0, 400},
};

void setup() {
  Serial.begin(9600);
  Serial.println(F("Melodie"));
}

void loop() {
  for (auto &note : MELODIE) {
    if (note[0] == 0) {
      noTone(BUZZER);
    } else {
      tone(BUZZER, note[0]);
    }
    delay(note[1]);
  }
  delay(2500);
}

// tone() du core R4 utilise un timer du RA4M1 : la frequence
// est exacte et ne gene pas les autres broches PWM.

← Retour à la fiche