Display IPS 0.96″ 80×160/ST7735 – Arduino

Questo piccolo display misura solamente 30×24 mm,  la diagonale è di 0,96″ (area 13,7 x21,7 mm) con una risoluzione di display 80×160  pixel, driver ST7735, full colors (65K).
Il display è del tipo In-Plane Switching o IPS. Il collegamento è effettuato tramite un’interfaccia SPI.
Vedere anche l’articolo Display IPS 1.3″ 240×240/ST7789 – Arduino

display 80x160 ST7735

Caratteristiche del modulo display 80×160 ST7735 

  • LCD IPS da 0,96″ con ampio angolo di visione di ±80°
  • Display RGB a colori
  • Display 80×160 ad alta risoluzione
  • Area: 13,7×21.7mm
  • Dimensioni modulo: 30x24x12 m
  • Interfaccia SPI
  • Controller display ST7735
  • 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 è  dotata del pin CS  (Chip Select ) che permette di avere altri  dispositivi SPI sullo stesso bus contemporaneamente.

Connettore del modulo

La connessione al display avviene tramite un header a 8 pin.

display 80x160 ST7735

PINDescrizione
GNDPin GND in comune con l'MCU.
VCCPin alimentazione 3,3 V. Da MCU o da fonte esterna
SCLSPI SCL (Clock)
SDASPI MOSI (Dati)
RESRipristino LCD, necessario una volta dopo l'accensione
DCDati/Comando. Determina il tipo di dati da inviare al display. HIGH= Comando, LOW = Dati
CSSPI data/command selection pin
BLK Controllo retroilluminazione. Se scollegato è sempre attiva
Ourpcb

Schema elettrico del modulo

Lo schema del modulo display 80×160 ST7735 è molto semplice

Schema elettrico del modulo

Video di presentazione

 

Display a colori TFT ST7735 160×128 – 1.77″ – SPI

Un display basato sul driver ST7735 era già stato utilizzato per il display utilizzato con la scheda Arduino ESPLORA In quel caso la sua misura è di 1,77″ di diagonale, con risoluzione di 160 x 128 pixel.
Per ulteriori informazioni vedere il link.

Libreria per driver ST7735

Per gestire il display si dovranno utilizzare alcune librerie, sotto riportate:

La prima libreria Arduino-ST7735 potrà essere installata tramite il gestore della libreria Arduino IDE ricercando “Arduino-ST7789”.  La libreria è compatibile anche con display che utilizzano il driver ST7735.
Al momento dell’installazione vi sarà chiesto di aggiungere 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“.

display LCD 240x240 ST7789

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  impostazioni sottostanti.

I 2 file di libreria sono inclusi nel codice principale come mostrato di seguito, l’inclusione della libreria Arduino SPI è facoltativa!

Le connessioni dei pin del modulo TFT ST7735 (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).

La libreria Adafruit ST7735 viene inizializzata con questa riga:

Infine, il display TFT viene inizializzato utilizzando il seguente comando:

Test di base del display

Materiale utilizzato per il test di base

Sotto sono riportati i componenti minimi per il test del display 80×160 ST7735

Keyestudio PLUS

display 80x160 ST7735

Display 80×160 ST7735

Cavi di collegamento

Collegamento del display

Il modulo display 80×160 ST7735 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.
Sotto è riportato lo schema dei collegamenti con la scheda Arduino.

display 80x160 ST7735

Schema dei collegamenti del modulo

Si è utilizzata una scheda 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.
Altra particolarità:  alla scheda possono essere collegati dispositivi, nel nostro caso il display, alimentati a 3,3V o a 5V, un deviatore permette di scegliere la tensione disponibile sui pin.

Nel caso si utilizzi un normale Arduino è necessario utilizzare un convertitore di livello logico bidirezionale.  La sua funzione è di convertire livelli logici da 5 V a 3,3 V e viceversa.
Lo schema è molto semplice, di solito formato da un  MOSFET a canale N, tipo BSS138 e una coppia di resistori pull-up per realizzare lo spostamento di livello bidirezionale. Per realizzarne uno a più canali occorre ripetere lo schema più volte.
convertitore livello logico bidirezionaleconvertitore livello logico bidirezionale

Per maggiori informazioni vedere l’articolo Convertitore di livello logico bidirezionale 4 canali. Sfortunatamente, il display ha cinque ingressi di segnale da 3,3 V e gli shifter di livello hanno di solito al massimo  quattro canali.
In questo caso si è inserita una resistenza limitatrice ad 1kΩ sulla linea SCL.

Schema di collegamento con convertitore di livello

Foto del modulo collegato alla scheda di controllo

display 80x160 ST7735

Dettaglio dei collegamenti sulla scheda di controllo

Sketch utilizzato

Sotto è riportato lo sketch utilizzato per i test, in questo caso delle sole funzioni di testo.

Realizziamo un orologio con termometro

Un esempio di utilizzo del display è la realizzazione di un orologio con termometro. I principali componenti utilizzati sono oltre al display 80×160 ST7735:

  • Un Real-Time Clock Module DS1302
  • Un sensore analogico di temperatura LM35

Real-Time Clock Module DS1302

Il Modulo RTC con DS1302 si collega ad Arduino tramite un interfaccia SPI,  fornisce le informazioni relative a secondi, minuti, ore, giorno, data, mese e anno.

La fine del data mese viene regolata automaticamente per mesi con meno di 31 giorni e viene corretto l’anno bisestile, l’orologio funziona nei formati 12 ore e 24 ore con indicazione AM/PM.
Il chip DS1302 integra 31 bytes di RAM statica, è progettato per funzionare con una potenza molto bassa, meno di 1μW e prevede due alimentazioni: VCC2 per l’alimentazione principale e VCC1 per la batteria.
L’interfacciamento del DS1302 con un microprocessore è semplificata dall’utilizzo di una interfaccia seriale, per la comunicazione con l’orologio e la RAM sono utilizzati i pin CE, I/O e SCLK.
I dati possono essere trasferiti dall’orologio alla RAM 1 byte alla volta oppure in un unico invio da 31 bytes.
Per maggiori informazioni vedere l’articolo Real-Time Clock Module DS1302 con Arduino

Real-Time Clock Module ds1302

Foto del modulo RTC

Sensore analogico di temperatura LM35

Il sensore di temperatura utilizzato si basa sul sensore lineare LM35 a semiconduttore. Può essere utilizzato per rilevare la temperatura dell’aria ambiente.
Questo sensore offre un intervallo funzionale compreso tra 0 e 100 gradi Celsius. La sensibilità è di 10 mV per grado Celsius. La tensione di uscita è proporzionale alla temperatura.
In questo caso il sensore è Ks0022 keyestudio LM35 Linear Temperature Sensor

Foto del modulo con sensore LM35

Sotto è riportato un esempio di gestione del sensore, il valore della tensione letto tramite la porta di ingresso analogico viene poi convertito nel valore di temperatura utilizzando come riferimento la tensione di alimentazione che può essere 5 o 3,3V.
Nel caso specifico, per la particolarità della scheda utilizzata, la tensione di alimentazione sarà di 5V ma quella di riferimento, usata per la conversione, sarà di soli 3.3V.

Materiale utilizzato

Sotto sono riportati i componenti minimi per il test del display 80×160 ST7735

Keyestudio PLUS

Display IPS 80×160

Real-Time Clock Module DS1302

 

 

Modulo sensore LM35

 

Cavi di collegamento

Schema dei collegamenti

display 80x160 ST7735

Schema dei collegamenti per la realizzazione dell’orologio con termometro

display 80x160 ST7735

Foto dei dei collegamenti

Noterete una particolarità, l’alimentazione del modulo non è presa dai canonici pin +5V e GND ma dai pin digitali D2 (+5V) e D3 (GND).
Per questo motivo dopo averli impostati come OUTPUT, tramite il comando digitalWrite il pin D3 che è collegato a GND del modulo viene portato a livello LOW, mentre il pin D2 collegato a VCC del modulo viene portato a livello HIGH,

display 80x160 ST7735

Dettaglio del modulo senore di temperatura

display 80x160 ST7735

Codice utilizzato

Sotto è riportato il codice utilizzato.
Per impostare l’orologio occorre inserire almeno una volta le informazioni che saranno memorizzate e mantenute poi tramite l’alimentazione fornita dalla batteria.
Per fare questo occorrerà togliere il segno di commento alle linee sotto riportate e inserire i dati del momento in cui si trasferirà il programma nella memoria di Arduino.  Ricordandosi poi di commentarle nuovamente o cancellarle.

Segue il listato del programma completo

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.

Display_LCD_OLED_TFT