Pentru a afisa diferite informatii putem folosi si displayul LCD 160X128 ST7735 impreuna cu placa de dezvoltare STM32 BluePill.

    Acest display se va alimenta cu o tensiune de 3.3V iar conexiunile cu placa de dezvoltare se fac in felul urmator:

Display LCD ST7735 STM32 BluePill
CS PA3
RST PA2
RS PA4
SDA PA7
CLK PA5

   De asemenea vom avea nevoie si de 2 librarii aditionale: Adafruit-ST7735-Library si Adafruit-GFX-Library.

    Dupa instalarea librariilor aditionale vom folosi urmatorul sketch pentru a testa functionarea displayului:

#include <Adafruit_GFX.h>    // includere librarie GFX
#include <Adafruit_ST7735.h> // includere librarie pentru flosirea driverului ST7735
#include <SPI.h>
#define TFT_CS        PA3
#define TFT_DC        PA4
#define TFT_RST       PA2
//creem metoda de apelare a functiilor din librariile incluse
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("STM32 BluePill 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);
}

    Un video cu montajul in functiunea puteti vedea mai jos:

 

Nu sunt comentarii

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