A Tampilan 0,91 "OLED adalah layar kecil dan kontras tinggi yang sempurna untuk menampilkan teks, grafik, dan data sensor dalam proyek Arduino. Panduan ini akan memandu Anda kabel, pengkodean, dan menampilkan teks dan grafik menggunakan Modul OLED berbasis SSD1306 dengan Arduino.
1. Apa yang Anda butuhkan
✅ Dewan Arduino (UNO, mega, nano, dll.)
✅ 0,91 "Tampilan OLED (SSD1306, I2C)
✅ Kabel jumper
✅ IDE Arduino diinstal
🔹 Catatan: Tutorial ini berfokus pada Komunikasi I2C, yang hanya menggunakan Dua kabel (SDA & SCL), menjadikannya ideal untuk proyek sederhana.
2. Pengkabelan 0,91 "OLED ke Arduino (mode I2C)
Pin layar OLED | Arduino Uno Pin | Arduino Nano Pin |
---|---|---|
Vcc | 5v | 5v |
Gnd | Gnd | Gnd |
SDA | A4 (SDA) | A4 (SDA) |
Scl | A5 (SCL) | A5 (SCL) |
🔹 Untuk Arduino Mega: Menggunakan SDA (pin 20) dan SCL (pin 21).
3. Memasang pustaka yang diperlukan
Sebelum pengkodean, instal Adafruit SSD1306 Dan Adafruit GFX Perpustakaan:
- Membuka Ide Arduino.
- Pergi ke Sketsa → Sertakan Perpustakaan → Kelola Perpustakaan.
- Cari Adafruit SSD1306 dan instal.
- Cari Adafruit GFX dan instal.
4. Kode Dasar untuk Menampilkan Teks di OLED
Contoh ini menginisialisasi OLED dan ditampilkan "Halo, Arduino!".
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
// Define OLED screen size
#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 32
// Initialize OLED display (I2C address 0x3C)
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1);
void setup() {
Serial.begin(115200);
// Start OLED display
if (!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {
Serial.println("SSD1306 allocation failed");
for (;;);
}
display.clearDisplay(); // Clear buffer
display.setTextSize(1); // Text size
display.setTextColor(SSD1306_WHITE);
display.setCursor(10, 10);
display.println("Hello, Arduino!");
display.display(); // Show text on screen
}
void loop() {
// Nothing here (text is static)
}
🔹 Apa yang dilakukan kode ini:
✔ Menginisialisasi Tampilan SSD1306.
✔ Cetakan "Halo, Arduino!" di layar.
✔ Penggunaan Alamat I2C 0x3c (Beberapa modul dapat digunakan 0x3d).
5. Menampilkan grafik (baris, lingkaran, gambar)
Untuk menggambar bentuk, ubah kode menggunakan Fungsi ADAFRUIT GFX.
void setup() {
display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
display.clearDisplay();
// Draw a rectangle
display.drawRect(10, 10, 50, 20, SSD1306_WHITE);
// Draw a filled circle
display.fillCircle(90, 16, 10, SSD1306_WHITE);
display.display();
}
void loop() {}
🔹 Fungsi gambar lainnya:
✔ display.drawLine(x1, y1, x2, y2, color);
→ menggambar garis
✔ display.drawCircle(x, y, radius, color);
→ Menggambar lingkaran
✔ display.drawRect(x, y, width, height, color);
→ Menggambar persegi panjang
6. Contoh Teks Gulir
Contoh ini menggulir teks secara horizontal melintasi layar OLED.
void setup() {
display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
display.clearDisplay();
display.setTextSize(1);
display.setTextColor(SSD1306_WHITE);
display.setCursor(0, 10);
display.println("Scrolling Text...");
display.display();
// Start scrolling
display.startscrollleft(0x00, 0x0F);
}
void loop() {}
🔹 Fungsi Gulir:
✔ display.startscrollleft(start, stop);
→ Teks gulir kiri
✔ display.startscrollright(start, stop);
→ Teks Gulir Kanan
✔ display.stopscroll();
→ Berhenti menggulir
7. Tips Pemecahan Masalah
Masalah: Tampilan tidak menunjukkan apapun.
✅ Memeriksa Kabel (SDA & SCL terhubung dengan benar).
✅ Pastikan Alamat I2C OLED adalah 0x3c (atau coba 0x3d).
✅ Gunakan Pemindai I2C untuk mendeteksi perangkat:
#include <Wire.h>
void setup() {
Wire.begin();
Serial.begin(115200);
Serial.println("Scanning...");
for (byte address = 8; address < 120; address++) {
Wire.beginTransmission(address);
if (Wire.endTransmission() == 0) {
Serial.print("Found I2C device at 0x");
Serial.println(address, HEX);
}
}
}
void loop() {}
Masalah: Teks terlalu kecil atau terlalu besar.
✅ Menyesuaikan display.setTextSize(1);
(Peningkatan untuk teks yang lebih besar).
8. Aplikasi Praktis
✔ Menampilkan data sensor -Tampilkan bacaan waktu nyata dari DHT11, BMP280, dll.
✔ Tampilan jam - Combine with Modul RTC DS3231 untuk membuat jam digital.
✔ Sistem Menu - Gunakan tombol untuk menavigasi melalui menu.
✔ Indikator tegangan baterai - Pantau tingkat daya dalam proyek portabel.
9. Kesimpulan
Menggunakan a 0,91 "OLED dengan Arduino adalah cara yang bagus untuk ditambahkan output visual ke proyek Anda. Apakah Anda ingin menampilkan Teks, grafik, atau data sensor, layar kecil ini menawarkan Kontras tinggi dan konsumsi daya rendah.