/** * Code de base pour l'utilisation de la shield Arduino LCD de DFRobots (LCD + boutons). */ /* Dépendances */ #include /** Objet LiquidCrystal pour communication avec l'écran LCD */ LiquidCrystal lcd(8, 9, 4, 5, 6, 7); /** Énumération des boutons utilisables */ enum { BUTTON_NONE, /*!< Pas de bouton appuyé */ BUTTON_UP, /*!< Bouton UP (haut) */ BUTTON_DOWN, /*!< Bouton DOWN (bas) */ BUTTON_LEFT, /*!< Bouton LEFT (gauche) */ BUTTON_RIGHT, /*!< Bouton RIGHT (droite) */ BUTTON_SELECT /*!< Bouton SELECT */ }; /** Fonction setup() */ void setup() { lcd.begin(16, 2); lcd.print("Bouton:"); } /** Fonction loop() */ void loop() { /* Affiche le bouton appuyé */ lcd.setCursor(0, 1); switch (getPressedButton()) { case BUTTON_NONE: lcd.print(F(" ")); break; case BUTTON_UP: lcd.print(F("UP ")); break; case BUTTON_DOWN: lcd.print(F("DOWN ")); break; case BUTTON_LEFT: lcd.print(F("LEFT ")); break; case BUTTON_RIGHT: lcd.print(F("RIGHT ")); break; case BUTTON_SELECT: lcd.print(F("SELECT")); break; } /* Délai pour l'affichage */ delay(100); } /** Retourne le bouton appuyé (si il y en a un) */ byte getPressedButton() { /* Lit l'état des boutons */ int value = analogRead(A0); /* Calcul l'état des boutons */ if (value < 50) return BUTTON_RIGHT; else if (value < 250) return BUTTON_UP; else if (value < 450) return BUTTON_DOWN; else if (value < 650) return BUTTON_LEFT; else if (value < 850) return BUTTON_SELECT; else return BUTTO