SSD1306 OLED Ekran Kullanımı ve Grafik Arayüz Tasarımı

👤 Yazar: ozcan 📅 Tarih: 17.07.2026 05:54 👁️ Görüntüleme: 11

SSD1306 OLED Ekran Kullanımı ve Grafik Arayüz Tasarımı

ssd1306 pin bağlantıları

Projelerinize görsel bir arayüz kazandırmanın en pratik ve bütçe dostu yolu 0.96 inç boyutundaki SSD1306 OLED ekranları kullanmaktır. Bu ekranlar, her pikselin kendi ışığını yayması sayesinde arka ışık (backlight) gerektirmez; bu da onlara inanılmaz yüksek bir kontrast oranı ve çok düşük bir güç tüketimi sağlar. Genellikle sadece 4 pinli I2C haberleşme arayüzünü (VCC, GND, SCL, SDA) kullandıkları için Arduino projelerinizde pin tasarrufu yapmanıza olanak tanırlar.

Arduino ssd1306 bağlantı şeması

I2C Adres Çakışması ve Çözümü: SSD1306 OLED ekranlar genellikle fabrikasyon olarak 0x3C veya 0x3D I2C adresine sahiptir. Eğer ekranı başlattığınızda hiçbir görüntü alamıyorsanız, ekranın arkasındaki direnç köprüsünü kontrol ederek veya bir I2C tarayıcı (I2C Scanner) kodu yükleyerek ekranınızın doğru adresini doğrulamalısınız.

OLED Ekran Başlatma ve Metin Yazdırma Kod Bloğu

Aşağıdaki kod, Adafruit firmasının popüler grafik kütüphanelerini kullanarak ekranı güvenli bir şekilde başlatır, ekran belleğini temizler ve farklı yazı boyutlarında Türkçe karakter kurallarına uygun metinler yazdırır:

#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>

// Ekran boyut tanımlamaları (Piksel cinsinden)
#define EKRAN_GENISLIK 128
#define EKRAN_YUKSEKLIK 64

// Reset pini bulunmayan I2C ekranlar için -1 tanımı kullanılır
#define OLED_RESET     -1

// Ekran nesnesini oluşturuyoruz
Adafruit_SSD1306 ekran(EKRAN_GENISLIK, EKRAN_YUKSEKLIK, &Wire, OLED_RESET);

void setup() {
  Serial.begin(9600);
  
  // Ekranı 0x3C I2C adresiyle başlatıyoruz (Gerekirse 0x3D ile değiştirin)
  if(!ekran.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {
    Serial.println("SSD1306 OLED ekran bulunamadi veya baglanti hatasi!");
    while(true); // Programı burada kilitle
  }
  
  // Ekran belleğinde kalan eski kalıntıları temizliyoruz
  ekran.clearDisplay();
  
  // --- Metin Yazdırma Uygulaması ---
  ekran.setTextSize(1);             // Yazı boyutu: 1 (En küçük boy, 6x8 piksel)
  ekran.setTextColor(SSD1306_WHITE); // Yazı rengi: Beyaz
  ekran.setCursor(0, 0);            // Başlangıç koordinatı (X=0, Y=0)
  ekran.println("SSD1306 OLED EKRAN");
  
  ekran.setTextSize(2);             // Yazı boyutu: 2 (Büyük boy, 12x16 piksel)
  ekran.setCursor(0, 20);           // Yeni satır başlangıcı (X=0, Y=20)
  ekran.println("Merhaba!");
  
  // Basit bir süsleme çizgisi çiziyoruz
  ekran.drawLine(0, 42, 128, 42, SSD1306_WHITE);
  
  ekran.setTextSize(1);
  ekran.setCursor(0, 50);
  ekran.println("    yenidir.com");
  
  // Yazılan tüm verileri ekrana fiziksel olarak gönderiyoruz
  ekran.display();
}

void loop() {
  // Ekran içeriği sabit kalacağı için loop içi boş bırakılmıştır
}

Kararlı Çalışma İçin display() Fonksiyonu Mantığı

Yeni başlayanların SSD1306 kullanımında en çok yaptığı hata, metin veya grafik çizdirme komutlarından sonra ekranın güncellenmediğini düşünmektir. Adafruit_SSD1306 kütüphanesi, doğrudan ekran yongasına yazmak yerine Arduino'nun RAM belleğinde sanal bir ekran tamponu (buffer) oluşturur.

Yazdığınız print(), drawCircle() veya drawLine() gibi komutlar sadece bu arka plandaki sanal belleği düzenler. Yapılan değişikliklerin ekranda görünmesi için mutlaka döngünün sonunda ekran.display() fonksiyonunu çağırmanız gerekir. Bu yöntem, ekran güncellemelerinin çok daha hızlı ve titremesiz gerçekleşmesini sağlar.

Kütüphane Gereksinimleri

Gereken kütüphaneleri Kütüphane Yöneticisinden adafruit ssd1306 aratarak listedeki adafruit ssd1306 kütüphanesini kurmanız gerekiyor.


💬 Yorumlar

Henüz yorum yapılmamış. İlk yorumu siz yapın!

Bir Yorum Bırakın

Güvenlik Kontrolü:

Yenidir.com
↑ Sayfa Başı
📞 İletişim ✉ E-Posta Gönder 🟥 YouTube
© 2026 Yenidir.com
Yenidir CMS V0.1