1

Arduino – Ecran TFT 1.8″ bazat pe ST7735

Modulul arată astfel :

Ecranul are o mărime de 1,8” ( inch ), o rezoluție de 128×160 pixeli și 18-biți culoare. Pentru comunicare, ecranul folosește protocolul SPI ceea ce înseamnă că putem folosi 4 pini.

Detalii tehnice :

  • rezoluție : 128×160
  • mărime : 1.8”
  • comunicare: SPI
  • include un slot pentru card microSD ( cititor de card )
  • tensiune de lucru : 3V3 – 5V
  • putere consumată: 50mA

După cum se observă din imaginile de mai sus modulul vine cu tot ce îi trebuie ( pini de ieșire, pini pentru citire/scriere datelor din/în cardul de memorie ) de aceea trebuie doar conectat la microcontroller ( placa Arduino ).

Configurația pinilor pentru ecran:

  • LED – lumina de background
  • SCK – semnalul de ceas
  • SDA – M.O.S.I ( Master Out Slave In )
  • A0 – sau DC ( Data Selection Signal )
  • Reset – reset
  • CS – Chip Select sau Chip Address
  • GND – masă
  • Vcc – tensiune alimentare 3V3 – 5V

Configurația pinilor pentru cititorul de card:

  • SD_CS – Chip Select sau Chip Address
  • SD_M.O.S.I – Master Out Slave In
  • SD_M.I.S.O – Master In Slave Out
  • SD_SCK – semnal de ceas

Tensiunea de Alimentarea a ecranului este cuprinsă între 3V3 și 5V dar este recomandat să folosiți 3V3 deși modulul conține un regulator de tensiune 3V3.

Cum conectăm acest ecran la placa Arduino :

Pin Arduino Pin modul Ecran TFT
3V3 LED
13 SCK
10 CS
9 A0 sau DC
8 Reset
11 SDA
GND GND
5V Vcc

Înainte de a programa placa Arduino trebuie spus că vom folosi câteva librării, și anume : Adafruit_ST7735.h, Adafruit_GFX.h, SPI.h . Dacă nu aveți aceste librării instalate le puteți instala astfel :

  1. Librăria ADAFRUIT ST7735 și ST7789

Se accesează meniul Tools —– Manage Libraries

Apoi căutăm librăria ADAFRIUT ST7735 and ST7789

Selectăm versiunea și dăm click pe butonul ”Install”

2. Librăria ADAFRUIT GFX

Pașii sunt aceiași ,prezentați mai sus, doar la căutarea librăriei scriem ADAFRUIT GFX Library

Cod Program:

#include <Adafruit_ST7735.h>
#include <Adafruit_ST7789.h>

#include <Adafruit_GFX.h>

#include <SPI.h>

//declarăm pinii folosiți
#define TFT_CS     10 
#define TFT_RST    8  
#define TFT_DC     9

Adafruit_ST7735 tft = Adafruit_ST7735(TFT_CS,  TFT_DC, TFT_RST);

#define TFT_SCLK 13   
#define TFT_MOSI 11  

//Adafruit_ST7735 tft = Adafruit_ST7735(TFT_CS, TFT_DC, TFT_MOSI, TFT_SCLK, TFT_RST);

void setup(void) {
  Serial.begin(9600);
    // Inițializăm tipul de ecran folosit: 1.8" TFT
  tft.initR(INITR_BLACKTAB);   // inițializare ST7735S chip, black tab


 
  tft.fillScreen(ST77XX_BLACK); // setăm fondul de culoare neagră a ecranului 

}

void loop() {
  tft.setTextWrap(false);// true-în cazul în care vrem ca mesajul afișat sa nu iasă din       //ecran
  //tft.fillScreen(ST77XX_BLACK);
  tft.setCursor(10, 10); //poziția cursorului
  tft.setTextColor(ST77XX_RED); //culoarea scrisului
  tft.setTextSize(1); //mărimea fontului, mărimea mesajului, cât de mare este scrisul
  tft.println("Hello World!"); //mesajul afișat
  //tft.setTextSize(5);// îl folosiți doar daca vreți sa vedeți diferența când setTextWarp //este false sau true
  //tft.println("Hello World!");
  delay(1000);
}

Încercați să folosiți și exemplele native din Arduino IDE legate de librăriile Adafruit ST7735 și Adafruit GFX.

Simulări în proteus:

Folosire setTextWrap(false) – vedeți cum al doilea mesaj iese din ecran
Folosire setTextWrap(true) – vedeți cum al doilea mesaj se încadrează în ecran