mirror of https://github.com/arendst/Tasmota.git
70 lines
1.7 KiB
Arduino
70 lines
1.7 KiB
Arduino
|
#include <ILI9341_t3.h>
|
||
|
#include <font_Arial.h> // from ILI9341_t3
|
||
|
#include <XPT2046_Touchscreen.h>
|
||
|
#include <SPI.h>
|
||
|
|
||
|
#define CS_PIN 8
|
||
|
#define TFT_DC 9
|
||
|
#define TFT_CS 10
|
||
|
// MOSI=11, MISO=12, SCK=13
|
||
|
|
||
|
XPT2046_Touchscreen ts(CS_PIN);
|
||
|
#define TIRQ_PIN 2
|
||
|
//XPT2046_Touchscreen ts(CS_PIN); // Param 2 - NULL - No interrupts
|
||
|
//XPT2046_Touchscreen ts(CS_PIN, 255); // Param 2 - 255 - No interrupts
|
||
|
//XPT2046_Touchscreen ts(CS_PIN, TIRQ_PIN); // Param 2 - Touch IRQ Pin - interrupt enabled polling
|
||
|
|
||
|
ILI9341_t3 tft = ILI9341_t3(TFT_CS, TFT_DC);
|
||
|
|
||
|
void setup() {
|
||
|
Serial.begin(38400);
|
||
|
tft.begin();
|
||
|
tft.setRotation(1);
|
||
|
tft.fillScreen(ILI9341_BLACK);
|
||
|
ts.begin();
|
||
|
ts.setRotation(1);
|
||
|
while (!Serial && (millis() <= 1000));
|
||
|
}
|
||
|
|
||
|
boolean wastouched = true;
|
||
|
|
||
|
void loop() {
|
||
|
boolean istouched = ts.touched();
|
||
|
if (istouched) {
|
||
|
TS_Point p = ts.getPoint();
|
||
|
if (!wastouched) {
|
||
|
tft.fillScreen(ILI9341_BLACK);
|
||
|
tft.setTextColor(ILI9341_YELLOW);
|
||
|
tft.setFont(Arial_60);
|
||
|
tft.setCursor(60, 80);
|
||
|
tft.print("Touch");
|
||
|
}
|
||
|
tft.fillRect(100, 150, 140, 60, ILI9341_BLACK);
|
||
|
tft.setTextColor(ILI9341_GREEN);
|
||
|
tft.setFont(Arial_24);
|
||
|
tft.setCursor(100, 150);
|
||
|
tft.print("X = ");
|
||
|
tft.print(p.x);
|
||
|
tft.setCursor(100, 180);
|
||
|
tft.print("Y = ");
|
||
|
tft.print(p.y);
|
||
|
Serial.print(", x = ");
|
||
|
Serial.print(p.x);
|
||
|
Serial.print(", y = ");
|
||
|
Serial.println(p.y);
|
||
|
} else {
|
||
|
if (wastouched) {
|
||
|
tft.fillScreen(ILI9341_BLACK);
|
||
|
tft.setTextColor(ILI9341_RED);
|
||
|
tft.setFont(Arial_48);
|
||
|
tft.setCursor(120, 50);
|
||
|
tft.print("No");
|
||
|
tft.setCursor(80, 120);
|
||
|
tft.print("Touch");
|
||
|
}
|
||
|
Serial.println("no touch");
|
||
|
}
|
||
|
wastouched = istouched;
|
||
|
delay(100);
|
||
|
}
|