1. Introduction
In this project, we will learn how to interface a 0.96-inch OLED Display (SSD1306) with Arduino. OLED displays are modern, compact, and provide better clarity compared to traditional LCD displays.
This project helps beginners understand I2C communication, display control, and text visualization using Arduino.
2. Components
- Arduino Uno / Nano
- OLED Display (SSD1306 – 0.96 inch)
- Jumper Wires
- Breadboard
3. Circuit and Connections
🔌 OLED Pin Connections
- VCC → 5V (Arduino)
- GND → GND (Arduino)
- SCL → A5 (Arduino Uno)
- SDA → A4 (Arduino Uno)
👉 (For Nano also same: A4 = SDA, A5 = SCL)
4. Circuit Working
The OLED display communicates with Arduino using the I2C protocol, which requires only two data lines:
- SDA (Serial Data Line) → Transfers data
- SCL (Serial Clock Line) → Synchronizes data
Arduino sends text/data through I2C, and the OLED displays it clearly on the screen.
5. Code
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1);
void setup() {
Serial.begin(9600);
if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {
Serial.println("OLED not found");
while(true);
}
display.clearDisplay();
display.setTextSize(2);
display.setTextColor(WHITE);
display.setCursor(0, 20);
display.println("Simple Basic");
display.setCursor(0, 35);
display.println("Electronics");
display.display();
}
void loop() {
}
6. Code Working
-
Wire.h→ Enables I2C communication -
Adafruit_SSD1306→ Controls OLED display -
display.begin()→ Initializes display -
display.clearDisplay()→ Clears screen -
setTextSize()→ Sets text size -
setCursor()→ Sets text position -
display.println()→ Prints text -
display.display()→ Updates screen
7. Tips
✔ Default I2C address is 0x3C
✔ If not working, try 0x3D
✔ Install libraries:
- Adafruit GFX
- Adafruit SSD1306
✔ Keep wiring correct (SDA & SCL important)
✔ OLED works faster than LCD
8. Uses
- Display sensor data
- Digital clocks
- IoT dashboards
- Menu systems
- Robotics display panels
9. Conclusion
OLED displays are powerful and easy to use with Arduino. With just 4 connections, you can display text, graphics, and real-time data. This makes it ideal for modern electronics and IoT projects.
✅ REQUIRED LIBRARIES
You need to install:
- Adafruit SSD1306
- Adafruit GFX
🔧 HOW TO INSTALL (STEP-BY-STEP)
🟢 Method 1 (Easiest – Recommended)
In Arduino IDE:
- Go to Sketch → Include Library → Manage Libraries
- In search box type:
👉 Adafruit SSD1306
👉 Click Install
- Then search:
👉 Adafruit GFX
👉 Click Install
🟡 Method 2 (Manual – Not needed usually)
- Download from GitHub
- Add ZIP library
👉 But Method 1 is enough 👍
⚠️ IMPORTANT NOTE
👉 Without these libraries:
❌ Code will show error
❌ Display will not work
🧠 WHY THESE LIBRARIES?
- Adafruit GFX → Graphics (text, shapes)
- Adafruit SSD1306 → OLED control
👉 Both are required together ✔
🔍 QUICK TEST
After installation:
- Upload your code
- If screen shows HELLO → ✅ success
⚡ COMMON ERROR FIX
❌ Error:
“SSD1306 not found”
👉 Fix:
- Check I2C address (0x3C / 0x3D)
- Check wiring (SDA/SCL)