Menu
CoddyTech

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.

challenge icon

Défi

Moyen

Joue 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
}
quiz iconTestez-vous

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

Entraînez-vous par vous-même : Playground Arduino