Electronics

OLED 0.91 Inch LCD Display Module 128x32 (unsoldered Pins)

Out Of Stock

1

Description

This is an OLED (Organic Light-Emitting Diode) 128*32 dot matrix display module with I2C Interface. the Oled Screen Has Advantages over the Led ones, such as super-light, self-emission, high contrast, wide viewing angle, produce a brighter and crisper picture, and low power consumption. It is compatible with Arduino. It is easy to use with the help of the U8glib library for Arduino.

Using the OLED driver controller – SSD1306. It can communicate with the microcontroller by I2C Communication.

The OLED display doesn't need any backlight LED because it has its own light. This is why it has such high contrast, and up to 160 Degree wide viewing angle and can display deep black color.

And because there is no backlight Led that gives it a very low power advantage, On average the display uses about 20mA current.

The operating voltage of the SSD1306 controller is from 1.65V to 3.3V while the OLED panel requires 7V to 15V supply voltage. All these different power requirements are sufficed using internal charge pump circuitry. This makes it possible to connect it to an Arduino or any 5V logic microcontroller easily without using any logic level converter.

Specifications:

specifications
Driver IC: SSD1306
Size: 0.91 inch OLED
Resolution: 128 x 32
IIC interface

The definition of the pins
GND: Power Ground
VCC: Power + (DC 3.3 ~5v)
SCL: Clock Line
SDA: the Data Line

 Pin Headers: Unsoldered 

OLED Display Module Pinout

 

 

GND should be connected to the ground of Arduino

VCC is the power supply for the display which we connect the 5 volts pin on the Arduino.

SCL is a serial clock pin for the I2C interface.

SDA is a serial data pin for the I2C interface.


How to wire the I2C OLED Display to all Arduino Boards:

SCL SDA Arduino
A5A4Uno
A5A4Nano
A5A4Mega
2120Leonardo/Micro32


OLED With Arduino Schematic:

 

first, you need to download the libraries need fo the OLED to work:

Driver Library: Click Here to Download

And to display graphics primitives like points, lines, circles, rectangles, etc. we need to install this library: Click Here to Download

there is a problem with the Adafruit Library since 2019 so they made this library to make the first one work: Click Here to Download 

Solution for (fatal error: Adafruit_I2CDevice.h: No such file or directory)

Arduino Code for OLED Display to write text:

#include 
#include 
#include 
#define SCREEN_WIDTH 128 // OLED display width, in pixels
#define SCREEN_HEIGHT 32 // OLED display height, in pixels
// Declaration for an SSD1306 display connected to I2C (SDA, SCL pins)
#define OLED_RESET     4 // Reset pin # (or -1 if sharing Arduino reset pin)
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);
#define NUMFLAKES     10 // Number of snowflakes in the animation example
#define LOGO_HEIGHT   16
#define LOGO_WIDTH    16


void setup() {
  Serial.begin(9600);

  // SSD1306_SWITCHCAPVCC = generate display voltage from 3.3V internally
  if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) { // Address 0x3C for 128x32
    Serial.println(F("SSD1306 allocation failed"));
    for(;;); // Don't proceed, loop forever
  }

  // Show initial display buffer contents on the screen --
  // the library initializes this with an Adafruit splash screen.
  display.display();
  delay(2000); // Pause for 2 seconds

  // Clear the buffer
  display.clearDisplay();

  // Draw a single pixel in white
  display.drawPixel(10, 10, SSD1306_WHITE);

  // Show the display buffer on the screen. You MUST call display() after
  // drawing commands to make them visible on screen!
  display.display();
  delay(2000);
  
  testscrolltext();    // Draw scrolling text
  
  // Invert and restore display, pausing in-between
  display.invertDisplay(true);
  delay(1000);
  display.invertDisplay(false);
  delay(1000);
}

void loop() {
}

void testscrolltext(void) {
  display.clearDisplay();

  display.setTextSize(2); // Draw 2X-scale text
  display.setTextColor(SSD1306_WHITE);
  display.setCursor(10, 0);
  display.println(F("scroll"));
  display.display();      // Show initial text
  delay(100);

  // Scroll in various directions, pausing in-between:
  display.startscrollright(0x00, 0x0F);
  delay(2000);
  display.stopscroll();
  delay(1000);
  display.startscrollleft(0x00, 0x0F);
  delay(2000);
  display.stopscroll();
  delay(1000);
  display.startscrolldiagright(0x00, 0x07);
  delay(2000);
  display.startscrolldiagleft(0x00, 0x07);
  delay(2000);
  display.stopscroll();
  delay(1000);
}