Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //Shield TFT
- #include <stdint.h>
- #include <SeeedTouchScreen.h>
- #include <TFTv2.h>
- #include <SPI.h>
- // For better pressure precision, we need to know the resistance
- // between X+ and X- Use any multimeter to read it
- // The 2.8" TFT Touch shield has 300 ohms across the X plate
- TouchScreen ts = TouchScreen(XP, YP, XM, YM);//init TouchScreen port pins
- int page = 0; //Variable page
- unsigned long RefreshTime = 0;//Variable de rafraîchissement des infos
- int incomingByte1; // a variable to read incoming serial data into
- int incomingByte2; // a variable to read incoming serial data into
- int incomingByte3; // a variable to read incoming serial data into
- char* type[] = {"Nettoyage complet", "Decontamination", "Sechage"};
- int type2 = 0;
- void setup()
- {
- Tft.TFTinit(); //init TFT library
- Serial.begin(9600); //init serial communication
- Menu();
- }
- void loop(){
- // Get x y and z coordinates + map the ADC value read to into pixel co-ordinates
- Point p = ts.getPoint();
- p.x = map(p.x, TS_MINX, TS_MAXX, 0, 240);
- p.y = map(p.y, TS_MINY, TS_MAXY, 0, 320);
- if(millis() - RefreshTime > 2000){//Actualisation
- if(page == 5)DrawValues1();
- if(page == 6)DrawValues2();
- }
- //Fleche de retour
- if (p.x > 0 && p.x < 20 && p.y > 300 && p.y < 320 && p.z > 150){
- switch(page){
- case 1:
- Menu();
- break;
- case 2:
- Erreur();
- break;
- case 3:
- Erreur();
- break;
- case 4:
- Erreur();
- break;
- case 5:
- Nettoyage();
- break;
- case 6:
- Nettoyage();
- break;
- }
- }
- //Flèche vers le bas
- if (p.x > 220 && p.x < 240 && p.y > 300 && p.y < 320 && p.z > 150 && page == 5){
- Info2();
- }
- //Flèche vers le haut
- if (p.x > 220 && p.x < 240 && p.y > 0 && p.y < 20 && p.z > 150 && page == 6){
- Info1();
- }
- //Page d'erreur
- if ( page == 7 ){
- if (p.x > 30 && p.x < 115 && p.y > 200 && p.y < 250 && p.z > 150){//Bouton oui
- Stop();
- Menu();
- }
- if (p.x > 125 && p.x < 210 && p.y > 200 && p.y < 250 && p.z > 150){//Bouton non
- delay(500);//pour empecher le double clic
- Nettoyage();
- }
- }
- //Bouttons des pages
- if (p.x > 30 && p.x < 210 && p.y > 240 && p.y < 290 && p.z > 150){//Bouton 3
- switch(page){
- case 0:
- Select();
- break;
- case 1:
- type2 = 0;
- Nettoyage();
- break;
- case 2:
- Info1();
- break;
- case 3:
- Info1();
- break;
- case 4:
- Info1();
- break;
- }
- }
- if (p.x > 30 && p.x < 210 && p.y > 160 && p.y < 210 && p.z > 150){//Bouton 2
- switch(page){
- case 1:
- type2 = 1;
- Nettoyage();
- break;
- }
- }
- if (p.x > 30 && p.x < 210 && p.y > 80 && p.y < 130 && p.z > 150){//Bouton 1
- switch(page){
- case 1:
- type2 = 2;
- Nettoyage();
- break;
- }
- }
- }
- void Menu(){//Menu principal
- page = 0;
- Tft.fillScreen(0, 240, 0, 320,BLUE);
- Tft.fillRectangle(30, 240, 180, 50,RED);
- Tft.drawString("SNAC", 35, 40, 6,BLACK);
- Tft.drawString("Start", 50, 250, 5,BLACK);
- }
- void Select(){//Selection du mode de nettoyage
- page = 1;
- Tft.fillScreen(0, 240, 0, 320,BLUE);
- DrawReturn();
- Tft.drawString("Choisissez votre",10,10,2,BLACK);
- Tft.drawString("mode de nettoyage",10,30,2,BLACK);
- Tft.fillRectangle(30, 80, 180, 50,RED);
- Tft.drawString("Sechage", 75, 100, 2,BLACK);
- Tft.fillRectangle(30, 160, 180, 50,RED);
- Tft.drawString("Decontamination", 30, 180, 2,BLACK);
- Tft.fillRectangle(30, 240, 180, 50,RED);
- Tft.drawString("Nettoyage", 70, 250, 2,BLACK);
- Tft.drawString("complet", 80, 270, 2,BLACK);
- }
- void Nettoyage(){//Nettoyage + type
- page = type2 + 2;
- Tft.fillScreen(0, 240, 0, 320,BLUE);
- DrawReturn();
- Tft.drawString(type[type2],10,10,2,BLACK);
- Tft.drawString("en cours",10,30,2,BLACK);
- if (type[type2] == "Nettoyage complet"){
- Serial.print('A');
- }
- if (type[type2] == "Decontamination"){
- Serial.print('B');
- }
- if (type[type2] == "Sechage"){
- Serial.print('C');
- }
- Tft.fillRectangle(30, 240, 180, 50,RED);
- Tft.drawString("Infos", 50, 250, 5,BLACK);
- }
- void Info1(){
- page = 5;
- Tft.fillScreen(0, 240, 0, 320,BLUE);
- DrawReturn();
- DrawDown();
- DrawValues1();
- }
- void Info2(){
- page = 6;
- Tft.fillScreen(0, 240, 0, 320,BLUE);
- Tft.fillRectangle(30, 80, 180, 50,RED);
- Tft.fillRectangle(30, 160, 180, 50,RED);
- Tft.fillRectangle(30, 240, 180, 50,RED);
- DrawReturn();
- DrawUp();
- DrawValues2();
- }
- void DrawValues1(){
- Serial.print('D');
- if (Serial.available() >= 3) {
- incomingByte1 = Serial.read();
- incomingByte2 = Serial.read();
- incomingByte3 = Serial.read();
- Tft.drawString("Temperature en C",30,60,2,BLACK);
- Tft.fillRectangle(30, 80, 180, 50,RED);
- Tft.drawNumber(incomingByte1 / 2,40,90,2,BLACK);
- Tft.drawString("Taux de particule",30,140,2,BLACK);
- Tft.fillRectangle(30, 160, 180, 50,RED);
- Tft.drawNumber(incomingByte2,40,250,2,BLACK);
- Tft.drawString("Humidite en %",30,220,2,BLACK);
- Tft.fillRectangle(30, 240, 180, 50,RED);
- Tft.drawNumber(incomingByte3,40,170,2,BLACK);
- RefreshTime = millis();
- }
- }
- void DrawValues2(){
- Serial.print('E');
- if (Serial.available() >= 3) {
- incomingByte1 = Serial.read();
- incomingByte2 = Serial.read();
- incomingByte3 = Serial.read();
- Tft.drawString("Lampes UV",30,60,2,BLACK);
- Tft.fillRectangle(30, 80, 180, 50,RED);
- Tft.drawNumber(incomingByte1,40,90,2,BLACK);
- Tft.drawString("Resistance",30,140,2,BLACK);
- Tft.fillRectangle(30, 160, 180, 50,RED);
- Tft.drawNumber(incomingByte2,40,170,2,BLACK);
- Tft.drawString("Ventilateur",30,220,2,BLACK);
- Tft.fillRectangle(30, 240, 180, 50,RED);
- Tft.drawNumber(incomingByte3,40,250,2,BLACK);
- RefreshTime = millis();
- }
- }
- void DrawReturn(){//Fleche de retour
- Tft.fillRectangle(14, 299, 6, 16,WHITE);
- Tft.fillRectangle(10, 309, 4, 6,WHITE);
- Tft.fillRectangle(6, 305, 4, 14,WHITE);
- Tft.fillRectangle(4, 307, 2, 10,WHITE);
- Tft.fillRectangle(2, 309, 2, 6,WHITE);
- Tft.fillRectangle(0, 311, 2, 2,WHITE);
- }
- void DrawDown(){//Fleche vers le bas
- Tft.fillRectangle(219, 300, 21, 2,WHITE);
- Tft.fillRectangle(220, 302, 19, 2,WHITE);
- Tft.fillRectangle(221, 304, 17, 2,WHITE);
- Tft.fillRectangle(222, 306, 15, 2,WHITE);
- Tft.fillRectangle(223, 308, 13, 2,WHITE);
- Tft.fillRectangle(224, 310, 11, 2,WHITE);
- Tft.fillRectangle(225, 312, 9, 2,WHITE);
- Tft.fillRectangle(226, 314, 7, 2,WHITE);
- Tft.fillRectangle(227, 316, 5, 2,WHITE);
- Tft.fillRectangle(228, 318, 3, 2,WHITE);
- Tft.fillRectangle(229, 320, 1, 1,WHITE);
- }
- void DrawUp(){//Fleche vers le bas
- Tft.fillRectangle(229, 0, 1, 1,WHITE);
- Tft.fillRectangle(228, 2, 3, 2,WHITE);
- Tft.fillRectangle(227, 4, 5, 2,WHITE);
- Tft.fillRectangle(226, 6, 7, 2,WHITE);
- Tft.fillRectangle(225, 8, 9, 2,WHITE);
- Tft.fillRectangle(224, 10, 11, 2,WHITE);
- Tft.fillRectangle(223, 12, 13, 2,WHITE);
- Tft.fillRectangle(222, 14, 15, 2,WHITE);
- Tft.fillRectangle(221, 16, 17, 2,WHITE);
- Tft.fillRectangle(220, 18, 19, 2,WHITE);
- Tft.fillRectangle(219, 20, 21, 2,WHITE);
- }
- void Erreur(){//Message d'erreur pour arreter le nettoyage en cours
- page = 7;
- Tft.fillRectangle(20, 20, 200, 280,RED);
- Tft.drawString("Voulez-vous", 30, 100, 2,BLACK);
- Tft.drawString("vraiment", 30, 120, 2,BLACK);
- Tft.drawString("quitter ?", 30, 140, 2,BLACK);
- Tft.fillRectangle(30, 200, 85, 50,GREEN);
- Tft.fillRectangle(125, 200, 85, 50,GREEN);
- Tft.drawString("Oui", 40, 210, 3,BLACK);
- Tft.drawString("Non", 135, 210, 3,BLACK);
- }
- void Stop(){
- Serial.print('F');
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement