#include <SPI.h>
#include <Adafruit_GFX.h>
#include <Adafruit_ILI9341.h>
// === Pinos (ajuste se precisar) ===
#define ILI9341_DRIVER
#define TFT_MOSI 11
#define TFT_MISO 13
#define TFT_SCLK 12
#define TFT_CS 10
#define TFT_DC 9
#define TFT_RST 14 // ou -1
// Cria uma instância de SPI dedicada nos pinos acima
SPIClass spiTFT(FSPI); // no core novo do ESP32, FSPI é o barramento "principal"
Adafruit_ILI9341 tft = Adafruit_ILI9341(&spiTFT, TFT_CS, TFT_DC, TFT_RST);
void setup() {
// BACKLIGHT (opcional)
pinMode(TFT_BL, OUTPUT);
// Se quiser brilho fixo: digitalWrite(TFT_BL, HIGH);
// PWM com LEDC:
ledcAttachPin(TFT_BL, 0); // canal 0
ledcSetup(0, 2000, 8); // 2 kHz, 8 bits
ledcWrite(0, 255); // 0–255 (brilho máximo)
// Inicializa SPI nos pinos definidos
spiTFT.begin(TFT_SCK, TFT_MISO, TFT_MOSI, TFT_CS);
// Inicializa o display
tft.begin(); // ILI9341
tft.setRotation(1); // 0–3 (1 = landscape)
tft.fillScreen(ILI9341_BLACK);
// Teste rápido de desenho
tft.setTextColor(ILI9341_WHITE);
tft.setTextSize(2);
tft.setCursor(10, 10);
tft.println("Hello, ILI9341 + ESP32-S3!");
tft.drawRect(8, 40, 140, 90, ILI9341_CYAN);
tft.fillRoundRect(160, 40, 140, 90, 8, ILI9341_BLUE);
tft.drawLine(0, 0, tft.width()-1, tft.height()-1, ILI9341_YELLOW);
tft.drawLine(tft.width()-1, 0, 0, tft.height()-1, ILI9341_YELLOW);
// Exemplo de gradiente simples
for (int x = 0; x < tft.width(); x++) {
uint8_t r = map(x, 0, tft.width(), 0, 31);
uint16_t color = tft.color565(r << 3, 0, 255 - (r << 3));
tft.drawFastVLine(x, 140, 100, color);
}
}
void loop() {
// Diminui/aumenta o brilho só pra mostrar o PWM (comente se não quiser)
static int v = 255, dir = -3;
ledcWrite(0, v);
v += dir;
if (v <= 40 || v >= 255) dir = -dir;
delay(10);
}
Loading
esp32-s3-devkitc-1
esp32-s3-devkitc-1