#include #include // from ILI9341_t3 #include #include #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); }