Une mélodie à partir de deux tableaux
Fait partie de la section Sorties du Journey Arduino de Coddy. Leçon 14 sur 24.
Les notes d’une mélodie n’ont pas toutes la même durée. Un second tableau peut contenir les durées, alignées avec les notes : notes[i] et durations[i] vont ensemble.
int notes[] = {262, 262, 392, 392, 440, 440, 392};
int durations[] = {400, 400, 400, 400, 400, 400, 800};Deux notes identiques jouées à la suite se confondraient en une seule note longue. Un bref silence après chacune permet de les distinguer. Joue donc la note pendant sa durée, puis attends un peu plus longtemps :
tone(8, notes[i], durations[i]);
delay(durations[i] + 50);La durée arrête la note, et les 50 ms supplémentaires constituent le silence avant la suivante.
Lorsque l’indice dépasse la dernière note, la mélodie est terminée : attends un moment avant de la recommencer pour éviter qu’elle ne se chevauche avec elle-même.
Défi
MoyenJoue la première ligne de Twinkle Twinkle Little Star sur la broche 8 :
- notes : 262, 262, 392, 392, 440, 440, 392
- durées : 400 ms chacune, et 800 ms pour la dernière note
- après chaque note, attends sa durée plus 50 ms
- après la dernière note, attends une seconde de plus et recommence
Appuie sur Run, puis sur Check.
Essayez vous-même
const int buzzerPin = 8;
// créez ici les tableaux de notes et de durées, ainsi que l’index
void setup() {
}
void loop() {
// jouez une note, attendez sa durée plus 50 ms, puis passez à la suivante
// après la dernière note, attendez une seconde et recommencez
}
Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Sorties
3Son
Jouer un son sur un buzzerBips et silenceLa hauteur avec un boutonDes notes dans un tableauUne mélodie à partir de deux tableauxEntraînez-vous par vous-même : Playground Arduino