In acest articol vom vedea cum putem folosi un display OLED 128x64 cu driver SSD1306 impreuna cu placa de dezvoltare STM32F103* BluePill.

    Aceasta placa de dezvoltare cunoscuta sub numele de BluePill are un procesor de tipul STM32F103C8. Pentru programarea placii se poate folosi un programator serial bazat pe circuitul integrat CH340 (sau altul echivalent), un programator ST-Link (care va fi folosit in acest articol) sau , cu putina munca, putem folosi portul USB existent pe placa.

    Placa are un pret de 35 lei si poate fi cumparata de aici.

    Alimentarea displayului se face cu +3.3V iar pinii SDA si SCL se vor conecta la BluePill la pinii B6 (SCL) si B7 (SDA).

    Pentru a putea utiliza displayul OLED cu aceasta placa de dezvoltare va trebui sa incarcam e biblioteci aditionale. Acestea sunt urmatoarele:

1) Adafruit_SSD1306;

2) Adafruit-GFX-Library;

3) Adafruit_BusIO.

    Instalarea acestor librarii este simpla, se acceseaza meniul Schita > Incarcare Biblioteca > Adauga biblioteca.zip.

    Dupa incarcarea acestor librarii vom folosi urmatorul sketch pentru a testa functionalitatea codului:

#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>

#define SCREEN_WIDTH 128  //definim lungimea in pixeli a displayului
#define SCREEN_HEIGHT 64  //definim latimea in pixeli a displayului
#define OLED_RESET    -1  //pin reset sau -1 pentru interfata I2C
//crem metoda de apelare a functiilor din librariile externe
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);

void setup() {
  display.begin(SSD1306_SWITCHCAPVCC, 0x3C);   //initializare display
  display.clearDisplay();  //stergere display
  display.setTextColor(WHITE);   //setare culoarea fontului
  display.setTextSize(2);  //setare dimensiune text
  display.setCursor(0,0);  //setare pozitie cursor
  display.print("electronic");  //afisare text pe display
  display.setCursor(30,25);
  display.print("store");
  display.setCursor(90,45);
  display.print(".ro");
  display.display();  //functie pentru afisarea informatiilor setate mai devreme pe display
  delay(3000);
}

void loop() {
  display.clearDisplay();
  display.setTextColor(WHITE);
  display.setTextSize(2);
  display.setCursor(0,5);
  display.print("Testare");
  display.setCursor(0,25);
  display.print("display");
  display.setCursor(0,45);
  display.print("OLED");
  display.display();
  delay(3000);
  
  display.clearDisplay();
  display.setTextColor(WHITE);
  display.setTextSize(2);
  display.setCursor(0,5);
  display.print("128x64");
  display.setCursor(0,25);
  display.print("pixeli");
  display.display();
  delay(3000);

  display.clearDisplay();
  display.setTextColor(WHITE);
  display.setTextSize(2);
  display.setCursor(0,5);
  display.print("driver");
  display.setCursor(0,25);
  display.print("SSD1306");
  display.display();
  delay(3000);

  display.clearDisplay();
  display.setTextColor(WHITE);
  display.setTextSize(2);
  display.setCursor(0,5);
  display.print("Placa");
  display.setCursor(0,25);
  display.print("STM32F103*");
  display.setCursor(0,45);
  display.print("BluePill");
  display.display();
  delay(3000);

  display.clearDisplay();
  display.setTextColor(WHITE);
  display.setTextSize(2);
  display.setCursor(0,5);
  display.print("Multumim");
  display.setCursor(0,25);
  display.print("pentru");
  display.setCursor(0,45);
  display.print("vizionare");
  display.display();
  delay(3000);

  exit(0);
}

    Un filmulet cu montajul in functiune se poate vedea mai jos:

 

Nu sunt comentarii

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