Sto usando questo semplice sketch:
/*
* 31 marzo 2025
* ESP32 DOIT DEVKIT V1
* Disegna il bottone ma non sente il Touch
*/
#include "SPI.h"
#include "Adafruit_GFX.h"
#include "Adafruit_ILI9341.h"
#include <XPT2046_Touchscreen.h>
#define TFT_DC 2
#define TFT_CS 15
#define TFT_MOSI 13
#define TFT_MISO 12
#define TFT_CLK 14
#define TFT_RST 21
#define TOUCH_CS 33
#define TOUCH_IRQ 34
Adafruit_ILI9341 tft = Adafruit_ILI9341(TFT_CS, TFT_DC, TFT_MOSI, TFT_CLK, TFT_RST, TFT_MISO);
XPT2046_Touchscreen ts(TOUCH_CS, TOUCH_IRQ);
void setup() {
tft.begin();
ts.begin();
tft.setRotation(3);
tft.fillScreen(ILI9341_BLACK);
tft.fillRect(50, 160, 100, 50, ILI9341_RED);
tft.setCursor(60, 175); // colonna, riga
tft.setTextColor(ILI9341_WHITE);
tft.setTextSize(2);
tft.println("Bottone");
}
void loop() {
if (ts.touched()) {
TS_Point p = ts.getPoint();
if (p.x >= 50 && p.x <= 150 && p.y >= 160 && p.y <= 210) {
tft.fillRect(50, 160, 100, 50, ILI9341_GREEN);
tft.setCursor(60, 175); // colonna, riga
tft.println("Premuto");
}
}
}
Mi disegna il bottone con scritto dentro "Bottone" ma se lo premo non cambia nel colore verde e con scritto premuto.
Ho verificato i collegamenti e sono corretti.
Ho provato a cambiare su altri pin, le due porte "TOUCH", ma il risultato non cambia.
Forse uso delle porte sbagliate per il Touch?