HI I'm trying to connect all the pins from an Esp8266 to a ili9341 tft + touchscreen. I followed this: 2.8″ Touch LCD SPI for esp8266 (nodemcu) – NailBuster Software Inc.
But it didn't work.
HI I'm trying to connect all the pins from an Esp8266 to a ili9341 tft + touchscreen. I followed this: 2.8″ Touch LCD SPI for esp8266 (nodemcu) – NailBuster Software Inc.
But it didn't work.
"didn't work" contains no information. Try again.
For...Sake. this link:2.8″ Touch LCD SPI for esp8266 (nodemcu) – NailBuster Software Inc. . has this image:
#include <Arduino.h>
#include <SPI.h>
#include <Adafruit_ILI9341esp.h>
#include <Adafruit_GFX.h>
#include <XPT2046.h>
// Modify the following two lines to match your hardware
// Also, update calibration parameters below, as necessary
// For the esp shield, these are the default.
#define TFT_DC D4
#define TFT_CS D8
Adafruit_ILI9341 tft = Adafruit_ILI9341(TFT_CS, TFT_DC);
XPT2046 touch(/*cs=*/ D2, /*irq=*/ D1);
Adafruit_GFX_Button button;
void setup() {
delay(1000);
Serial.begin(115200);
SPI.setFrequency(ESP_SPI_FREQ);
tft.begin();
touch.begin(tft.width(), tft.height()); // Must be done before setting rotation
Serial.print("tftx ="); Serial.print(tft.width()); Serial.print(" tfty ="); Serial.println(tft.height());
tft.fillScreen(ILI9341_BLACK);
// Replace these for your screen module
touch.setCalibration(209, 1759, 1775, 273);
button.initButton(&tft, 100, 100, 70, 40, ILI9341_DARKCYAN, ILI9341_BLUE, ILI9341_GREENYELLOW, "Clear", 2);
button.drawButton();
}
static uint16_t prev_x = 0xffff, prev_y = 0xffff;
void loop() {
uint16_t x, y;
if (touch.isTouching()) {
touch.getPosition(x, y);
// Serial.print("x ="); Serial.print(x); Serial.print(" y ="); Serial.println(y);
if (prev_x == 0xffff) {
tft.drawPixel(x, y,ILI9341_BLUE);
} else {
tft.drawLine(prev_x, prev_y, x, y,ILI9341_BLUE);
}
prev_x = x;
prev_y = y;
} else {
prev_x = prev_y = 0xffff;
}
button.press(button.contains(x, y)); // tell the button it is pressed
// now we can ask the buttons if their state has changed
if (button.justReleased()) {
tft.fillScreen(ILI9341_BLACK);
button.drawButton(); // draw normal
}
if (button.justPressed()) {
button.drawButton(true); // draw invert!
}
delay(20);
}
after fixing the code to correspond to the pins on the diagram. The touchscreen is unresponsive the image does show up though. So i have no clue what's up with this. Frankly I'm losing patience with the esp8266. is this worthwhile or do I move on to the esp32?
Why do you assume the problem is with ESP8266? Do you know your LCD has a touchscreen and the required controller? There are many sold without touch. Just sayin.
Got a DMM or an oscilloscope? You can only do so much with just your eyeballs.