Подключение Дисплея GMT130-V1.0 (IPS 240240, контроллер ST7789) к Arduino Nano
Подключение GMT130-V1.0 (IPS 240×240, контроллер ST7789) к Arduino Nano
Ниже — рабочая инструкция: распиновка, замечания по питанию/уровням логики и готовый пример скетча с использованием библиотек Adafruit (самый простой путь).
1) Коротко о важном
Модуль на ST7789 работает от 3.3 В. Нельзя подавать 5 В на VCC/логические входы.
Arduino Nano — 5 В логика; требуется преобразование уровней для линий MOSI, SCK, DC, CS, RST (или использовать модуль Согласование логических уровней).
Аппаратный SPI на Nano:
MOSI = D11,
MISO = D12,
SCK = D13.
ST7789 обычно использует только MOSI+SCK (без MISO).
Подсветку (BL, LED, BCK или BLK) обычно подключают к 3.3 В через транзистор/резистор либо к PWM-выходу через N-MOSFET/PNP, если нужен ярк-контроль.
2) Рекомендованная распиновка (названия могут отличаться на модуле: SDA/MOSI, SCL/SCK, DC, RST, CS, BL, VCC, GND)
Модуль (GMT130)Arduino NanoGNDGNDVCC (или 3.3V)3.3V (на Nano или отдельный стабилизатор)SCL / SCKD13 (SCK)SDA / MOSID11 (MOSI)RSTD9 (пример) — можно и к RESET модуля напрямуюDC (или D/C)D8 (пример)BL / LED / BCK3.3V (через транзистор/резистор) или Arduino D3 для ШИМ
Если модуль имеет Согласование логических уровней 5→3.3В — провода можно вести напрямую.
Если нет — используйте 74HCT125/4050/level shifter или N-MOSFET/ резисторные делители (для MOSI/SCK не рекомендуется делитель ).
3) Подключение подсветки (без шим)
Если не нужен регулировка яркости: BL → 3.3V (через резистор, если требуется).
Если нужен PWM: Arduino D3 → N-MOSFET (например 2N7002 или 2N2222 с подтяжкой) → минус подсветки; плюс подсветки → 3.3V. Общий GND обязателен.
4) Библиотеки (установите через Library Manager)
Adafruit GFX Library
Adafruit ST7735 and ST7789 Library
(оба доступны в Library Manager Arduino IDE)
5) Пример скетча (использует аппаратный SPI)
Скопируйте и загрузите в Arduino IDE. Подставьте пины, которые вы выбрали
(в примере —
CS=D10,
DC=D8,
RST=D9).
#include <SPI.h>
#include <Adafruit_GFX.h>
#include <Adafruit_ST7789.h>
// Настройте пины согласно вашей проводке:
#define TFT_CS 10
#define TFT_DC 8
#define TFT_RST 9 // Можно -1 если RST не подключён
// Объект дисплея (использует аппаратный SPI)
Adafruit_ST7789 tft = Adafruit_ST7789(TFT_CS, TFT_DC, TFT_RST);
void setup() {
// Настройка последовательного вывода для отладки
Serial.begin(115200);
delay(100);
// Инициализация SPI и дисплея
tft.init(240, 240); // width, height для ST7789 240x240
tft.setRotation(0); // при необходимости меняйте
tft.fillScreen(ST77XX_BLACK);
// Пример вывода
tft.setTextWrap(true);
tft.setTextSize(2);
tft.setCursor(10, 10);
tft.setTextColor(ST77XX_WHITE);
tft.println("ST7789 240x240");
tft.setTextSize(1);
tft.setCursor(10, 50);
tft.println("GMT130-V1.0");
// Простой график/цветной прямоугольник
tft.fillRect(10, 80, 220, 100, ST77XX_RED);
tft.drawRect(9, 79, 222, 102, ST77XX_WHITE);
}
void loop() {
// мигать подсветкой, если подключена к пину PWM через транзистор (пример D3)
// analogWrite(3, 128); // 0..255
delay(1000);
}
6) Полезные советы и отладка
Питание: убедитесь, что 3.3 В стабилен и может отдавать достаточный ток (модули могут тянуть 100–300 мА при яркой подсветке). Лучше использовать отдельный регулятор 3.3 В, не нагрузить 3.3 V вывод Arduino если он слабый.
Преобразование уровней: если не уверены — используйте буфер/level shifter. Подключение 5 В на линиях MOSI/SCK может повредить дисплей.
Неправильная ориентация/цвета: попробуйте менять tft.setRotation() и инициализацию (некоторые варианты ST7789 требуют tft.init(240, 240) vs tft.init(240, 320); для 240×240 ставим 240,240).
Медленная или неиспользуемая часть экрана: проверьте правильность ширины/высоты и пинов CS/DC/RST.
Если модуль подписан SCL/SDA — это SPI, но названия похожи на I2C; ориентируйтесь по остальным пинам (CS, DC, RST) — это SPI-дисплей.