top of page
Immagine del redattoreRobNico

TFT LCD 3.2″ Touch ili9341

Aggiornamento: 15 gen 2021

In questo articolo vedremo come utilizzare il display TFT LCD da 3.2 pollici con touch su Arduino Mega tramite la scheda TFT Shield.


Hardware:

1x Arduino Mega 2560

1 Touch LCD TFT da 3.2" ILI9341

1x TFT 3.2 "Shield










Utilizzeremo la libreria UTFT, per quando riguarda il display utilizzato è un ILI9341 e sul prodotto che ho ricevuto acquistato su AliExpress è riportala la sigla TFT_320QDT_9341.

Con questo dispositivo ho però riscontrato delle problematiche con l’utilizzo della libreria UTFT, ma come vedremo più avanti nell’articolo esiste una versione revisionata della libreria UTFT che risolve questi problemi e consente di utilizzare la libreria anche con questa tipologia di display.




La prima cosa da fare è assemblare la shield TFT sulla nostra scheda Arduino Mega, la procedura è abbastanza semplice poiché la piedinatura della shield corrisponde esattamente con i connettori di ingresso della Scheda Arduino Mega. Fatto questo è il momento di connettere sulla shield già installata su Arduino il nostro display nell’unica piedinatura disponibile seguendo il verso delle due schede già assemblate in precedenza.




A questo punto si può collegare la scheda al nostro pc ed aprendo l’IDE di Arduino. Prima di procedere dobbiamo scaricare i pacchetti software necessari, per questo esempio ho utilizzato come accennato in precedenza la libreria UTFT scaricabile da qui. Sullo stesso sito sono disponibili altre libreria che aggiungono funzionalità alla UTFT e che sono utilizzabili solo in associazione con la UTFT Library. Possiamo trovare la UTouch Library, questa libreria ci consente di sfruttare la funzionalità touch del display, la UTFT_Buttons consente di disegnare dei pulsanti sullo display, con all’interno testo o immagini. Sul display è disponibile anche un lettore di schede SD pertanto utilizzando la libreria UTFT_tinyFAT è possibile leggere il contenuto della scheda SD e visualizzare le immagini in essa contenute direttamente sul display.



Scaricata la libreria UTFT è sufficiente decomprimerla e posizionarla nella cartella libraries del vostro ide arduino.

Quando avete terminato di installare la libreria potete aprire l’ide di Arduino e dal menù File > Esempi > troverete la voce UTFT che riguarda la libreria che avete appena installato, dal menù selezionato Arduino (AVR) e poi UTFT_Demo_320x240, si aprirà lo sketch di esempio.

Scorrendo il codice potete trovare ad un certo punto la riga:


UTFT myGLCD(ITDB32S,38,39,40,41);

La sigla ITDB32S riguarda il modello del display che state utilizzando e i numeri 38,39,40,41 rappresentano i piedini della shield.


Una volta connesso al PC e caricato su Arduino uno dei qualsiasi degli esempi disponibili nella libreria UTFT, il risultato era schermo completamente bianco !! il mio primo pensiero sarà difettoso...oppure può essere non compatibile con la libreria, avevo già letto di alcune problematiche riguardanti questo tipo di modello di display.

Controllo la scheda del display e vedo la presenza di una sigla TFT_320QDT_9341, provo a cercare sul web e finalmante trovo la soluzione, una versione modificata della libreria UTFT scaricabile direttamente qui oppure qui, prima di installare questa versione occorre rimuovere la precedente versione ufficiale della libreria UTFT.


UTFT myGLCD(ITDB32S,38,39,40,41);

con la riga


UTFT myGLCD(ILI9341_16,38,39,40,41); 

Questa riga non funzionerà con la libreria UTFT ufficiale vi darà un errore in fase di compilazione, questo perché il modello di display ILI9341_16 non è definito nella libreria.


Una volta compilato e caricato l’esempio su Arduino otterrete questo risultato:












Passiamo ora a controllare il funzionamento del touch, se non lo avete già fatto scaricate qui è installate la libreria UTouch Library allo stesso modo in cui avete installato la libreria UTFT. Fatto questo riaprite l’IDE di Arduino e dal menù File > Esempi > UTouch, selezionate Arduino > UTouch_Calibration, questo esempio serve per calibrare il touch.

Compilate e caricate lo sketch su Arduino (se utilizzate il display TFT_320QDT_9341 o TFT_320QVT_9341 ricordatevi di sostituire la riga UTFT myGLCD ITDB32S,38,39,40,41 con la riga UTFT myGLCD ILI9341_16,38,39,40,41).


Seguite le istruzioni riportate sullo schermo per eseguire la calibrazione del touch, con il pennino cliccare sui quadratini che appaiono ai lati, nel punto centrale della croce cercando di essere il più possibile precisi , al termine vedrete comparire sul display alcuni valori come ad esempio:


CAL_X 0x03D100BIUL
CAL_Y 0x03D4019AUL
CAL_S 0x000EF13FUL

Appuntate questi valori e aprite il file presente nel percorso della cartella del vostro IDE Arduino \libraries\UTouch\UTouchCD.h con un qualsiasi editor di testo, e modificate i valori delle 3 variabili con i nuovi valori letti sul display salvate e chiudete l’editor, da questo momento il touch del dispositivo sarà correttamente calibrato.


// URTouchCD.h
// ----------
//
// Since there are slight deviations in all touch screens you should run a
// calibration on your display module. Run the URTouch_Calibration sketch
// that came with this library and follow the on-screen instructions to
// update this file.
//
// Remember that is you have multiple display modules they will probably 
// require different calibration data so you should run the calibration
// every time you switch to another module.
// You can, of course, store calibration data for all your modules here
// and comment out the ones you dont need at the moment.
//

// These calibration settings works with my ITDB02-3.2S.
// They MIGHT work on your 320x240 display module, but you should run the
// calibration sketch anyway. If you are using a display with any other
// resolution you MUST calibrate it as these settings WILL NOT work.
#define CAL_X 0x03D100BIUL
#define CAL_Y 0x03D4019AUL
#define CAL_S 0x000EF13FUL

Abbiamo visto come impostare il display TFT_320QVT_9341/QDDT, nei prossimi post vedremo come utilzzarlo in vari progetti, come ad esempio una stazione metereologica, una controller per acquario ecc...

 

601 visualizzazioni0 commenti

Post recenti

Mostra tutti

Comments


bottom of page