🛠 Mélodie sur buzzer LilyPad
Objetivos
Hacer sonar una melodía con un zumbador cosido: generación de una señal cuadrada mediante tone en una pastilla PWM, disparo por contacto y respeto del presupuesto de batería (la pila integrada del SimpleSnap es de solo 110 mAh). También se aprende a detener la oscilación para no agotar la LiPo.
Material
- 1 LilyPad SimpleSnap + pila de 3,7 V
- 1 zumbador pasivo (los zumbadores LilyPad comerciales suelen ser activos, de una sola nota — verificar la etiqueta)
- 2 botones pulsadores para el contacto de disparo
- Adaptador FTDI para cargar el programa
- >
Código completo
// 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
}
}
Verificación esperada
Al hacer contacto con los dos botones pulsadores, suenan cuatro notas ascendentes (do–mi–sol–do agudo), la última más larga, y luego silencio total. El sonido es nítido y no zumba continuamente: noTone corta bien la oscilación. Cada nuevo contacto reinicia la melodía una sola vez.
Errores frecuentes
- Tratar un zumbador activo como si fuera pasivo: un zumbador activo solo emite una frecuencia fija; una melodía requiere un zumbador pasivo.
- Olvidar noTone: el pin sigue oscilando y la batería de 110 mAh se agota rápidamente.
- Usar tone en una pastilla no PWM: sonido ausente o errático según las variantes del core AVR.
- Falta de antirrebote: la melodía se reinicia en bucle mientras se mantiene el contacto.
Otros tutoriales para esta placa
Ejemplos de código para esta placa
clignotante.inoArduinobouton-led.inoArduinopwm-respiration.inoArduinoluxmetre-couture.inoArduinointerrupteur-tilt.inoArduinoservo-balayage.inoArduino