🛠 Les 4 boutons du pavé comme sélecteurs de couleur

Arduino Esplora — Fiche de carte · debutant · Schéma : IMG-esplora-debutant-2-esplora-boutons-couleurs.svg — Manette Esplora avec les quatre boutons en losange (SWITCH_UP, DOWN, LEFT, RIGHT) surlignés et flèches vers la LED RVB.

Objectifs

Apprendre à lire les entrées numériques de l'Esplora : les quatre boutons poussoirs disposés en losange (SWITCH_UP, SWITCH_DOWN, SWITCH_LEFT, SWITCH_RIGHT) plus le bouton central du joystick. Chaque bouton allumera une couleur différente de la LED RVB. Vous découvrirez au passage le piège propre à la carte : ces boutons sont lus via un multiplexeur analogique, pas directement sur des broches GPIO.

Matériel

Code complet

/* Chaque bouton du losange allume une couleur de la LED RVB.
   Les boutons ne sont pas sur des broches dédiées : la bibliothèque
   les lit sur un multiplexeur analogique (A0-A3 en adresse, A4 en ADC). */
#include <Esplora.h>

void setup {
  Serial.begin(9600);          // pour observer l'état des boutons
}

void loop {
  if (Esplora.readButton(SWITCH_UP) == PRESSED) {
    Esplora.writeRGB(255, 0, 0);        // haut = rouge
    Serial.println("UP");
  } else if (Esplora.readButton(SWITCH_DOWN) == PRESSED) {
    Esplora.writeRGB(0, 255, 0);        // bas = vert
    Serial.println("DOWN");
  } else if (Esplora.readButton(SWITCH_LEFT) == PRESSED) {
    Esplora.writeRGB(0, 0, 255);        // gauche = bleu
    Serial.println("LEFT");
  } else if (Esplora.readButton(SWITCH_RIGHT) == PRESSED) {
    Esplora.writeRGB(255, 255, 0);      // droite = jaune
    Serial.println("RIGHT");
  } else {
    Esplora.writeRGB(0, 0, 0);          // aucun bouton = éteinte
  }
  delay(50);
}

Vérification attendue

Appuyez sur chaque bouton : la LED prend la couleur correspondante et le moniteur série (9600 bauds) affiche le nom du bouton. Relâchez : la LED s'éteint. Testez aussi le bouton central du joystick avec Esplora.readButton(SWITCH_JOYSTICK) — attention, contrairement aux quatre boutons du losange, il ne possède pas de résistance de pull-up matérielle ; la bibliothèque compense en activant un pull-up logiciel au moment de la lecture de ce canal.

Erreurs fréquentes

  1. Confondre PRESSED et HIGH : readButton renvoie PRESSED (circuit logique interne + multiplexage), jamais un simple HIGH de digitalRead.
  2. Vouloir lire deux boutons « en même temps » : les canaux multiplexés partagent un seul convertisseur analogique-numérique ; la lecture est séquentielle avec temps d'établissement. Enchaîner les readButton dans la loop est prévu pour ça, mais ne bricolez pas d'interruptions dessus.
  3. Bouton du joystick capricieux : sans le correctif de la bibliothèque (pull-up logiciel), il flotte et déclenche seul — n'utilisez jamais digitalRead sur la broche commune A4 pour ce bouton.
  4. Oublier le delay(50) : sans petite temporisation, vous saturez le moniteur série de lignes ; le multiplexage a aussi besoin de ce temps entre deux changements de canal.

Autres tutoriels pour cette carte

Exemples de code pour cette carte

← Retour à la fiche 🛠 Tous les tutoriels