Saturday, April 18, 2015

Hello World 0.96 inch 128X64 I2C OLED, on Arduino Uno, using u8glib library

It's a 0.96" 128X64 OLED, I2C (or IIC) interface, with SSD1306 driver, 3.3/5V compatible.


There are 4 pin on the OLED module, GND, VCC, SCL and SDA. Connect to Arduino as:
GND - GND on Arduino Uno
VCC - 5V on Arduino Uno
SCL - A5 on Arduino Uno
SDA - A4 on Arduino Uno


u8glib (Universal Graphics Library for 8 Bit Embedded Systems) is a  graphics library with support for many different displays.

This video show how to download u8glib, import the library from the "Add Library" Menu in Arduino IDE, and run the HelloWorld example in the library.

In the HelloWorld, only un-comment the following constructor to make it work:
U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NONE|U8G_I2C_OPT_DEV_0);


More examples using 0.96 inch 128X64 I2C OLED:
Walking bitmap on 0.96 inch 128X64 I2C OLED x Arduino Nano
Display waveform on mini OLED with Arduino Nano
Arduino Nano: Capture analog input in Timer Interrupt
Arduino Nano + GY-271 (Digital Compass module) + OLED
Simple Compass - Arduino Nano + GY-271(HMC5883L) + mini-OLED
- NodeMCU (ESP8266) to display on 128x64 I2C OLED

Related:
Hello World 1.3 inch IIC/SPI 128x64 OLED x Arduino, using u8glib library



3 comments:

  1. Did you make or find the Fritzing part for the OLED screen?

    ReplyDelete
    Replies
    1. https://github.com/squix78/esp8266-fritzing-parts/tree/master/OLED_SSD1306_I2C_128x64

      Delete
  2. Saludos amigo.. ante todo Gracias por el aporte q estas dado con estos tutoriales me an ayudado mucho...

    tengo una pregunta haz usado esta misma pantalla con la libreria Adafruit ??

    en cierto modo o nose si es por mi poca experiencia encuentro la libreria "u8g" algo limitada... y me gustaria usar esta pantalla con la libreria Adafruit antes mencionada.

    He estado intentando usar la libreria Adafruit con mi pantalla SSD1306 de 128x64 (i2c) obviamente de 4 pines GND-VCC-SCL-SDA.... usando el Codigo de ejemplo de la libreria llamado ssd1306_128x64_i2c.ino ya configure el Ancho de pantalla como solicita el codigo:

    #define SSD1306_I2C_ADDRESS 0x3D //<<< Seleccion de 128x64
    // Address for 128x32 is 0x3C
    // Address for 128x64 is 0x3D (default) or 0x3C (if SA0 is grounded)

    #define SSD1306_128_64 //<<< Seleccion de 128x64
    // #define SSD1306_128_32
    // #define SSD1306_96_16

    Compilo el codigo y no arroga errores ni nada parecido pero igual en la pantalla no muestra nada y con la libreria "u8g" si trabaja sin problema..

    Podrias ayudarme con esto?
    Gracias de antemano...

    ReplyDelete