Arduino: orologio con lancette con display TFT (no RTC)

Nell’articolo di oggi vedremo come realizzare un orologio con lancette digitale con una board Arduino e un display TFT con driver ST7735 senza l’ausilio di un modulo RTC.

Per la guida di oggi utilizzeremo i codici e le librerie realizzate da Bodmer su github riguardo a questo progetto. Vediamo insieme cosa e come installare i vari file per far si che il progetto dell’orologio con lancette digitale funzioni.

Ecco qui il link github.

In questa cartella avremo una libreria per le componenti grafiche e vari fonti compatibili per i display TFT basati su ST7735 (e naturalmente per Arduino e processori AVR).

Le librerie contengono font di diverse dimensioni che possono abilitatate o disabilitate in fase di compilazione del codice per ottimizzare l’utilizzo della memoria FLASH.
I codici contenuti in questa cartella presente su GitHub sono stati testati su Arduino Uno, Mega (con processore ATmega328 o ATmega2560) e con schede compatibili.
Le librerie e i codici sono stati progettati per essere snelli e veloci. Per visualizzare una intera immagini in uno schermo TFT 160 x 128 sono necessari 85 ms. Le immagini possono essere estratte da una scheda SD e “processate” in 200 ms.
La configurazione delle varie scelte per i font, dei pin utilizzati per utilizzare il display TFT con driver ST7735 e/o di altre funzionalità vengono effettuate modificando il file User_Setup.h nella cartella della libreria. I caratteri e le funzioni possono essere facilmente disabilitati commentando le righe.

Ecco le funzioni più importanti che possono essere chiamate:

  • int drawUnicode(unsigned int uniCode, int x, int y, int size);
  • int drawNumber(long long_num,int poX, int poY, int size);
  • int drawChar(char c, int x, int y, int size);
  • int drawString(char *string, int poX, int poY, int size);
  • int drawCentreString(char *string, int dX, int poY, int size);
  • int drawRightString(char *string, int dX, int poY, int size);
  • int drawFloat(float floatNumber,int decimal,int poX, int poY, int size);

In sintesi, i parametri X e Y sono le coordinate per il disegno.

Ogni funzione restituisce il delta di posizione X alla fine dei caratteri stampati.

I caratteri sono distanziati proporzionalmente per dare un aspetto migliore.

orologio

Le specifiche tecniche di questo display sono le seguenti:

  • risoluzione 128×160 a 65 mila colori
  • dimensioni: 28x35mm
  • driver: st7735
  • 5v o 3.3v
  • Opzioni SD Card reader
  • Interfaccia SPI
  • 1,8″

materiali da utilizzare per il collegamento del display TFT 1,8″ alla board Arduino sono:

COLLEGAMENTO

Ci sono tantissimi display TFT da 1,8″ nel mercato, quindi il collegamento potrebbe cambiare da display a display. I display possono avere la posizioni di alcuni pin differente ma comunque sono presenti le “stesse sigle” che permettono quindi di effettuare correttamente il collegamento prendendo anche come riferimento altri display con la posizione dei pin diversa. Rispetto a questo display ce ne potrebbero essere altri con pin BLK (blacklight), che in questo caso non è presente, ma niente di preoccuparsi, lo puoi collegare al pin 12

Ora è supportato anche il display da 1,8″ 128×160 pixel basato sul driver ST7735. Per utilizzare questo display, caricare le librerie Adafruit_ST7735_AS e Adafruit_GFX_AS. Collegare l’UNO al display come segue:

  • UNO +5V per visualizzare pin 1 (VCC) e pin 8 (LED)
  • UNO 0V (GND) per visualizzare il pin 2 (GND)
  • Pin 7 digitale  (RESET)
  • Pin 8 digitale (AO)
  • Pin digitale 9 (CS)
  • Pin 11 digitale  (SDI)
  • Pin 13 digitale  (SCK)

Ecco qui il diagramma di collegamento

CARICARE CODICE RIGUARDANTE OROLOGIO CON LANCETTE DIGITALE

Il primo passo da compiere per caricare il codice riguardante l’orologio con lancette digitale consiste nell’aprire la pagina GitHub (cliccando qui) riguardo questo specifico progetto.

Clicca su Code e poi su “Download ZIP”

orologio

Estrai la cartella.

Ora sposta la cartella appena estratta all’interno del seguente percorso:

C:\Users\nomeutente\Documents\Arduino

In breve devi spostare la cartella appena scaricata all’interno della cartella “Arduino” contenuta a sua volta in “documenti”

Una volta effettuato questo passaggio puoi aprire la cartella installa e andare su “examples” e cliccare su “TFT_Clock_ST7735

Apri il file TFT_Clock_ST7735/TFT_Clock_ST7735.ino

Ora sei pronto a caricare il codice sulla propria board Arduino.

Ecco qui il risultato:

orologio

Esempi di collegamenti tra la scheda Arduino e il TFT possono essere trovati qui:

Simone Candido è un ragazzo appassionato del mondo tech nella sua totalità. Simone ama immedesimarsi in nuove esperienze, la sua filosofia si basa sulla irrefrenabile voglia di ampliare a 360° le sue conoscenze abbracciando tutti i campi del sapere, in quanto ritiene che il sapere umano sia il connubio perfetto tra cultura umanistica e scientifica.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.