Guest User

TFT v2.0

a guest
Aug 25th, 2013
201
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 5.72 KB | None | 0 0
  1.  
  2. #include <stdint.h>
  3. #include <SeeedTouchScreen.h>
  4. #include <TFTv2.h>
  5. #include <SPI.h>
  6. #include <cstddef.h>
  7.  
  8.  
  9. #define YP A2   // must be an analog pin, use "An" notation!
  10. #define XM A1   // must be an analog pin, use "An" notation!
  11. #define YM 54   // can be a digital pin, this is A0
  12. #define XP 57   // can be a digital pin, this is A3
  13.  
  14. #define TS_MINX 116*2
  15. #define TS_MAXX 890*2
  16. #define TS_MINY 83*2
  17. #define TS_MAXY 913*2
  18.  
  19.  
  20. int Pump1Pin = 31;  //First Relay Pin
  21. int Pump2Pin = 33;
  22. int FanPin = 35;
  23. int ReturnPin = 37;
  24. int SkimmerPin = 39;
  25. int Halide1Pin = 41;
  26. int Halide2Pin = 43;
  27. int ActinicPin = 45;
  28. int Pump1State;
  29. int Pump2State;
  30. int FansState;
  31. int ReturnState;
  32. int SkimmerState;
  33. int HalideState;
  34. int ActinicState;
  35.  
  36. TouchScreen ts = TouchScreen(XP, YP, XM, YM); //init TouchScreen port pins
  37.  
  38. void setup()
  39. {
  40.  
  41.  
  42.   Tft.TFTinit();  //init TFT library
  43.   Serial.begin(38400);
  44.   pinMode(Pump1Pin, OUTPUT);
  45.   pinMode(Pump2Pin, OUTPUT);
  46.   pinMode(FanPin, OUTPUT);
  47.   pinMode(ReturnPin, OUTPUT);
  48.   pinMode(SkimmerPin, OUTPUT);
  49.   pinMode(Halide1Pin, OUTPUT);
  50.   pinMode(Halide2Pin, OUTPUT);
  51.   pinMode(ActinicPin, OUTPUT);
  52.  
  53.  
  54. drawScreen();
  55. }
  56.  
  57. void loop()
  58. {
  59.   buttons();
  60.  
  61.       // Print Char to TFT //
  62.   Tft.fillRectangle(200,60,50,15,BLACK);        // Clear old text
  63.  
  64.   Tft.fillRectangle(200,120,60,15,BLACK);        // Clear old text
  65.  
  66.   Tft.fillRectangle(200,150,60,15,BLACK);       // Clear old text
  67.  
  68.   Tft.fillRectangle(200,180,60,15,BLACK);       // Clear old text
  69.  
  70.        
  71.   delay(1000);                                  // delay to read screen
  72.  
  73. }
  74.  
  75.  
  76.  
  77. // Draw Screen Function //
  78. // Draw all the text and objects that will not change //
  79. void drawScreen(){                
  80.   Tft.drawRectangle(0, 3, 238,30,BLUE);            // HEADER TITLE
  81.   Tft.drawString("Display Data",20,15,2,WHITE);    // header name        
  82.   Tft.drawString("Hi",140,40,1,WHITE);
  83.   Tft.drawString("Low",155,40,1,WHITE);
  84.   Tft.drawString("Current",180,40,1,WHITE);
  85.   Tft.drawString("Seconds:",2,60,2,CYAN);  
  86.   Tft.drawString("Temp",2,90,2,WHITE);
  87.   Tft.drawString("Internal:",20,120,1,WHITE);
  88.   Tft.drawString("External:",20,150,1,WHITE);
  89.   Tft.drawString("pH:",2,170,2,WHITE);
  90.   Tft.drawRectangle(0, 196, 70, 30,BLUE);
  91.   Tft.drawString("Pump 1", 15, 208, 1, WHITE);
  92.   Tft.drawRectangle(80, 196, 70, 30, BLUE);
  93.   Tft.drawString("Pump 2", 95 , 208 , 1, WHITE);
  94.   Tft.drawRectangle(160, 196, 70, 30, BLUE);
  95.   Tft.drawString("Fans", 175, 208, 1, WHITE);
  96.   Tft.drawRectangle(0, 236, 110,30,BLUE);
  97.   Tft.drawString("Return Pump", 15, 248,1,WHITE);
  98.   Tft.drawRectangle(120, 236, 110, 30, BLUE);
  99.   Tft.drawString("Skimmer", 150, 248, 1, WHITE);
  100.   Tft.drawRectangle(0, 276, 110, 30, BLUE);
  101.   Tft.drawString("Halides", 25, 286, 1, WHITE);
  102.   Tft.drawRectangle(120, 276, 110, 30, BLUE);
  103.   Tft.drawString("Actnitcs", 140, 286, 1, WHITE);  
  104. }
  105.  
  106. void buttons(){  
  107.   Point p = ts.getPoint();
  108.   p.x = map(p.x, TS_MINX, TS_MAXX, 0, 240);
  109.   p.y = map(p.y, TS_MINY, TS_MAXY, 0, 320);
  110.  
  111.   if (p.z > __PRESURE) {
  112.      Serial.print("p.x=");
  113.      Serial.println(p.x);
  114.      
  115.      if(p.x >= 0 && p.x < 70) {
  116.        if(p.y >= 196 && p.y < 226)
  117.        {
  118.  
  119.          if (Pump1State == HIGH) {
  120.            digitalWrite(Pump1Pin, LOW); //set the Relay ON
  121.             Pump1State = 0; }
  122.          else  {
  123.            digitalWrite(Pump1Pin, HIGH);// set the Relay OFF
  124.             Pump1State = 1;
  125.          }
  126.        }
  127.      }///////////////////////////////////////////////////////////////////////////For Pump 1
  128.      
  129.      else if(p.x >= 80 && p.x < 150) {
  130.        if(p.y >= 196 && p.y < 226)
  131.        {
  132.  
  133.          if (Pump2State == HIGH) {
  134.            digitalWrite(Pump2Pin, LOW); //set the Relay OFF
  135.             Pump2State = 0; }
  136.          else  {
  137.            digitalWrite(Pump2Pin, HIGH);// set the Relay ON
  138.             Pump2State = 1;
  139.          }
  140.        }
  141.          
  142.      }//For Pump 2
  143.      
  144.      else if(p.x >= 160 && p.x < 230) {
  145.        if(p.y >= 196 && p.y < 226)
  146.        {
  147.  
  148.          if (FansState == HIGH) {
  149.            digitalWrite(FanPin, LOW); //set the Relay OFF
  150.             FansState = 0; }
  151.          else  {
  152.            digitalWrite(FanPin, HIGH);// set the Relay ON
  153.             FansState = 1;
  154.          }
  155.        }
  156.          
  157.      }//For Fans
  158.      
  159.      else if(p.x >= 0 && p.x < 110) {
  160.        if(p.y >= 236 && p.y < 266)
  161.        {
  162.          if (ReturnState == HIGH) {
  163.            //digitalWrite(ReturnPin, LOW); //set the Relay OFF
  164.             ReturnState = 0; }
  165.          else  {
  166.            digitalWrite(ReturnPin, HIGH);// set the Relay ON
  167.             ReturnState = 1;
  168.          }
  169.        } //for return pump
  170.       else  {
  171.          if (HalideState == HIGH) {
  172.            digitalWrite(Halide1Pin, LOW); //set the Relay OFF
  173.            digitalWrite(Halide2Pin, LOW);
  174.             HalideState = 0; }
  175.          else  {
  176.            digitalWrite(Halide1Pin, HIGH);// set the Relay ON
  177.            digitalWrite(Halide2Pin, HIGH);
  178.             HalideState = 1;
  179.          }
  180.        }//for halides
  181.          
  182.      }//if touched in these x-values
  183.      
  184.      else if(p.x >= 120 && p.x < 150) {
  185.        if(p.y >= 236 && p.y < 266) //
  186.        {
  187.  
  188.          if (SkimmerState == HIGH) {
  189.            digitalWrite(SkimmerPin, LOW); //set the Relay OFF
  190.             SkimmerState = 0; }
  191.          else  {
  192.            digitalWrite(SkimmerPin, HIGH);// set the Relay ON
  193.             SkimmerState = 1;
  194.          }
  195.        } //skimmer
  196.        else // Actinic
  197.        {
  198.  
  199.          if (ActinicPin == HIGH) {
  200.            digitalWrite(ActinicPin, LOW); //set the Relay OFF
  201.             ActinicState = 0; }
  202.          else  {
  203.            digitalWrite(ActinicPin, HIGH);// set the Relay ON
  204.             ActinicState = 1;
  205.          }
  206.        }
  207.       } //For Skimmer
  208.  
  209.    }//Touch
  210. }
Advertisement
Add Comment
Please, Sign In to add comment