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

Arduino Esplora — Ficha de placa · 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.

Objetivos

Aprender a leer las entradas digitales de la Esplora: los cuatro botones pulsadores dispuestos en rombo (SWITCH_UP, SWITCH_DOWN, SWITCH_LEFT, SWITCH_RIGHT) más el botón central del joystick. Cada botón encenderá un color diferente del LED RGB. Descubrirás de paso la peculiaridad de la placa: estos botones se leen a través de un multiplexor analógico, no directamente en pines GPIO.

Material

Código completo

/* 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);
}

Verificación esperada

Pulsa cada botón: el LED toma el color correspondiente y el monitor serie (9600 baudios) muestra el nombre del botón. Suelta: el LED se apaga. Prueba también el botón central del joystick con Esplora.readButton(SWITCH_JOYSTICK) — atención, a diferencia de los cuatro botones del rombo, no posee una resistencia de pull-up física; la biblioteca lo compensa activando un pull-up de software en el momento de la lectura de ese canal.

Errores frecuentes

  1. Confundir PRESSED y HIGH: readButton devuelve PRESSED (lógica interna + multiplexación), nunca un simple HIGH de digitalRead.
  2. Querer leer dos botones «al mismo tiempo»: los canales multiplexados comparten un único convertidor analógico-digital; la lectura es secuencial con tiempo de establecimiento. Encadenar las llamadas a readButton en el loop está previsto para esto, pero no intentes usar interrupciones para ello.
  3. Botón del joystick caprichoso: sin la corrección de la biblioteca (pull-up de software), queda flotante y se activa solo — nunca uses digitalRead en el pin común A4 para este botón.
  4. Olvidar el delay(50): sin una pequeña temporización, saturarás el monitor serie de líneas; la multiplexación también necesita este tiempo entre dos cambios de canal.

Otros tutoriales para esta placa

Ejemplos de código para esta placa

← Volver a la ficha 🛠 Todos los tutoriales