Проекты с компонентом

О МОДУЛЕ

Что делает TFT+EC11 12P: 1.8 ST7735S / 2.4 ST7789

Цветной экран, механический энкодер с нажатием и ещё одна кнопка расположены на общей плате. Такой модуль удобен для передней панели таймера, регулятора, домашнего прибора или измерительного устройства: поворот выбирает пункт или меняет значение, кнопки подтверждают действие и возвращают назад.

В семействе сохранены два разных исполнения: 1.8″ с ST7735S и 128×160 пикселями; 2.4″ с ST7789 и 240×320 пикселями. Поворот изображения даёт 160×128 или 320×240. У них отличаются панель, размеры платы и инициализация. Это одна карточка вариантов, а не утверждение об одинаковом железе.

Экран получает данные по SPI. A и B, PUSH и K0 читаются отдельными GPIO; дисплей не передаёт нажатия по SPI. PUSH — нажатие оси EC11, K0/KEY0 — отдельная кнопка. Сенсорного слоя нет. Контакты требуют подавления дребезга. Названия Baishundianzi и TZT относятся к предложениям продавцов; изготовитель конкретной PCB не установлен.

Оба исполнения относятся к размерной группе «Средний». У общей карточки нет одного числового значения диагонали: 1.8″ и 2.4″ перечислены как варианты, поэтому единый числовой фильтр диагонали для неё не заполнен.

Подключение подсветки опирается на два отдельно названных исполнения поставщиков: ARD-TFT180-ENK1.8″ поддерживает 3.3-вольтовое PWM-управление BLK; у HE1324 2.4″ также подтверждена работа подсветки при неподключённом BLK. Состояние BLK по умолчанию у 1.8″ не переносится с 2.4″.

Характеристики

Исполнения
1.8″: ST7735S, 128×160; 2.4″: ST7789, 240×320
Размерная группа
Средний
Дисплей
SPI, 12-контактная общая колодка
Органы управления
EC11 A/B, PUSH и отдельная K0/KEY0
Сенсорный ввод
Нет
Питание модуля
Пример использует питание 3.3 В и сигналы 3.3 В. Для 1.8″ поставщик ARD-TFT180-ENK прямо описывает BLK как PWM-управление и требует 3.3 В для управляющих сигналов. Допуск 5 В на питание иных ревизий не переносится на GPIO.

ПРАКТИКА

Подключение

Схема подключения
Контакт модуляКонтакт платыНазначение
GNDGNDОбщая земля.
VCC3V3Питание модуля, не GPIO.
SCLGPIO18Тактовый сигнал SPI SCK; это не I²C.
SDAGPIO23SPI MOSI; это не I²C.
RESGPIO25ESP32 DevKitC, классический ESP32-WROOM-32; не универсальная распиновка ESP32.
DCGPIO26ESP32 DevKitC, классический ESP32-WROOM-32; не универсальная распиновка ESP32.
CSGPIO27ESP32 DevKitC, классический ESP32-WROOM-32; не универсальная распиновка ESP32.
BLKGPIO22PWM-управление 3.3 В, 50% заполнения в примере; это управляющий сигнал, не питание светодиодов от GPIO. Поддержка PWM для 1.8″ подтверждена поставщиком ARD-TFT180-ENK. Для 2.4″ HE1324 подтверждает BLK как control; NC даёт постоянно включённую подсветку.
AGPIO32Первая фаза EC11, INPUT_PULLUP.
BGPIO33Вторая фаза EC11, INPUT_PULLUP.
PUSHGPIO21Нажатие оси, INPUT_PULLUP, активный LOW.
K0 / KEY0GPIO19Отдельная кнопка, INPUT_PULLUP, активный LOW.

Подходит для ESP32, Arduino. Выберите контакты по документации своей платы.

ВАШ ПРОЕКТ · ВАШ ДАТЧИК

Интегрируйте модуль с ChatGPT

Скопируйте запрос в ChatGPT. Укажите свою плату и среду разработки — получите подключение и код для своего проекта.

Помоги интегрировать TFT+EC11 12P: 1.8 ST7735S / 2.4 ST7789. Сначала уточни точную плату микроконтроллера, среду, вариант модуля, маркировку разъёма и задачу. Проверь питание отдельно от уровней GPIO. Подготовь согласованные подключение, зависимости, минимальный пример и проверку изображения. Не переноси GPIO классического ESP32 на ESP32-C3/C6/S3. Не выдумывай неподтверждённые свойства платы.

Библиотеки

Установите библиотеку для своей среды и откройте пример из её документации.

Что именно прописать

Библиотека
Adafruit ST7735 and ST7789 Library 1.11.0

Установить вместе с зависимостями через Library Manager.

Вариант 2.4″
Adafruit_ST7789; init(240, 320)

В примере выбран этот вариант; landscape задаётся setRotation(1).

Вариант 1.8″
Adafruit_ST7735; initR(INITR_BLACKTAB)

Стартовый профиль 128×160; проверить границы и RGB/BGR на своей ревизии панели.

Среда примера
Arduino-ESP32 3.x

Использованы ledcAttach(pin, frequency, resolution) и ledcWrite(pin, duty); для core2.x API другой.

Старт подсветки
ledcAttach(22, 1000, 8); ledcWrite(22, 128);

GPIO22 — управляющий PWM3.3 В. Заполнение 50% даёт средний тестовый режим без предположения о полярности; внутреннюю схему не реконструировали.

ESP32 DevKitC + Arduino: экран, энкодер и две кнопки

cpp
#include <Arduino.h>
#include <Adafruit_GFX.h>
#include <Adafruit_ST7735.h>
#include <Adafruit_ST7789.h>
#define TFT_VARIANT_18 0  // 0: 2.4 ST7789; 1: 1.8 ST7735S
#if TFT_VARIANT_18
Adafruit_ST7735 display(27, 26, 23, 18, 25);
#else
Adafruit_ST7789 display(27, 26, 23, 18, 25);
#endif
constexpr int A = 32, B = 33, PUSH = 21, KEY0 = 19;
int value = 0, partial = 0;
uint8_t previousAB;
const int8_t transition[16] = {0,-1,1,0,1,0,0,-1,-1,0,0,1,0,1,-1,0};
struct Button { int pin; bool raw = HIGH, stable = HIGH; uint32_t changed = 0; explicit Button(int p) : pin(p) {} };
Button push{PUSH}, key{KEY0};
bool pressed(Button &b) {
  bool r = digitalRead(b.pin);
  if (r != b.raw) { b.raw = r; b.changed = millis(); }
  if (millis() - b.changed >= 25 && b.stable != b.raw) {
    b.stable = b.raw;
    return b.stable == LOW;
  }
  return false;
}
void drawValue() {
  display.fillRect(8, 32, 144, 32, ST77XX_BLACK);
  display.setCursor(8, 32);
  display.print(value);
}
void setup() {
  Serial.begin(115200);
  if (!ledcAttach(22, 1000, 8) || !ledcWrite(22, 128)) {
    Serial.println("Backlight PWM setup failed");
    while (true) delay(1000);
  }
  const int inputs[] = {A, B, PUSH, KEY0};
  for (int p : inputs) pinMode(p, INPUT_PULLUP);
  previousAB = (digitalRead(A) << 1) | digitalRead(B);
#if TFT_VARIANT_18
  display.initR(INITR_BLACKTAB);
#else
  display.init(240, 320, SPI_MODE0);
#endif
  display.setRotation(1);
  display.fillScreen(ST77XX_BLACK);
  display.drawRect(0,0,display.width(),display.height(),ST77XX_WHITE);
  display.setTextColor(ST77XX_GREEN); display.setTextSize(2);
  display.setCursor(8,8); display.print("EC11");
  drawValue();
}
void loop() {
  uint8_t ab = (digitalRead(A) << 1) | digitalRead(B);
  if ((ab ^ previousAB) == 3) partial = 0; // Reject skipped/invalid states.
  else partial += transition[(previousAB << 2) | ab];
  previousAB = ab;
  if (partial >= 4 || partial <= -4) {
    value += partial > 0 ? 1 : -1;
    partial = 0; drawValue();
  }
  if (pressed(push)) Serial.println("PUSH");
  if (pressed(key)) { value = 0; drawValue(); Serial.println("KEY0"); }
}

Полный исходный пример для классического ESP32 DevKitC, Arduino-ESP323.x и Adafruit1.11.0; API проверены по первичным исходникам/документации. На физическом модуле не запускался и не компилировался. BLK получает PWM1 кГц, 50%: это выбранный тестовый режим, не паспортная частота и не точное утверждение о яркости. Такой старт не требует угадывать полярность регулировки. Для 2.4″ HE1324 отдельно подтверждён постоянный свет при NC; default для 1.8″ не утверждается. Проверьте RGB-порядок, рамку, обе кнопки и направление EC11; число переходов на щелчок зависит от энкодера.

Проекты с этим компонентом

Все проекты

Связанные проекты пока не опубликованы.

Связанные материалы и компоненты