melodie-buzzer.ino
Una pequeña melodía en un zumbador pasivo para comprobar tone() en el R4: la tabla (frecuencia, duración) se reproduce en secuencia. Útil también como señal sonora de estado en un proyecto sin pantalla.
Hardware
Un Arduino UNO R4 Minima (Renesas RA4M1, Cortex-M4 @ 14 MHz, 5 V, DAC de 12 bits, sin radio) alimentado por USB o 6-24 V. 1 zumbador pasivo de 3,3-5 V.
Cableado
Zumbador entre D3 y GND. Un zumbador activo solo daría un pitido fijo.
Funcionamiento
tone() configura un temporizador del RA4M1 para la frecuencia pedida; el bucle toca la tabla nota a nota con sus duraciones.
Ejecución
Arduino IDE 2.x (con el core « Arduino UNO R4 Boards » instalado), elige « Arduino UNO R4 Minima », selecciona el puerto y Subir. El monitor serie está a 9600.
Variantes
Guardar la melodía en flash (PROGMEM), o dispararla según una medida (umbral de luz, pulsación de botón).
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 ¬e : 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.