Cara menggunakan layar oled 0,91 "dengan Arduino

How to Use a 0.91" OLED Display with Arduino

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:

  1. Membuka Ide Arduino.
  2. Pergi ke Sketsa → Sertakan Perpustakaan → Kelola Perpustakaan.
  3. Cari Adafruit SSD1306 dan instal.
  4. 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.

Tinggalkan komentar

Notice an Issue? Have a Suggestion?
If you encounter a problem or have an idea for a new feature, let us know! Report a problem or request a feature here.