Pubblicato il

Corso Arduino SPI/I2C Display OLED

Premessa: Questo è un mini display OLED da 0,5 pollici, che ha le stesse dimensioni di una moneta di bronzo. Questo piccolo display ha una luminosità dello schermo di 450cd/m2 con contrasto e leggibilità estremamente alti. Contiene una matrice 60 x 32 e ogni pixel può essere controllato separatamente dal chip del driver. Pre questo motivo è possibile visualizzare qualsiasi immagine e parola sullo schermo. Il display OLED non richiede una retroilluminazione, il che riduce notevolmente il consumo energetico.

CARATTERISTICHE TECNICHE

  • Operating Voltage: 3.3V
  • PCB dimension: 17.8mm X 15.5mm
  • Screen size: 0.5″ inch (W x H: 15.30×10.20 mm)
  • Color: Monochrome (white)
  • OLED type: PM -OLED
  • OLED driver: LD7032
  • Pixels : 60 x 32
  • Contrast: 2000: 1
  • Communication: SPI, I2C

SCHEMATIC COLLEGAMENTI BOARD

LISTA MATERIALI

COME CONNETTERE PCB al Display OLED

Per prima cosa dobbiamo assemblare il PCB OLED e il display, fare attenzione in questo processo, il connettore del display è sottile e fine.

Fare molta attenzione nel maneggiare la pcb, consigliamo di utilizzare delle pinzette come nella foto illustrata.

SCHEMA DI COLLEGAMENTO

CODICE DI ESEMPIO

Poiché la connessione hardware è stata completata, il passaggio successivo sarà il caricamento del codice. Innanzitutto è necessario scaricare la libreria e spostare questi file nella cartella delle librerie Arduino, che si trova nella directory di installazione di Arduino. Fare clic qui per scaricare la libreria U8glib.

Librerie:

  • U8glib NEW-BSD: github.com/CainZ/0.5-inch-OLED
#include "U8glib.h"
U8GLIB_LD7032_60x32 u8g(9, 8, 11, 10, 12);

void setup(void) {
}
const uint8_t rook_bitmap[] PROGMEM = {
  0x00,         // 00000000
  0x55,         // 01010101
  0x7f,          // 01111111
  0x3e,         // 00111110
  0x3e,         // 00111110
  0x3e,         // 00111110
  0x3e,         // 00111110
  0x7f           // 01111111
};

void loop(void) {
  // picture loop
  u8g.firstPage();
  do {
    u8g.setFont(u8g_font_unifont);
    //       u8g.setFont(u8g_font_osb21);
    u8g.drawStr( 5, 20, "DFROBOT");
  } while ( u8g.nextPage() );
  delay(1000);
  u8g.firstPage();
  do {
    u8g.drawCircle(30, 20, 18);
    u8g.drawEllipse(26, 12, 7, 5,U8G_DRAW_UPPER_LEFT );
    u8g.drawEllipse(34, 12, 7, 5, U8G_DRAW_UPPER_RIGHT);
    u8g.drawTriangle(30,14, 27, 18, 33, 18);
    u8g.drawFilledEllipse( 30, 25, 10,5, U8G_DRAW_LOWER_LEFT);
    u8g.drawFilledEllipse( 30, 25, 10,5, U8G_DRAW_LOWER_RIGHT);
    u8g.drawLine(30, 13, 30, 16);


    u8g.drawFrame(0, 0,60 ,32);

  } while ( u8g.nextPage() );
  delay(5000);

  u8g.firstPage();
  do {
    u8g.drawBitmapP(30, 16,1, 8, rook_bitmap);
  } while ( u8g.nextPage() );
  delay(1000);
  u8g.firstPage();
  do {

  } while ( u8g.nextPage() );
  delay(2000);

}

Buon Progetto.