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.