🛠 Mélodie sur buzzer LilyPad

LilyPad Arduino · intermediaire · Schéma : IMG-lilypad-intermediaire-2-lilypad-buzzer-melodie.svg — Buzzer LilyPad sur la pastille 10, notes de musique et contact de déclenchement cousu sur la pastille 2.

Objectifs

Faire jouer une mélodie avec un buzzer cousu : génération d'un signal carré par tone sur une pastille PWM, déclenchement par contact, et respect du budget batterie (la pile intégrée du SimpleSnap ne fait que 110 mAh). On apprend aussi à couper l'oscillation pour ne pas vider la LiPo.

Matériel

Code complet

// Mélodie sur buzzer passif — pastille PWM 10, contact sur 2
const uint8_t BUZZER = 10; // pastille PWM (5/6/9/10/11 sur Simple/SimpleSnap)
const uint8_t BOUTON = 2;  // contact cousu vers « − », pull-up interne

const uint16_t MELODIE[] = {523, 659, 784, 1047}; // do mi sol do aigu (Hz)
const uint16_t DUREE[]   = {180, 180, 180, 400};  // ms

void setup {
  pinMode(BOUTON, INPUT_PULLUP);
  pinMode(BUZZER, OUTPUT);
}

void loop {
  if (digitalRead(BOUTON) == LOW) {       // contact fermé -> on joue
    for (uint8_t i = 0; i < 4; i++) {
      tone(BUZZER, MELODIE[i], DUREE[i]); // carré ~50 % sur la pastille PWM
      delay(DUREE[i] + 40);               // petite pause entre les notes
    }
    noTone(BUZZER);                       // ne pas laisser la broche osciller
    while (digitalRead(BOUTON) == LOW) {} // anti-réenchaînement
  }
}

Vérification attendue

Au contact des deux boutons-pression, quatre notes montantes (do–mi–sol–do aigu) retentissent, la dernière plus longue, puis silence total. Le son est net et ne grésille pas en continu : noTone coupe bien l'oscillation. Chaque nouveau contact relance la mélodie une seule fois.

Erreurs fréquentes

Autres tutoriels pour cette carte

Exemples de code pour cette carte

← Retour à la fiche 🛠 Tous les tutoriels