// Programme : seesawshield18_test // Carte : Arduino Uno // Shield écran couleur TFT 1,8'' V2 // Fichier : seesawshield18_test.ino (partiel) #include #include #include // Assurez-vous d'avoir installé la bibliothèque Adafruit seesaw! #include #include Adafruit_TFTShield18 ss; // Constructeur // L'écran TFT et la carte SD partagent l'interface SPI. // Pour la carte Arduino, le bus SPI est disponible sur // pin 11 = MOSI, pin 12 = MISO, pin 13 = SCK. #define SD_CS 4 // Sélection de la carte SD sur le Shield V2 #define TFT_CS 10 // Sélection de l'afficheur TFT sur le Shield V2 #define TFT_DC 8 // Données/commandes line de l'afficheur TFT sur le Shield V2 #define TFT_RST -1 // Le reset de l'afficheur TFT est géré par seesaw ! Adafruit_ST7735 tft = Adafruit_ST7735(TFT_CS, TFT_DC, TFT_RST); // Constructeur void setup() { Serial.begin(9600); while (!Serial) ; // On désactive l'afficheur et la carte SD pinMode(TFT_CS, OUTPUT); digitalWrite(TFT_CS, HIGH); pinMode(SD_CS, OUTPUT); digitalWrite(SD_CS, HIGH); // Démarrage de la puce Seesaw if (!ss.begin()) { Serial.println("seesaw ne peut pas être initialisé!"); while (1) ; } Serial.println("seesaw démarré"); Serial.print("Version: "); Serial.println(ss.getVersion(), HEX); // Désactivation du rétroéclairage ss.setBacklight(TFTSHIELD_BACKLIGHT_OFF); // Reset de l'afficheur TFT ss.tftReset(); // Initialisation de l'afficheur 1.8" TFT tft.initR(INITR_BLACKTAB); // Initialisation de la puce ST77355, fond d'écran noir Serial.println("TFT OK!"); tft.fillScreen(ST77XX_CYAN); // écran cyan // Activation du rétroéclairage (100%) // ss.setBacklight(TFTSHIELD_BACKLIGHT_ON); // ou 30% // ss.setBacklight(TFTSHIELD_BACKLIGHT_ON / 3); // ou éclairage progressif for (int32_t i = TFTSHIELD_BACKLIGHT_OFF; i < TFTSHIELD_BACKLIGHT_ON; i += 100) { ss.setBacklight(i); delay(1); } delay(100); tft.fillScreen(ST77XX_RED); // fond d'écran rouge delay(100); tft.fillScreen(ST77XX_GREEN); // fond d'écran vert delay(100); tft.fillScreen(ST77XX_BLUE); // fond d'écran bleu delay(100); tft.fillScreen(ST77XX_BLACK); // fond d'écran noir tft.setTextSize(1); tft.setTextColor(ST77XX_WHITE); // texte blanc tft.setCursor(0, 0); tft.print("Presser les boutons"); } uint8_t buttonhistory = 0; void loop() { uint32_t buttons = ss.readButtons(); tft.setTextSize(3); if(! (buttons & TFTSHIELD_BUTTON_DOWN)){ tft.setTextColor(ST77XX_RED); tft.setCursor(0, 10); tft.print("Bas "); buttonhistory |= 1; } if(! (buttons & TFTSHIELD_BUTTON_LEFT)){ tft.setTextColor(ST77XX_YELLOW); tft.setCursor(0, 35); tft.print("Gauche "); buttonhistory |= 2; } if(! (buttons & TFTSHIELD_BUTTON_UP)){ tft.setTextColor(ST77XX_GREEN); tft.setCursor(0, 60); tft.print("Haut"); buttonhistory |= 4; } if(! (buttons & TFTSHIELD_BUTTON_RIGHT)){ tft.setTextColor(ST77XX_BLUE); tft.setCursor(0, 85); tft.print("Droit"); buttonhistory |= 8; } if(! (buttons & TFTSHIELD_BUTTON_1)){ tft.setTextColor(ST77XX_BLUE); tft.setCursor(0, 140); tft.print("1"); buttonhistory |= 16; } if(! (buttons & TFTSHIELD_BUTTON_2)){ tft.setTextColor(ST77XX_GREEN); tft.setCursor(50, 140); tft.print("2"); buttonhistory |= 32; } if(! (buttons & TFTSHIELD_BUTTON_3)){ tft.setTextColor(ST77XX_YELLOW); tft.setCursor(100, 140); tft.print("3"); buttonhistory |= 64; } if (! (buttons & TFTSHIELD_BUTTON_IN)) { tft.setTextColor(ST77XX_MAGENTA); tft.setCursor(0, 110); tft.print("SELECT"); } }