Wyświetlacz OLED SSD1306 – I2C
Atrakcyjne cenowo i wizualnie, małe wyświetlacze OLED cieszą się bardzo dużą popularnością. Łatwość wdrożenia ich do budowanych projektów, dzięki dostępności gotowych bibliotek sprawia, że w ciągu kilku chwil możemy cieszyć się efektownym interfejsem użytkownika. Wyświetlacze tego typu nie wymagają podświetlania, mają bardzo mały pobór prądu i doskonałą widoczność – przy założeniu, że ich rozmiar jest dla nas satysfakcjonujący, to jest to doskonały wybór. Najczęściej spotykane wersje tych wyświetlaczy to niebieski, jednokolorowy OLED o rozdzielczości 128×64 px, ze sterowaniem po magistrali szeregowej – I2C lub SPI, o przekątnej 0,96„.
Koszt wyświetlaczy tego typu – z kontrolerem SSD1306 – zazwyczaj nie przekracza kilku USD, a najpopularniejsze z nich – mono, 128×64, I2C – można kupić już za ok. 3 USD.
Pełną dokumentację kontrolera znajdziecie TUTAJ
Do sterowania tego typu modułów graficznych dostępnych jest kilka bibliotek. Jedną z popularniejszych jest u8glib i na jej podstawie powstał poniższy przykład …
Sam układ jest banalnie prosty i sprowadza się do podłączenia zasilania (całość +5V) i magistrali szeregowej – SDA, SCL

Szczegółowy opis obsługiwanych funkcji :
https://github.com/olikraus/u8glib/wiki/userreference
Prosty kod (z powyższego przykładu) :
// OLED SSD1306 128x64 + Arduino NANO V3 - sterowanie po I2C
#include "U8glib.h" // bibioteka OLED I2C
U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NONE); //konstruktor
void setup()
{
u8g.firstPage();
do {
u8g.setFont(u8g_font_unifont);
u8g.drawStr( 12, 25, "TEST SSD1306");
u8g.setFont(u8g_font_profont29);
u8g.drawStr( 18, 58, "ywd.pl");
} while( u8g.nextPage() );
delay(1000);
}
void loop()
{
for ( int licznik = 1; licznik < 116; licznik++)
{
// petla obrazu
u8g.firstPage();
do {
u8g.setFont(u8g_font_profont29);
u8g.setPrintPos(52, 34);
u8g.print(licznik);
u8g.drawFrame(10,50,118,14);
u8g.drawBox(12,52,licznik,10);
} while( u8g.nextPage() );
}
}