Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <Adafruit_GFX.h>
- #include <SPI.h>
- #include <Wire.h>
- #include <Adafruit_ILI9341.h>
- #include <Adafruit_STMPE610.h>
- #define TS_MINX 150
- #define TS_MINY 130
- #define TS_MAXX 3800
- #define TS_MAXY 4000
- #define STMPE_CS 8
- Adafruit_STMPE610 ts = Adafruit_STMPE610(STMPE_CS);
- #define TFT_CS 10
- #define TFT_DC 9
- Adafruit_ILI9341 tft = Adafruit_ILI9341(TFT_CS, TFT_DC);
- //*********************************************************************
- #define BrocheGare 22 //1)gare, gare routiere, quai
- boolean etatBoutonGare = false;
- boolean LastetatBoutonGare = true;
- //*********************************************************************
- #define BrocheLidl 24 //2)Lidl
- boolean etatBoutonLidl = false;
- boolean LastetatBoutonLidl = true;
- //*********************************************************************
- #define BrochePublic 26 //3)Public
- boolean etatBoutonPublic = false;
- boolean LastetatBoutonPublic = true;
- //*********************************************************************
- #define BrocheGarageLoco 28 //4)garage loco + buttoirs
- boolean etatBoutonGarageLoco = false;
- boolean LastetatBoutonGarageLoco = true;
- //*********************************************************************
- #define BrocheRestaurant 30 //5)restaurant
- boolean etatBoutonRestaurant = false;
- boolean LastetatBoutonRestaurant = true;
- //*********************************************************************
- #define BrocheVillage 32 //6)village
- boolean etatBoutonVillage = false;
- boolean LastetatBoutonVillage = true;
- //*********************************************************************
- #define BrocheStation 34 //7)station service
- boolean etatBoutonStation = false;
- boolean LastetatBoutonStation = true;
- //*********************************************************************
- #define BrocheEglise 36 //8)eglise + mairie
- boolean etatBoutonEglise = false;
- boolean LastetatBoutonEglise = true;
- //*********************************************************************
- #define BrocheRien1 38 //9)
- boolean etatBoutonRien1 = false;
- boolean LastetatBoutonRien1 = true;
- //*********************************************************************
- #define BrocheStationLavage 40 //10)Station Lavage
- boolean etatBoutonStationLavage = false;
- boolean LastetatBoutonStationLavage = true;
- //*********************************************************************
- #define BrocheRien2 42 //11)
- boolean etatBoutonRien2 = false;
- boolean LastetatBoutonRien2 = true;
- //*********************************************************************
- #define BrocheRien3 44 //12)
- boolean etatBoutonRien3 = false;
- boolean LastetatBoutonRien3 = true;
- #define PressionMin 2
- #define PressionMax 1000
- unsigned long tempoPression = 0;
- void setup()
- {
- Serial.begin(9600);
- pinMode(BrocheGare, OUTPUT);
- pinMode(BrocheLidl, OUTPUT);
- pinMode(BrochePublic, OUTPUT);
- pinMode(BrocheGarageLoco, OUTPUT);
- pinMode(BrocheRestaurant, OUTPUT);
- pinMode(BrocheVillage, OUTPUT);
- pinMode(BrocheStation, OUTPUT);
- pinMode(BrocheEglise, OUTPUT);
- pinMode(BrocheRien1, OUTPUT);
- pinMode(BrocheStationLavage, OUTPUT);
- pinMode(BrocheRien2, OUTPUT);
- pinMode(BrocheRien3, OUTPUT);
- tft.begin();
- tft.setRotation(1);
- tft.fillScreen(ILI9341_BLACK);
- tft.setTextColor(ILI9341_WHITE);
- tft.setTextSize(2);
- tft.setCursor(20, 7);
- tft.print("ECLAIRAGES DES BATIMENTS");
- tft.drawRoundRect(0, 0, 320, 240, 20, ILI9341_BLUE);
- tft.drawRoundRect(1, 1, 318, 238, 20, ILI9341_BLUE);
- if (!ts.begin()) {
- while (1);
- }
- }
- void loop(){
- GestionTactile();
- GestionBouton();
- }
- //******************************
- //*** Fonction Gestion Bouton **
- //********************************************************************************
- void GestionBouton(){
- if (LastetatBoutonGare != etatBoutonGare)
- {
- uint16_t coulBoutonGare = ILI9341_RED;
- if (etatBoutonGare) {coulBoutonGare = ILI9341_BLUE;}
- tft.setTextColor(ILI9341_WHITE);
- tft.setTextSize(1);
- tft.fillRoundRect(5, 40, 90, 30, 12, coulBoutonGare);
- tft.drawRoundRect(3, 38, 94, 34, 12, coulBoutonGare);
- tft.setCursor(10, 45); tft.print(F("Gare, Quais "));
- tft.setCursor(10, 55); tft.print(F("Gare Routiere"));
- LastetatBoutonGare = etatBoutonGare;
- }
- //*******************************************************************************
- if (LastetatBoutonLidl != etatBoutonLidl)
- {
- uint16_t coulBoutonLidl = ILI9341_RED;
- if (etatBoutonLidl) {coulBoutonLidl = ILI9341_BLUE;}
- tft.setTextColor(ILI9341_WHITE);
- tft.setTextSize(1);
- tft.fillRoundRect(115, 40, 90, 30, 12, coulBoutonLidl);
- tft.drawRoundRect(113, 38, 94, 34, 12, coulBoutonLidl);
- tft.setCursor(145, 50); tft.print(F("Lidl"));
- LastetatBoutonLidl = etatBoutonLidl;
- }
- //*******************************************************************************
- if (LastetatBoutonPublic != etatBoutonPublic)
- {
- uint16_t coulBoutonPublic= ILI9341_RED;
- if (etatBoutonPublic) {coulBoutonPublic = ILI9341_BLUE;}
- tft.setTextColor(ILI9341_WHITE);
- tft.setTextSize(1);
- tft.fillRoundRect(225, 40, 90, 30, 12, coulBoutonPublic);
- tft.drawRoundRect(223, 38, 94, 34, 12, coulBoutonPublic);
- tft.setCursor(250, 50); tft.print(F("Publics"));
- LastetatBoutonPublic= etatBoutonPublic;
- }
- //*******************************************************************************
- if (LastetatBoutonGarageLoco != etatBoutonGarageLoco)
- {
- uint16_t coulBoutonGarageLoco= ILI9341_RED;
- if (etatBoutonGarageLoco) {coulBoutonGarageLoco = ILI9341_BLUE;}
- tft.setTextColor(ILI9341_WHITE);
- tft.setTextSize(1);
- tft.fillRoundRect(5, 90, 90, 30, 12, coulBoutonGarageLoco);
- tft.drawRoundRect(3, 88, 94, 34, 12, coulBoutonGarageLoco);
- tft.setCursor(10, 95); tft.print(F("Garage locos,"));
- tft.setCursor(30, 105); tft.print(F("Buttoirs"));
- LastetatBoutonGarageLoco= etatBoutonGarageLoco;
- }
- //*******************************************************************************
- if (LastetatBoutonRestaurant != etatBoutonRestaurant)
- {
- uint16_t coulBoutonRestaurant= ILI9341_RED;
- if (etatBoutonRestaurant) {coulBoutonRestaurant = ILI9341_BLUE;}
- tft.setTextColor(ILI9341_WHITE);
- tft.setTextSize(1);
- tft.fillRoundRect(115, 90, 90, 30, 12, coulBoutonRestaurant);
- tft.drawRoundRect(113, 88, 94, 34, 12, coulBoutonRestaurant);
- tft.setCursor(130, 100); tft.print(F("Restaurant"));
- LastetatBoutonRestaurant = etatBoutonRestaurant;
- }
- //********************************************************************************
- if (LastetatBoutonVillage != etatBoutonVillage)
- {
- uint16_t coulBoutonVillage= ILI9341_RED;
- if (etatBoutonVillage) {coulBoutonVillage = ILI9341_BLUE;}
- tft.setTextColor(ILI9341_WHITE);
- tft.setTextSize(1);
- tft.fillRoundRect(225, 90, 90, 30, 12, coulBoutonVillage);
- tft.drawRoundRect(223, 88, 94, 34, 12, coulBoutonVillage);
- tft.setCursor(250, 100); tft.print(F("Village"));
- LastetatBoutonVillage = etatBoutonVillage;
- }
- //********************************************************************************
- if (LastetatBoutonStation != etatBoutonStation)
- {
- uint16_t coulBoutonStation= ILI9341_RED;
- if (etatBoutonStation) {coulBoutonStation = ILI9341_BLUE;}
- tft.setTextColor(ILI9341_WHITE);
- tft.setTextSize(1);
- tft.fillRoundRect(5, 140, 90, 30, 12, coulBoutonStation);
- tft.drawRoundRect(3, 138, 94, 34, 12, coulBoutonStation);
- tft.setCursor(6, 150); tft.print(F("Station Service"));
- LastetatBoutonStation = etatBoutonStation;
- }
- //********************************************************************************
- if (LastetatBoutonEglise != etatBoutonEglise)
- {
- uint16_t coulBoutonEglise= ILI9341_RED;
- if (etatBoutonEglise) {coulBoutonEglise = ILI9341_BLUE;}
- tft.setTextColor(ILI9341_WHITE);
- tft.setTextSize(1);
- tft.fillRoundRect(115, 140, 90, 30, 12, coulBoutonEglise);
- tft.drawRoundRect(113, 138, 94, 34, 12, coulBoutonEglise);
- tft.setCursor(120, 150); tft.print(F("Eglise, Mairie"));
- LastetatBoutonEglise = etatBoutonEglise;
- }
- //*******************************************************************************
- if (LastetatBoutonRien1 != etatBoutonRien1)
- {
- uint16_t coulBoutonRien1= ILI9341_RED;
- if (etatBoutonRien1) {coulBoutonRien1 = ILI9341_BLUE;}
- tft.setTextColor(ILI9341_WHITE);
- tft.setTextSize(1);
- tft.fillRoundRect(225, 140, 90, 30, 12, coulBoutonRien1);
- tft.drawRoundRect(223, 138, 94, 34, 12, coulBoutonRien1);
- tft.setCursor(250, 150); tft.print(F(""));
- LastetatBoutonRien1 = etatBoutonRien1;
- }
- //********************************************************************************
- if (LastetatBoutonStationLavage != etatBoutonStationLavage)
- {
- uint16_t coulBoutonStationLavage= ILI9341_RED;
- if (etatBoutonStationLavage) {coulBoutonStationLavage = ILI9341_BLUE;}
- tft.setTextColor(ILI9341_WHITE);
- tft.setTextSize(1);
- tft.fillRoundRect(5, 190, 90, 30, 12, coulBoutonStationLavage);
- tft.drawRoundRect(3, 188, 94, 34, 12, coulBoutonStationLavage);
- tft.setCursor(10, 195); tft.print(F("Station Lavage"));
- tft.setCursor(10, 205); tft.print(F("locos, Wagons"));
- LastetatBoutonStationLavage = etatBoutonStationLavage;
- }
- //********************************************************************************
- if (LastetatBoutonRien2 != etatBoutonRien2)
- {
- uint16_t coulBoutonRien2 = ILI9341_RED;
- if (etatBoutonRien2 ) {coulBoutonRien2 = ILI9341_BLUE;}
- tft.setTextColor(ILI9341_WHITE);
- tft.setTextSize(1);
- tft.fillRoundRect(115, 190, 90, 30, 12, coulBoutonRien2);
- tft.drawRoundRect(113, 188, 94, 34, 12, coulBoutonRien2);
- tft.setCursor(140, 200); tft.print(F(""));
- LastetatBoutonRien2 = etatBoutonRien2;
- }
- //*********************************************************************************
- if (LastetatBoutonRien3 != etatBoutonRien3)
- {
- uint16_t coulBoutonRien3= ILI9341_RED;
- if (etatBoutonRien3) {coulBoutonRien3 = ILI9341_BLUE;}
- tft.setTextColor(ILI9341_WHITE);
- tft.setTextSize(1);
- tft.fillRoundRect(225, 190, 90, 30, 12, coulBoutonRien3);
- tft.drawRoundRect(223, 188, 94, 34, 12, coulBoutonRien3);
- tft.setCursor(250, 200); tft.print(F(""));
- LastetatBoutonRien3 = etatBoutonRien3;
- }
- }
- //*********************************************************************************
- //*** Fonction Gestion Tactile de l'écran TFT *************************************
- //*********************************************************************************
- void GestionTactile (){
- if (ts.bufferEmpty()) {
- return;
- }
- TS_Point p = ts.getPoint();
- p.x = map(p.x, TS_MINX, TS_MAXX, 0, tft.width());
- p.y = map(p.y, TS_MINY, TS_MAXY, 0, tft.height());
- Serial.print(p.x);
- Serial.print(" , ");
- Serial.println(p.y);
- //**********************************************************************************
- if (millis() - tempoPression >= 1000ul && tempoPression != 0 || tempoPression == 0)
- {
- if (p.x > 230 && p.x < 270 && p.y > 20 && p.y < 70) //ecl gare , gare routiere , quais
- {
- etatBoutonGare = !etatBoutonGare;
- digitalWrite(BrocheGare, etatBoutonGare);
- }
- //**********************************************************************************
- if (p.x > 230 && p.x < 270 && p.y > 90 && p.y < 150) //ecl Lidl
- {
- etatBoutonLidl = !etatBoutonLidl;
- digitalWrite(BrocheLidl, etatBoutonLidl);
- }
- //**********************************************************************************
- if (p.x > 230 && p.x < 270 && p.y > 180 && p.y < 220) //ecl Public
- {
- etatBoutonPublic = !etatBoutonPublic;
- digitalWrite(BrochePublic, etatBoutonPublic);
- }
- //**********************************************************************************
- if (p.x > 180 && p.x < 220 && p.y > 30 && p.y < 70) //ecl garage loco + buttoirs
- {
- etatBoutonGarageLoco = !etatBoutonGarageLoco;
- digitalWrite(BrocheGarageLoco, etatBoutonGarageLoco);
- }
- //**********************************************************************************
- if (p.x > 180 && p.x < 220 && p.y > 90 && p.y < 150) //ecl restaurant
- {
- etatBoutonRestaurant = !etatBoutonRestaurant;
- digitalWrite(BrocheRestaurant, etatBoutonRestaurant);
- }
- //**********************************************************************************
- if (p.x > 180 && p.x < 220 && p.y > 180 && p.y < 220) //ecl Village
- {
- etatBoutonVillage = !etatBoutonVillage;
- digitalWrite(BrocheVillage, etatBoutonVillage);
- }
- //**********************************************************************************
- if (p.x > 100 && p.x < 140 && p.y > 30 && p.y < 70) //ecl Station service
- {
- etatBoutonStation = !etatBoutonStation;
- digitalWrite(BrocheStation, etatBoutonStation);
- }
- //**********************************************************************************
- if (p.x > 100 && p.x < 140 && p.y > 90 && p.y < 150) //ecl église + mairie
- {
- etatBoutonEglise = !etatBoutonEglise;
- digitalWrite(BrocheEglise, etatBoutonEglise);
- }
- //**********************************************************************************
- if (p.x > 100 && p.x < 140 && p.y > 180 && p.y < 220) //non connecter 1
- {
- etatBoutonRien1 = !etatBoutonRien1;
- digitalWrite(BrocheRien1, etatBoutonRien1);
- }
- //**********************************************************************************
- if (p.x > 20 && p.x < 60 && p.y > 30 && p.y < 70) //ecl Station Lavage
- {
- etatBoutonStationLavage = !etatBoutonStationLavage;
- digitalWrite(BrocheStationLavage, etatBoutonStationLavage);
- }
- //**********************************************************************************
- if (p.x > 20 && p.x < 60 && p.y > 90 && p.y < 150) //non connecter 2
- {
- etatBoutonRien2 = !etatBoutonRien2 ;
- digitalWrite(BrocheRien2 , etatBoutonRien2 );
- }
- //**********************************************************************************
- if (p.x > 20 && p.x < 60 && p.y > 180 && p.y < 220) //non connecter 3
- {
- etatBoutonRien3 = !etatBoutonRien3;
- digitalWrite(BrocheRien3, etatBoutonRien3);
- }
- tempoPression = millis();
- }
- }
Add Comment
Please, Sign In to add comment