Raspberry Pi Pico LCD Ekran Kullanımı

Raspberry Pi Pico LCD Ekran Kullanımı

Bu rehberimizde, MicroPython programlama dilini kullanarak bir Raspberry Pi Pico LCD modülünü 4-bit paralel arayüz modunda nasıl süreceğimizi, ekranı nasıl başlatacağımızı, metin ve dinamik karakterleri nasıl yazdıracağımızı adım adım inceleyeceğiz. Proje adımlarına başlamadan önce, Pico dünyasına giriş yapmak ve temel kavramları incelemek için Raspberry Pi Pico Eğitim Serimizi takip etmenizi tavsiye ederiz.

Endüstriyel cihazlarda ve hobi projelerinde veri görselleştirmek için en yaygın kullanılan ekranların başında klasik HD44780 denetleyicili 16×2 Karakter LCD ekranlar gelir.

16×2 Karakter LCD Ekranın Çalışma Mantığı

16×2 LCD ekranlar, isimlerini aynı anda yan yana 16 karakter barındırabilen 2 satıra sahip olmalarından alırlar. Ekrandaki her bir karakter hücresi, arka planda 5×8 piksel noktasından (dot matrix) oluşan bağımsız bir alandır. Dolayısıyla ekran üzerinde toplam 32 karakter hücresi ve bu hücreleri oluşturan 1280 adet bağımsız sıvı kristal piksel bulunur.

16x2 LCD Karakter Piksel Yapısı
Ekran üzerindeki tek bir karakter hücresinin 5×8 piksel nokta matrisi yapısı

Bu denli çok sayıda pikseli tek tek mikrodenetleyici pinleriyle kontrol etmek imkansız olduğu için, ekran modülünün arkasında Hitachi HD44780 (veya muadili) entegre arayüz sürücüsü yer alır. Bu entegre, mikrodenetleyiciden gelen komut ve verileri alarak ekran üzerindeki pikselleri sürer. Ekranın detaylı komut setini ve elektriksel özelliklerini incelemek için resmi HD44780 Datasheet Belgesini indirebilirsiniz.

16×2 LCD Modülün Pin Şeması ve Görevleri

16x2 LCD Ekran Pin Şeması

Karakter LCD modüllerinde standart olarak 16 adet fiziksel pin bulunur. Bu pinlerin detaylı bağlantı görevleri ve lojik seviyeleri aşağıdaki tabloda özetlenmiştir. Pin yapıları hakkında daha detaylı bilgi için Arduino ile hazırladığımız 16×2 LCD Ekran Modülü Kılavuzu yazımıza da göz atabilirsiniz.

Pin NoPin AdıTipGörev AçıklamasıBağlantı Hedefi
1GNDGüçSistem şase bağlantısıGND (Şase) hattına bağlanır
2VCCGüçSürücü entegre besleme voltajı (4.7\text{V} - 5.3\text{V})Pico VBUS (5\text{V}) pinine bağlanır
3V0 (VEE)KontrolSıvı kristal kontrast ayarı10k Potansiyometre orta ucuna bağlanır
4RSKontrolKomut / Veri Kaydı seçimi (0: Komut, 1: Veri)Pico GPIO16 pinine bağlanır
5R/WKontrolOkuma / Yazma seçimi (0: Yazma, 1: Okuma)GND (Yazma modunda sabit tutulur)
6E (Enable)KontrolYazma işlemini tetikleyen Yetkilendirme piniPico GPIO17 pinine bağlanır
7-14D0 – D7Veri8-bit paralel veri yolları4-bit modunda sadece D4-D7 pinleri kullanılır
15LED+ (A)GüçArka ışık LED anot ucu (+5V)VCC pini veya direnç üzerinden 5V’a bağlanır
16LED- (K)GüçArka ışık LED katot ucu (GND)GND hattına bağlanır

Raspberry Pi Pico LCD Bağlantı Diyagramı

Raspberry Pi Pico, lojik olarak 3.3\text{V} ile çalışırken, standart HD44780 LCD ekranların sürücü entegreleri kararlı karakter üretmek için 5\text{V} beslemeye ihtiyaç duyar. Bu nedenle ekranın VCC (Pin 2) pini, Pico’nun doğrudan USB portundan aldığı 5\text{V} çıkışını veren VBUS pinine bağlanmalıdır. Lojik kontrol pinleri (RS, E, D4, D5, D6, D7) ise Pico’nun GPIO hatlarına doğrudan bağlanabilir (3.3\text{V} sinyaller LCD girişleri tarafından yüksek seviye olarak algılanacaktır).

Raspberry Pi Pico LCD Bağlantı Şeması
Pico ile 4-bit paralel modda 16×2 LCD ekran bağlantı şeması

MicroPython ile 16×2 LCD Sürücü Yazılımı

LCD ekranı sürmek için kullanacağımız MicroPython kütüphanesini ve ana uygulama kodlarını bilgisayarınıza çekmek için Circuit Digest Pico LCD Deposu bağlantısını ziyaret edebilirsiniz. Bu klasörde `lcd_pico.py` kütüphane dosyası ve `main.py` uygulama dosyası yer almaktadır.

4-Bit Paralel İletişim Mantığı (Nibble Yönlendirme)

Pico’nun değerli GPIO pinlerini harcamamak adına, ekranı 4-bit modunda sürüyoruz. Bu modda, göndermek istediğimiz her 8-bitlik veri veya komut baytı, yüksek öncelikli 4-bit (high nibble) ve düşük öncelikli 4-bit (low nibble) olmak üzere iki parça halinde sırayla gönderilir. Kütüphanedeki `send2LCD8` fonksiyonu bu veri parçalama işlemini gerçekleştirir:

def send2LCD8(BinNum):
    # Üst 4 bitin (High Nibble) gönderilmesi
    d4.value((BinNum & 0b00010000) >> 4)
    d5.value((BinNum & 0b00100000) >> 5)
    d6.value((BinNum & 0b01000000) >> 6)
    d7.value((BinNum & 0b10000000) >> 7)
    pulseE()
    
    # Alt 4 bitin (Low Nibble) gönderilmesi
    d4.value((BinNum & 0b00000001) >> 0)
    d5.value((BinNum & 0b00000010) >> 1)
    d6.value((BinNum & 0b00000100) >> 2)
    d7.value((BinNum & 0b00001000) >> 3)
    pulseE()

Kütüphane Kullanımı ve Ana Uygulama (`main.py`)

Kütüphane içinde yer alan `setupLCD()` fonksiyonu, HD44780 entegresini 4-bit moduna sokacak özel başlatma komutlarını sırayla gönderir. `displayString(row, col, “Metin”)` fonksiyonu ise hedeflenen satır ve sütuna giderek metni ekrana basar. `main.py` dosyasında bu kütüphaneyi şu şekilde çağırıp kullanabiliriz:

from lcd_pico import *

# LCD'yi 4-bit modda başlat
setupLCD()

# 1. Satır 0. Sütuna yaz
displayString(1, 0, "Merhaba")

# 2. Satır 0. Sütuna yaz
displayString(2, 0, "Dunya")
longDelay(4000)

# Ekranı temizle ve yeni metin yaz
clearScreen()
displayString(1, 0, "devreyakan.com")

Thonny IDE üzerinde çalışırken, öncelikle `lcd_pico.py` kodunu açıp Dosya > Farklı Kaydet diyerek “Raspberry Pi Pico” içerisine aynı isimle kaydedin. Ardından `main.py` dosyasını da yine Pico içine kaydedip çalıştırın. Bu sayede donanım bağımsız olarak çalışacaktır.

Thonny ile Pico'ya Kütüphane Kaydetme
Dosyaları Thonny aracılığıyla doğrudan Pico hafızasına kaydedin

Donanım Kurulumu ve Kodun Tamamı

Kütüphane fonksiyonları ve başlatma rutinlerinin tamamını içeren tek parça halindeki entegre MicroPython kod bloğu aşağıda sunulmuştur:

LCD Ekran Kullanırken Sık Karşılaşılan Sorunlar ve Çözümleri

  • Farklı Karakterler veya Çince/Anlamsız Sembollerin Çıkması: Sinyal hatlarındaki bir temassızlıktan veya zamanlama (timing) kaymasından kaynaklanır. `d4-d7` lojik bağlantı kablolarının sırasını ve breadboard temas noktalarını kontrol edin; `pulseE()` içindeki gecikme sürelerini (`sleep_us`) gerekirse hafifçe artırın.
  • Arka Işığın (Backlight) Hiç Yanmaması: 15 ve 16 numaralı LED besleme pinlerini kontrol edin. 15 numaralı anot pininin +5V’a (100\Omega direnç üzerinden bağlanması önerilir), 16 numaralı katot pininin ise GND’ye doğrudan bağlı olduğundan emin olun.

Yorum yapma özelliği, forum tarafından gelen istek sebebiyle kapatılmıştır. Lütfen tartışmalar ve sorularınız için topluluk forumumuza katılın.