Questo display LCD IPS da 1.28″ ha una risoluzione di 240×240 e un driver GC9A01. Questi moduli rotondi sono stati originariamente progettati per orologi intelligenti e applicazioni simili e forniscono un interessante cambiamento rispetto ai tipici moduli LCD o OLED rettangolari.
Indice
Descrizione
Questo display LCD IPS (In-Plane Switching) da 1.28″ ha una risoluzione di 240×240 e utilizza un driver GC9A01. Si connette tramite SPI e ha un’alimentazione con una tensione di 3,3Vcc.
Anche la connessione SPI lavora a 3,3Vcc, per cui se si utilizza un controller a 5Vcc, andranno utilizzati dei traslatori di livello logico per evitare possibili danni.
Il modello presentato supporta anche un lettore di memorie Micro SD.
Caratteristiche principali del display
Tipo: | display TFT circolare |
Dimensioni: | 1,28 pollici |
Risoluzione: | 240 RGB x 240 |
Passo del punto: | 0,135 x 0,135 |
Controllore: | GC9A01 |
Tipo LCD: | LCD IPS HD |
Interfaccia di comunicazione: | SPI |
Tensione di alimentazione: | 3,3-5 V CC |
Corrente di lavoro: | 20 mA |
Area attiva: | Ø32,4mm |
Numero di pin: | 8 pin con passo 2,54 mm |
Luminanza (cd/m2): | 400 (TYP) |
Retroilluminazione: | 2 LED bianchi in parallelo |
Lettore memorie: | Tipo TF Card |
Numero pin interfaccia: | 5 |
Misure modulo: | 50,22x36,35mm |
Peso | 15,83 g |
Driver GC9A01
Il driver del display è il tipo GC9A01 (datasheet) in versione SOC a chip singolo da 262.144 colori per display a cristalli liquidi a-TFT con risoluzione RGB 240×240 punti. Comprende un driver sorgente a 360 canali, un driver gate a 32 canali, 129.600 byte GRAM per dati di visualizzazione grafica di 240RGBx240 punti e circuito di alimentazione.
Il driver GC9A01 supporta interfaccia MCU bus dati parallela a 8/9/12/16/18 bit, interfaccia bus dati RGB a 6/12/16/18 bit e interfaccia periferica seriale a 3/4 linee (SPI).
L’area dell’immagine in movimento può essere specificata nella GRAM interna tramite la funzione di indirizzo della finestra. L’area della finestra specificata può essere aggiornata selettivamente, in modo che l’immagine in movimento possa essere visualizzata simultaneamente indipendentemente dall’area dell’immagine fissa.
Interfaccia SPI per display
Questo display incorpora un interfaccia SPI che fornisce aggiornamenti rapidi del display.
PIN | DESCRIZIONE |
---|---|
VCC | 3.5-5 V |
GND | GND |
CS | Chip select |
RES | Reset |
A0/DC | Data command |
SDA | Data IN |
SCK | Clock |
LED | Alimentazione Baklight |
Interfaccia per micro SD
La connessione al display avviene tramite un header a 5 pin. L’alimentazione è derivata dall’Header del display.
PIN | DESCRIZIONE |
---|---|
TF-CS | Chip Select |
TF-MOSI | Serial Data Output |
TF-MISO | Serial Data Input |
TF-SCK | Serial Clock |
CD | Card Detect |
Dove trovare i modulo display
Il modulo può essere acquistato presso AliExpress per esempio da questo link.
Materiale utilizzato per il test
Sotto sono riportati i componenti minimi per il test del display tondo 240×240 GC9A01 tramite la scheda Arduino.
![]() Scheda Arduino | ![]() Display IPS 240×240 driver GC9A01 |
![]() Breadboard | ![]() Cavi di collegamento |
Collegamento del display
Il modulo display tondo 240×240 GC9A01 funziona a 5 V. Sul modulo è presente un regolatore 662K 3.3V (datasheet) che fornisce la tensione di 3,3 V.Per la gestione della retroilluminazione è presente un transistor con la sigla Y1 (S8050 – datasheet), con alcuni resistori e un condensatore. Non sono presenti dei traslatori sui pin di comando per cui per ridurre la tensione nei fili di controllo si dovranno inserire delle resistenze da 220 Ω in serie.
Nel test è stata utilizzata, al posto della scheda Arduino UNO, una scheda KS0486 Keyestudio PLUS completamente compatibile con l’ambiente di sviluppo Arduino IDE. Contiene tutte le funzioni della scheda Arduino UNO R3 e alcuni miglioramenti che ne rafforzano notevolmente la funzione.
Sulla scheda sono presenti dei connettori per collegare direttamente i moduli. È possibile configurare i pin digitali per lavorare a una tensione di 3.3V evitando così di dover ricorrere ad un traslatore di livello o l’inserimento di resistenze.
Sotto è riportato lo schema dei collegamenti del display tondo 240×240 GC9A01
Libreria per driver GC9A01
Per gestire il display si dovranno utilizzare due librerie.
La prima libreria potrà essere installata tramite il gestore della libreria Arduino IDE ricercando “Adafruit GC9A01A “.
Se non già disponibile vi potrebbe essere richiesto di installare la libreria “Adafruit GFX Library”
Per informazioni su come fare, vedere l’articolo Arduino – Tutorial, come installare una libreria
Gestione del display
Per la libreria esiste già un demo dal titolo “graphictest“, oppure potere utilizzare il più semplice programma che ho creato.
I 2 file di libreria di gestione sono inclusi nel codice principale come mostrato di seguito.
1 2 3 | #include "SPI.h" #include "Adafruit_GFX.h" #include "Adafruit_GC9A01A.h" |
Le connessioni dei pin del modulo GC9A01 sono definite come mostrato di seguito.
1 2 3 | #define TFT_DC 9 #define TFT_CS 10 #define TFT_BL 7 |
Il display viene inizializzato con questa riga:
1 | Adafruit_GC9A01A tft(TFT_CS, TFT_DC); |
Infine, nella sezione Setup, viene attivata la retroilluminazione
1 2 | pinMode(TFT_BL, OUTPUT); analogWrite(TFT_BL, 140); |
Sketch utilizzato
Sotto è riportato lo sketch utilizzato per i test.
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 | #include "SPI.h" #include "Adafruit_GFX.h" #include "Adafruit_GC9A01A.h" #define TFT_DC 9 #define TFT_CS 10 #define TFT_BL 7 Adafruit_GC9A01A tft(TFT_CS, TFT_DC); void setup() { pinMode(TFT_BL, OUTPUT); analogWrite(TFT_BL, 140); tft.begin(); tft.setRotation(0); // Se necessario, regolare l'orientamento dello schermo tft.fillScreen(GC9A01A_GREEN); tft.setTextColor(GC9A01A_BLACK); tft.setTextSize(2); tft.setCursor(30, 110); tft.println("WWW.ADRIROBOT.IT"); tft.setCursor(40, 140); tft.setTextColor(GC9A01A_RED); tft.println("TEST GC9A01A"); } void loop() { } |
Altro programma con scritte scorrevoli
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 | #include "SPI.h" #include "Adafruit_GFX.h" #include "Adafruit_GC9A01A.h" #define TFT_DC 9 #define TFT_CS 10 #define TFT_BL 7 Adafruit_GC9A01A tft(TFT_CS, TFT_DC); void setup() { // inserisci qui il codice di installazione, da eseguire una volta: pinMode(TFT_BL, OUTPUT); analogWrite(TFT_BL, 140); tft.begin(); tft.fillScreen(GC9A01A_WHITE); yield(); } void loop() { for (int i = 0; i < tft.height(); i = i + 10) { tft.setCursor(25, i); tft.setTextSize(2); tft.setTextColor(GC9A01A_RED); tft.println("WWW.ADRIROBOT.IT"); tft.setTextColor(GC9A01A_BLACK); tft.println(" DISPLAY GC9A01A"); tft.setTextColor(GC9A01A_BLUE); tft.println(" 1.28inc 240X240"); tft.setCursor(90, i + 20); delay(200); tft.fillScreen(GC9A01A_WHITE); } } |
Altri esempi di display
Con un modulo 240×240 Driver ST7789 ESP32-devkit-v1
Con una scheda Arduino UNO
Altri moduli display per Wemos D1 mini
OLED shield 0,66 ” – 64 x 48 pixel
Display OLED Shield TFT 2.4″ a colori con funzione Touch – 340×240 pixel
OLED Shield 0.49″ – 128×64 pixel
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.