Questo display da 1,3″ 240×240 tipo ST7789 gestito tramite la scheda Arduino è a colori e presenta un’alta risoluzione, 260 ppi (Pixel Per Inch). Il display è del tipo In-Plane Switching o IPS e pilotabile tramite Interfaccia SPI.
Indice
Caratteristiche principali del display
- LCD IPS da 1,3″ con ampio angolo di visione di ±80°
- Display RGB a colori
- Display 240 x 240 ad alta risoluzione – 260 PPI
- Area: 23.4×23.4mm
- Dimensioni modulo: 28x39x12 m
- Interfaccia SPI senza pin CS
- Controller display: ST7789
- Tensione di alimentazione : 3,3 V
Interfaccia SPI
Questo display incorpora un interfaccia SPI che fornisce aggiornamenti rapidi del display.
Poiché è un dispositivo di sola scrittura, non è necessario che la SPI MISO sia collegata.
L’interfaccia non è dotata del pin CS (Chip Select ) il che riduce il numero di pin, ma non permette di avere altri dispositivi SPI sullo stesso bus contemporaneamente.
Connettore del modulo
La connessione al display avviene tramite un header a 7 pin.
PIN | Descrizione |
---|---|
GND | Pin GND in comune con l'MCU. |
VCC | Pin alimentazione 3,3 V. Da MCU o da fonte esterna |
SCL | Connettere a SPI SCL (Clock) |
SDA | Connettere a SPI MOSI (Dati) |
RE | Reset per il controller LCD ST7789. Normalmente HIGH, Portare LOW per ripristinare |
DC | Dati/Comando. Determina il tipo di dati da inviare al display. HIGH= Comando, LOW = Dati |
BLK | Controllo retroilluminazione. Se scollegato è sempre attiva |
Materiale utilizzato per il test
Sotto sono riportati i componenti minimi per il test del display 240×240 ST7789 tramite la scheda Arduino.
![]() Arduino UNO o suo clone |
![]() |
![]() Breadboard |
![]() Cavi di collegamento |
NOTA: in questo caso si è utilizzata una scheda Keyestudio PLUS. Completamente compatibile con l’ambiente di sviluppo Arduino IDE. Contiene tutte le funzioni della scheda Arduino UNO R3. Inoltre, alcuni miglioramenti che ne rafforzano notevolmente la funzione.
Collegamento del display
Il modulo display LCD da 1,3″ 240×240 tipo ST7789 funziona a 3,3 V. Il modulo non è dotato di un proprio regolatore da 3,3 V e quindi deve essere alimentato direttamente con 3,3 V.
Sul retro del modulo si trovano: un transistor con la sigla J3Y (S8050 – datasheet), alcuni resistori, e un condensatore che forniscono il controllo della retroilluminazione.
Il pin BLK può essere lasciato scollegato, in questo caso si lascerà sempre accesa la retroilluminazione.
NOTA: In rete viene a volte indicato che se si utilizza con un MCU da 5 V, occorre assicurarsi di includere dei traslatori di livello logico sulle linee dati per evitare possibili danni. Altre volte sono presenti delle resistenze o dei partitori. Dai test effettuati però si è rilevato che anche collegando direttamente le linee con vi sono problemi.
Sotto è riportato lo schema dei collegamenti con la scheda Arduino.
Libreria per driver ST7789
Per gestire il display si dovranno utilizzare due librerie.
- Adafruit ST7789 TFT library
- Adafruit GFX Library
La prima libreria Adafruit-ST7789 potrà essere installata tramite il gestore della libreria Arduino IDE ricercando “Adafruit-ST7789”. La libreria è compatibile anche con display che utilizzano driver ST7735. Al momento dell’installazione vi sarà chiesto di installare anche la libreria Adafruit seesaw, cliccare su Install all.
A fine installazione vi sarà data conferma
La seconda libreria è quella grafica Adafruit che può essere installata tramite il gestore della libreria Arduino IDE ricercando “gfx“.
Per informazioni su come fare, vedere l’articolo Arduino – Tutorial, come installare una libreria
Gestione del display
Nei demo della libreria ci sono vari esempi che contengono le istruzioni per i due tipi di driver e per il collegamento a varie schede di controllo. Per il collegamento con Arduino sono sufficienti le seguente impostazioni.
I 2 file di libreria sono inclusi nel codice principale come mostrato di seguito, l’inclusione della libreria Arduino SPI è facoltativa!
1 2 3 |
#include <Adafruit_GFX.h> // Core graphics library #include <Adafruit_ST7789.h> // Hardware-specific library for ST7789 #include <SPI.h> |
Le connessioni dei pin del modulo TFT ST7789 (CS, RST e DC) sono definite come mostrato di seguito. Gli altri pin del display (SDA e SCL) sono collegati ai pin SPI hardware di Arduino (pin digitale 11 e pin digitale 13).
1 2 3 |
#define TFT_CS 10 // pin CS #define TFT_DC 9 // pin Data/Command #define TFT_RST 8 // pin Reset, o -1 se collegato al pin reset Arduino |
La libreria Adafruit ST7789 viene inizializzata con questa riga:
1 |
Adafruit_ST7789 tft = Adafruit_ST7789(TFT_CS, TFT_DC, TFT_RST); |
Infine, il display TFT viene inizializzato utilizzando il seguente comando:
1 |
tft.init(240, 240, SPI_MODE2); // Init ST7789 240x240 |
Sketch utilizzato
Sotto è riportato lo sketch utilizzato per i test, in questo caso delle sole funzioni di testo.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
//----------------------- //Librerie, l'inclusione della SPI è facoltativa #include <Adafruit_GFX.h> // Core graphics library #include <Adafruit_ST7789.h> // Hardware-specific library for ST7789 #include <SPI.h> //Definizione dei pin del modulo TFT ST7789 (CS, RST e DC) //il pin CS in realtà non è utilizzato #define TFT_CS 10 // pin CS #define TFT_DC 9 // pin Data/Command #define TFT_RST 8 // pin Reset, o -1 se collegato al pin reset Arduino // Initializza la 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 240x240 tft.setRotation(2); //ruota di 180° tft.fillScreen(ST77XX_BLACK); tft.setTextSize(3); //Imposta la grandezza del testo tft.setTextColor(ST77XX_WHITE); //Imposta il colore del testo tft.setCursor(10, 10); tft.println("TEST DISPLAY"); //Stringa da visualizzare tft.setCursor(20, 50); tft.setTextColor(ST77XX_RED); //Imposta il colore del testo tft.println("IPS 240x240"); //Stringa da visualizzare tft.setCursor(20, 100); tft.setTextColor(ST77XX_YELLOW); //Imposta il colore del testo tft.println("Arduino UNO"); //Stringa da visualizzare tft.setCursor(20, 150); tft.setTextSize(2); tft.setTextColor(ST77XX_GREEN); //Imposta il colore del testo tft.println("WWW.ADRIROBOT.IT"); //Stringa da visualizzare } void loop() { } |
Altri esempi di collegamento del display
Sotto il collegamento del display con una scheda
Altri moduli display
Panoramica di altre tipologie di display utilizzati nei vari progetti presenti sul sito. Dai più semplici LCD 16×2, passando per i TFT con touch screen e quelli tipo OLED.