Menu
CoddyTech

Simon : Boutons et notes

Fait partie de la section Projets du Journey Arduino de Coddy. Leçon 13 sur 24.

Simon est un jeu de mémoire : le plateau joue une séquence de lumières colorées et de notes, et tu la répètes à l’aide des boutons. À chaque tour, la séquence s’allonge d’un élément, jusqu’à ce que tu fasses une erreur. Il y a quatre couleurs, chacune associée à un bouton, une LED et une note.

Comme il y a quatre éléments de chaque type, les tableaux permettent de garder le sketch court. L’entrée 0 de chaque tableau correspond au rouge, 1 au vert, 2 au bleu et 3 au jaune ; ainsi, un seul nombre, i, désigne une couleur partout :

const int ledPins[4] = {9, 10, 11, 12};
const int buttonPins[4] = {2, 3, 4, 5};
const int notes[4] = {262, 330, 392, 523};

Une boucle for vérifie les quatre boutons. Agis à deux moments : quand un bouton est enfoncé (LOW maintenant, HIGH la fois précédente) et quand il est relâché (HIGH maintenant, LOW la fois précédente). Le tableau lastState conserve la dernière lecture de chaque bouton. Les étapes suivantes comptent un appui lorsque le bouton est relâché. Ces boutons ne rebondissent pas, les vérifications des changements d’état suffisent donc.

challenge icon

Défi

Moyen

Fais jouer les quatre couleurs :

  • dans setup(), une boucle for configure les broches des LED en sorties et les broches des boutons en INPUT_PULLUP
  • quand le bouton i est enfoncé, allume ledPins[i] et joue notes[i] sur la broche 8
  • quand il est relâché, éteins la LED et appelle noTone()

Appuie sur Exécuter, joue avec les boutons, puis clique sur Vérifier.

Essayez vous-même

// Une entrée par couleur : rouge, vert, bleu, jaune
const int ledPins[4] = {9, 10, 11, 12};
const int buttonPins[4] = {2, 3, 4, 5};
const int notes[4] = {262, 330, 392, 523};  // do, mi, sol et do aigu
const int buzzerPin = 8;

int lastState[4] = {HIGH, HIGH, HIGH, HIGH};  // la dernière lecture de chaque bouton

void setup() {
  // Les LED sont des sorties, les boutons sont en INPUT_PULLUP

}

void loop() {
  // Pour chaque bouton : lorsqu’on l’enfonce, allumer sa LED et jouer sa note ;
  // lorsqu’on le relâche, éteindre la LED et arrêter la note

}
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 Projets

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