Daca dorim sa afisam mai multe informatii si cu o calitatea mult mai buna (un display color) putem folosi displayul LCD 160x128 pixeli cu driver ST7735 impreuna cu placa de dezvoltare Lolin32 lite.

    Displayul folosit este cel din imaginea de mai jos:

imagine

    Pentru a folosi acest display va trebui sa folosim 2 librarii externe:

1) Adafruit-ST7735 si

2) Adafruit-GFX-Library.

    Instalarea se face simplu accesand meniul Schita > Incarcare biblioteca > Adauga biblioteca.zip.

    Alimentarea acestui display se face cu +3.3V iar conexiunile display-placa de dezvoltare se vor face in felul urmator:

Lolin32 Lite ST7735
+3.3V +3.3V
GND GND
GPIO5 CS
GPIO27 RST
GPIO26 RS
GPIO23 SDA
GPIO18 CLK

    Sketchul folosit pentru testarea acestui display este cel de mai jos:

#include <Adafruit_GFX.h>
#include <Adafruit_ST7735.h>
#include <SPI.h>
#define TFT_CS        5
#define TFT_DC        26
#define TFT_RST       27

Adafruit_ST7735 tft = Adafruit_ST7735(TFT_CS, TFT_DC, TFT_RST);
#define DELAY  3000

void setup() {
  tft.initR(INITR_BLACKTAB);  //initiem displayul
  tft.fillScreen(ST77XX_BLACK);   //desenam culoarea de fundal
  tft.setCursor(0, 30);  //setam pozitia cursorului
  tft.setTextColor(ST77XX_RED);  //setam culoarea textului
  tft.setTextSize(2);   //setam marimea fontului
  tft.setTextWrap(true);   //setam continuarea textului pe urmatoarea linie 
  tft.println("Vizitati site-ul www.electronicstore.ro!");   //afisam textul dorit
  delay(DELAY);
  tft.fillScreen(ST77XX_BLACK);
  tft.setCursor(0, 30);
  tft.setTextColor(ST77XX_BLUE);
  tft.setTextSize(2);
  tft.setTextWrap(true);
  tft.println("Lolin32 Lite cu un display LCD ST7735");
  delay(DELAY);
}

void loop() {
  tft.fillScreen(ST77XX_BLACK);
  tft.setCursor(0, 10);
  tft.setTextColor(ST77XX_BLUE);
  tft.setTextSize(2);
  tft.setTextWrap(true);
  tft.println("Desenare un singur pixel");
  tft.drawPixel(70, 70, ST77XX_WHITE);    //afisam un pixel la coordonatele dorite si in culoarea dorita 
  delay(DELAY);

  tft.fillScreen(ST77XX_BLACK);
  tft.setCursor(0, 10);
  tft.setTextColor(ST77XX_BLUE);
  tft.setTextSize(2);
  tft.setTextWrap(true);
  tft.println("Desenare o linie");
  tft.drawLine(10, 70, 100, 70, ST77XX_YELLOW);  //afisam o linie la coordonatele dorite si in culoarea dorita
  delay(DELAY);

  tft.fillScreen(ST77XX_BLACK);
  tft.setCursor(0, 10);
  tft.setTextColor(ST77XX_WHITE);
  tft.setTextSize(2);
  tft.setTextWrap(true);
  tft.println("Desenare a unui patrat");
  tft.drawRect(5, 60, 110, 40, ST77XX_RED);
  delay(DELAY);

  tft.fillScreen(ST77XX_BLACK);
  tft.setCursor(0, 10);
  tft.setTextColor(ST77XX_WHITE);
  tft.setTextSize(2);
  tft.setTextWrap(true);
  tft.println("Desenare a unui patrat cu fundal colorat");
  tft.fillRect(5, 80, 110, 40, ST77XX_GREEN);
  delay(DELAY);

  tft.fillScreen(ST77XX_BLACK);
  tft.setCursor(0, 10);
  tft.setTextColor(ST77XX_WHITE);
  tft.setTextSize(2);
  tft.setTextWrap(true);
  tft.println("Desenare a unui cerc");
  tft.drawCircle(45, 90, 15, ST77XX_CYAN);
  delay(DELAY);

  tft.fillScreen(ST77XX_BLACK);
  tft.setCursor(0, 10);
  tft.setTextColor(ST77XX_WHITE);
  tft.setTextSize(2);
  tft.setTextWrap(true);
  tft.println("Desenare a unui cerc cu fundal colorat");
  tft.fillCircle(55, 115, 25, ST77XX_MAGENTA);
  delay(DELAY);

  tft.fillScreen(ST77XX_BLACK);
  tft.setCursor(0, 10);
  tft.setTextColor(ST77XX_WHITE);
  tft.setTextSize(2);
  tft.setTextWrap(true);
  tft.println("Desenare a unui dreptunghi cu margini rotunjite");
  tft.drawRoundRect(25, 95, 75, 35, 6, ST77XX_CYAN);
  delay(DELAY);

  tft.fillScreen(ST77XX_BLACK);
  tft.setCursor(0, 10);
  tft.setTextColor(ST77XX_WHITE);
  tft.setTextSize(2);
  tft.setTextWrap(true);
  tft.println("Desenare a unui dreptunghi cu margini rotunjite si fundal");
  tft.fillRoundRect(15, 115, 85, 25, 6, ST77XX_YELLOW);
  delay(DELAY);


  tft.fillScreen(ST77XX_BLACK);
  tft.setCursor(0, 10);
  tft.setTextColor(ST77XX_WHITE);
  tft.setTextSize(2);
  tft.setTextWrap(true);
  tft.println("Desenare a unui triunghi");
  tft.drawTriangle(15, 130, 45, 70, 95, 110, ST77XX_CYAN);
  delay(DELAY);

  tft.fillScreen(ST77XX_BLACK);
  tft.setCursor(0, 10);
  tft.setTextColor(ST77XX_WHITE);
  tft.setTextSize(2);
  tft.setTextWrap(true);
  tft.println("Desenare a unui triunghi cu fundal");
  tft.fillTriangle(10, 140, 35, 80, 100, 110, ST77XX_MAGENTA);
  delay(DELAY);

  tft.fillScreen(ST77XX_BLACK);
  tft.setCursor(0, 10);
  tft.setTextColor(ST77XX_WHITE);
  tft.setTextSize(2);
  tft.setTextWrap(true);
  tft.println("Folosire caractere speciale");
  delay(DELAY);
  tft.fillScreen(ST77XX_BLACK);
   tft.setCursor(0, 40);
  tft.cp437(true);
  tft.print("Temperatura: 120");
  tft.write(0xF8);
  delay(DELAY);

  tft.fillScreen(ST77XX_WHITE);
  tft.setCursor(0, 10);
  tft.setTextColor(ST77XX_BLACK);
  tft.setTextSize(2);
  tft.setTextWrap(true);
  tft.println("Folosirea unui text negru pe fundal alb");
  delay(DELAY);

  tft.fillScreen(ST77XX_YELLOW);
  tft.setCursor(0, 10);
  tft.setTextColor(ST77XX_BLUE);
  tft.setTextSize(2);
  tft.setTextWrap(true);
  tft.println("Folosirea unui text albastru pe fundal galben");
  delay(DELAY);

  tft.fillScreen(ST77XX_BLACK);
  tft.setCursor(0, 10);
  tft.setTextColor(ST77XX_WHITE);
  tft.setTextSize(2);
  tft.setTextWrap(true);
  tft.println("Schimbarea orientarii display-ului cu 90 de grade");
  delay(DELAY);

  tft.setRotation(1);
  tft.fillScreen(ST77XX_BLACK);
  tft.setCursor(0, 10);
  tft.setTextColor(ST77XX_WHITE);
  tft.setTextSize(2);
  tft.setTextWrap(true);
  tft.println("Test display");
  delay(DELAY);

  tft.setRotation(0);
  tft.fillScreen(ST77XX_BLACK);
  tft.setCursor(0, 10);
  tft.setTextColor(ST77XX_WHITE);
  tft.setTextSize(2);
  tft.setTextWrap(true);
  tft.println("Schimbarea orientarii display-ului cu 180 de grade");
  delay(DELAY);

  tft.setRotation(2);
  tft.fillScreen(ST77XX_BLACK);
  tft.setCursor(0, 10);
  tft.setTextColor(ST77XX_WHITE);
  tft.setTextSize(2);
  tft.setTextWrap(true);
  tft.println("Test display");
  delay(DELAY);

  tft.setRotation(0);
  tft.fillScreen(ST77XX_BLACK);
  tft.setCursor(0, 10);
  tft.setTextColor(ST77XX_WHITE);
  tft.setTextSize(2);
  tft.setTextWrap(true);
  tft.println("Schimbarea orientarii display-ului cu 270 de grade");
  delay(DELAY);

  tft.setRotation(3);
  tft.fillScreen(ST77XX_BLACK);
  tft.setCursor(0, 10);
  tft.setTextColor(ST77XX_WHITE);
  tft.setTextSize(2);
  tft.setTextWrap(true);
  tft.println("Test display");
  delay(DELAY);
  tft.setRotation(0);

  tft.fillScreen(ST77XX_BLACK);
  tft.setCursor(0, 10);
  tft.setTextColor(ST77XX_WHITE);
  tft.setTextSize(2);
  tft.setTextWrap(true);
  tft.println("Afisare butoane multimedia");
  delay(DELAY);

  tft.setRotation(1);
  tft.fillScreen(ST77XX_BLACK);
  tft.fillRoundRect(0, 10, 78, 60, 8, ST77XX_WHITE);
  tft.fillTriangle(17, 20, 17, 60, 65, 40, ST77XX_RED);
  delay(500);

  tft.fillRoundRect(82, 10, 78, 60, 8, ST77XX_WHITE);
  tft.fillRoundRect(96, 18, 20, 45, 5, ST77XX_GREEN);
  tft.fillRoundRect(127, 18, 20, 45, 5, ST77XX_GREEN);
  delay(500);

  tft.fillTriangle(17, 20, 17, 60, 65, 40, ST77XX_BLUE);
  delay(DELAY);
  tft.setRotation(0);

  tft.fillScreen(ST77XX_WHITE);
  tft.setCursor(0, 50);
  tft.setTextColor(ST77XX_RED);
  tft.setTextSize(2);
  tft.setTextWrap(true);
  tft.println("Multumim pentru vizualizare");
  delay(5000);
}

    Sketchul este identic cu cel din acest articol.

Nu sunt comentarii

Acest website foloseste cookie-uri pentru o experienta placuta in timpul navigarii.