Out Of Stock
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 |
A5 | A4 | Uno |
A5 | A4 | Nano |
A5 | A4 | Mega |
21 | 20 | Leonardo/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); }