11

Подключение Дисплея 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) Полезные советы и отладка

  1. Питание: убедитесь, что 3.3 В стабилен и может отдавать достаточный ток (модули могут тянуть 100–300 мА при яркой подсветке). Лучше использовать отдельный регулятор 3.3 В, не нагрузить 3.3 V вывод Arduino если он слабый.

  2. Преобразование уровней: если не уверены — используйте буфер/level shifter. Подключение 5 В на линиях MOSI/SCK может повредить дисплей.

  3. Неправильная ориентация/цвета: попробуйте менять tft.setRotation() и инициализацию (некоторые варианты ST7789 требуют tft.init(240, 240) vs tft.init(240, 320); для 240×240 ставим 240,240).

  4. Медленная или неиспользуемая часть экрана: проверьте правильность ширины/высоты и пинов CS/DC/RST.

  5. Если модуль подписан SCL/SDA — это SPI, но названия похожи на I2C; ориентируйтесь по остальным пинам (CS, DC, RST) — это SPI-дисплей.