Una melodía a partir de dos arreglos
Parte de la sección Salidas del Journey de Arduino de Coddy. Lección 14 de 24.
Las notas de una melodía no tienen todas la misma duración. Un segundo arreglo puede contener las duraciones, alineadas con las notas: notes[i] y durations[i] van juntas.
int notes[] = {262, 262, 392, 392, 440, 440, 392};
int durations[] = {400, 400, 400, 400, 400, 400, 800};Dos notas iguales seguidas se fundirían en una sola nota larga. Un breve silencio después de cada una las mantiene separadas, así que reproduce la nota durante su duración y espera un poco más:
tone(8, notes[i], durations[i]);
delay(durations[i] + 50);La duración detiene la nota, y los 50 ms adicionales son la pausa antes de la siguiente.
Cuando el índice pasa de la última nota, la melodía termina: espera un momento antes de volver a empezar para que no se encime consigo misma.
Desafío
IntermedioReproduce la primera línea de Twinkle Twinkle Little Star en el pin 8:
- notas: 262, 262, 392, 392, 440, 440, 392
- duraciones: 400 ms cada una y 800 ms para la última nota
- después de cada nota, espera su duración más 50 ms
- después de la última nota, espera un segundo más y vuelve a empezar
Pulsa Run y después Check.
Pruébalo tú mismo
const int buzzerPin = 8;
// crea aquí los arrays de notas y duraciones, y el índice
void setup() {
}
void loop() {
// reproduce una nota, espera su duración más 50 ms y pasa a la siguiente
// después de la última nota, espera un segundo y vuelve a empezar
}
Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Salidas
Practica por tu cuenta: Playground de Arduino