#include <stdint.h>
#include <SeeedTouchScreen.h>
#include <TFTv2.h>
#include <SPI.h>
TouchScreen ts = TouchScreen(XP, YP, XM, YM);
int rele1 = 22;
int rele2 = 24;
int rele3 = 26;
int rele4 = 28;
void setup()
{
TFT_BL_ON; // turn on the background light
Tft.TFTinit(); // init TFT library
Tft.drawRectangle(5,5,70,48,RED);
Tft.drawRectangle(5,65,70,48,RED);
Tft.drawRectangle(5,125,70,48,RED);
Tft.drawRectangle(5,185,70,48,RED);
Tft.drawString("OUT 1",10,24,2,RED);
Tft.drawString("OUT 2",10,84,2,RED);
Tft.drawString("OUT 3",10,144,2,RED);
Tft.drawString("OUT 4",10,204,2,RED);
pinMode(rele1, OUTPUT);
pinMode(30, OUTPUT);
pinMode(rele2, OUTPUT);
pinMode(32, OUTPUT);
pinMode(rele3, OUTPUT);
pinMode(34, OUTPUT);
pinMode(rele4, OUTPUT);
pinMode(36, OUTPUT);
pinMode(53, OUTPUT);
}
int on1 = 0;
int on2 = 0;
int on3 = 0;
int on4 = 0;
void loop()
{
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 ( p.x > 5 && p.x < 70 && p.y > 5 && p.y <48) {
if (p.z > __PRESURE) {
Tft.fillRectangle(5,5,70,48,RED);
Tft.drawString("OUT 1",10,24,2,BLACK);
delay(500);
Tft.fillRectangle(5,5,70,48,BLACK);
Tft.drawString("OUT 1",10,24,2,RED);
Tft.drawRectangle(5,5,70,48,RED);
on1 = !on1;
digitalWrite(rele1, on1 ? HIGH : LOW);
digitalWrite(30, on1 ? HIGH : LOW);
}
}
else if ( p.x > 5 && p.x < 70 && p.y > 70 && p.y <118) {
if (p.z > __PRESURE) {
Tft.fillRectangle(5,65,70,48,RED);
Tft.drawString("OUT 2",10,84,2,BLACK);
delay(500);
Tft.fillRectangle(5,65,70,48,BLACK);
Tft.drawString("OUT 2",10,84,2,RED);
Tft.drawRectangle(5,65,70,48,RED);
on2 = !on2;
digitalWrite(rele2, on2 ? HIGH : LOW);
digitalWrite(32, on2 ? HIGH : LOW);
}
}
else if ( p.x > 5 && p.x < 70 && p.y > 130 && p.y <178) {
if (p.z > __PRESURE) {
Tft.fillRectangle(5,125,70,48,RED);
Tft.drawString("OUT 3",10,144,2,BLACK);
delay(500);
Tft.fillRectangle(5,125,70,48,BLACK);
Tft.drawString("OUT 3",10,144,2,RED);
Tft.drawRectangle(5,125,70,48,RED);
on3 = !on3;
digitalWrite(rele3, on3 ? HIGH : LOW);
digitalWrite(34, on3 ? HIGH : LOW);
}
}
else if ( p.x > 5 && p.x < 70 && p.y > 190 && p.y <238) {
if (p.z > __PRESURE) {
Tft.fillRectangle(5,185,70,48,RED);
Tft.drawString("OUT 4",10,204,2,BLACK);
delay(500);
Tft.fillRectangle(5,185,70,48,BLACK);
Tft.drawString("OUT 4",10,204,2,RED);
Tft.drawRectangle(5,185,70,48,RED);
on4 = !on4;
digitalWrite(rele4, on4 ? HIGH : LOW);
digitalWrite(36, on4 ? HIGH : LOW);
}
}
}
edit by mod: il codice va incluso con gli appositi tag