Приобрел в китае экранчик GMT130-V1.0 IPS 240*240 на контроллере ST7789. Интерфейс SPI.
Углы обзора шикарные, пиксели мелкие.
2 дня убил на то, чтобы заставить его работать. Все оказалось довольно просто.
1) Напряжение питания экранчика VCC +3.3V
2) Напряжение сигнала должно быть +3.3V
3) У экранчика отсутствует пин CS (заземлен на заводе).
4) Пин экранчика BL - гасит подсветку экрана. Если заземлить - экран гаснет, не подключать никуда или подать +3.3V - горит постоянно.
Для трансформации сигнала Arduino с 5V в 3.3V используется Level Shifter 74HC4050AP. Вместо него можно использовать делители напряжения на резисторах, но это А) не спортивно, Б) пустая трата электричества.
Т.к. используется аппаратный SPI Ардуины пины SDA и SCK приходят на D11 и D13 , в итоге экранчик работает немного шустрее.
При проектировании своей поделки нужно помнить об этом, и начинать с подключения экрана, как самого тормознутого элемента. А все остальное навешивать на оставшиеся пины Ардуины.
Для управления экраном используется библиотека Adafruit
#include <Adafruit_GFX.h> // Core graphics library
#include <Adafruit_ST7789.h> // Hardware-specific library for ST7789
#include <SPI.h> // Arduino SPI library
// ST7789 TFT module connections
#define TFT_CS -1 // такого пина у экрана нет
#define TFT_DC 9 // define data/command pin
#define TFT_RST 8 // define reset pin, or set to -1 and connect to Arduino RESET pin
// Initialize Adafruit ST7789 TFT library
Adafruit_ST7789 tft = Adafruit_ST7789(TFT_CS, TFT_DC, TFT_RST);
void setup(){
tft.init(240, 240, SPI_MODE2); // Init ST7789 display 240x240 pixel
tft.setRotation(2); //перевернуть вверх ногами
}