Arduino ile Nokia 5110 LCD Ekran Kullanımı

Arduino ile Nokia 5110 LCD Ekran Kullanımı arduino nokia 5110 lcd kullanımı

Bu yazımızda, Arduino Nokia 5110 LCD kullanımını anlatıyoruz. Nokia’nın emektar telefonlarından 5110’un LCD ekranını kurcalayan bir Maker, bu ekranın Arduino gibi mikroişlemcili geliştirme kartlarına kolay bir şekilde bağlanabileceğini keşfetmesi ile bu yolculuk başlıyor.

Bu ekranın beyni ve kalbi Philips tarafından yapılan tek çekirdekli PCD8544 CMOS LCD sürücüsüdür. Bu sürücü 84×84 piksel olan her hangi bir ekranı kontrol edebilmektedir. Mikroişlemcilere SPI iletişim yolu ile bağlanmaktadır.

Arduino Nokia 5110 LCD Ekran Kullanımı
Arduino Nokia 5110 LCD Ekran Kullanımı

5110 LCD Özellikleri

Görüntü TeknolojisiNokta LCD
MCU ArayüzüSPI
Ekran Boyutu1.5 inç
Çözünürlük84 × 48 piksel
Çalışma Gerilimi2.7V – 3.3V
Çalışma AkımıMaksimum 50mA
Görüş Açısı180 °

5110 LCD Bellek Yönetimi

PCD8544 LCD sürücüsünde, yansıtılacak bit motifini tutan ekran için yerleşik 504 bayt Grafik Görüntü Veri RAM’i (GDDRAM) bulunmaktadır. Bu hafıza alanı 6 bölüm olarak ayarlanmıştır. Her bölüm 84 sütun içerir. Ve her sütun 8 bit veri bulundurabilir.

İpucu

PCD8544, LCD ekran için yerleşik bir GDDRAM‘a sahip olmasına karşın, bellek içeriğini okuyamıyoruz. Ayrıca verileri okumak için ekran ara belleğini değiştirmekte pek olanaklı değildir.
İpucu olarak, kütüphane ATmega328P’den tampon olarak 504 bayt bellek ayırıyor. Böylece, ekran ara belleğini değiştirebilir ve daha sonra ATmega328P ‘nin belleğinden PCD8544 denetleyicisinin dahili belleğine toplu bir aktarım gerçekleştirebilirsiniz.

5110 LCD Pin Şeması

Arduino ile Nokia 5110 LCD Ekran Kullanımı arduino nokia 5110 lcd kullanımı

Reset(1): Ekranı sıfırlamak için kullanılır doğrudan Arduino’ya bağlarsanız kod yüklerken veya yenilerken otomatik sıfırlama yapılabilir.

CE: “Chip Enable” SPI veri yolu kullanılırken birden fazla cihaz arasından doğru cihazı seçmek için kullanılır.

DC: “Data Command” alınan veri veya komutun görüntülenip, görüntülenmemesi gösterir.

Din: “Data in” seri veri pini.

CLK: “Serial Clock” seri saat pini

Vcc: 3.3V girişi.

BL: Arka ekran ışığını kontrol etmek için kullanılır, Arduino PWM ya da potansiyometre ile kontrol edebilirsiniz.

GND: “Ground” Negatif girişi.

PCD8544 Kütüphanesi

PCD8544 LED sürücüsü kullanıma ne kadar açık olsada, tam anlamıyla kullanmak için bellek adresleme alanında yeterli bilgiye sahip olmak gerekiyor. Fakat PCD8544 kütüphanesi ile daha hızlı ve basit bir şekilde kontrol sağlayabilirsiniz. Bu yazımızda kullandığımız tüm kodlar bu kütüphane ile hazırlanmıştır.

Eğer indirip, klasöre atmakla uğraşmak istemiyorsanız, Arduino IDE’si üzerinden kütüphane yönetimi ile ekleyebilirsiniz.

Arduino ile Nokia 5110 LCD Ekran Kullanımı arduino nokia 5110 lcd kullanımı

Arduino Nokia 5110 LCD Devre Şeması

Sadece test yapmak için kullanmayı planlıyorsanız, bu şekilde kullanabilirsiniz fakat uzun süreli kullanımlar için GND,VCC,BL,CE pini hariç tüm pinlere 10k ohm, CE pinine 1k ohm direnç bağlamanız gerekiyor, bu sayede fazla akımı sınırlamış olursunuz.

Arduino ile Nokia 5110 LCD Ekran Kullanımı arduino nokia 5110 lcd kullanımı

Arduino Kodu

Kodu yüklemeden önce kütüphanenin yüklü olduğundan, portların seçili olduğundan ve bağlantıların yapıldığından emin olun.

Arduino ile Nokia 5110 LCD Ekran Kullanımı arduino nokia 5110 lcd kullanımı

Meraklılar İçin Kütüphanenin Örnekleri

Metin Görüntüleme

setTextSize(): Metin font boyutunu ayarlamak için kullanılır.

setTextColor(): Yazı rengini ayarlamak için kullanılır, koyu arka planı için

BLACK

, parlak arkaplan için

WHITE

yazmak gerekiyor

setCursor(X,Y): Piksellerin başlayacağı koordinatlar.

print(” “): ve println(” “): Metni ekrana yazdırmak için.

display(): Bellekteki verileri ekrana yazdırmak için kullanılır.

Renkleri Ters Çevrilmiş Metin

Ters çevrilmiş metni görüntülemek için setTextColor(FontColor,BackgroundColor) işlevini çağırmak gerekiyor. Daha önce yalnızca bir parametre çağırdığımızı görebilirsiniz. Ancak şimdi iki parametre çağırıyoruz. Bu, Function overloading adı verilen olayla yapılmaktadır. İşlev aşırı yüklenmesi olarak bilinen bu olay, aynı isimde ancak farklı parametre kümesiyle birden çok işlev oluşturma işidir. Aşırı yüklenmiş bir işleve yapılan çağrılar, geçirilen parametrelere bağlı olarak bu işlevin belirli bir uygulamasını çalıştırır.

Bu kodda geçen setTextColor(BLACK, WHITE) kodu, dolu arka plan üzerinde siyah metin oluşturacaktır.

Renkleri Tersine Çevirme

Yazı Tipi Boyutu

Makalenin başlarında, setTextSize() yazı tipi boyutunu ayarlamak için bu fonksiyonu çağırdık ve parametre olarak 1’i seçtik. Negatif olmayan bir tam sayı girerek yazı tipini ölçeklendirmek için bu işlevi kullanabilirsiniz.

Örnek Olarak:

Yazı fontunu 1 seçerseniz karakterler 5×7 formatında oluşturulur, eğer 2 seçerseniz 10×14 formatında oluşturulur.

İpucu

Adafruit_GFX kütüphanesi yazı tipini oluşturan fonksiyonlara sahiptir. Varsayılan olarak tek aralıklı ve tek format yazı tipi seçilidir. Ancak, Adafruit GFX kütüphanesinin yeni sürümleri alternatif yazı tiplerini kullanma şansı sunar. Kütüphaneyle birlikte birkaç alternatif yazı tipi gelir, ayrıca yenilerini ekleme özelliği vardır.

Rakamları Görüntüleme

Rakamlar LCD ekranda sadece print() veya println() fonksiyonu ile görüntülenebilir. Bu işlevlerin aşırı yüklenmiş bir uygulaması 32 bit işaretsiz int olarak kabul eder, bu nedenle yalnızca 0 ile 2^32=4,294,967,295 arasındaki sayıları görüntüleyebilirsiniz.

Sayılar için Taban Belirtme

print() ve println() işlevlerinde, kullanılacak tabanı (format) belirten isteğe bağlı ikinci bir parametre bulunur; izin verilen değerler BIN (ikili veya taban 2), OCT (sekizli veya taban 8), DEC (ondalık veya taban 10), HEX (onaltılık veya taban 16) ‘dır.

Örneğin:

  • print (78, BIN) “1001110” verir
  • print (78, OCT) “116” verir
  • print (78, DEC) “78” verir
  • print (78, HEX) “4E” verir
  • println (1.23456, 0) “1” verir
  • println (1.23456, 2) “1.23” verir
  • println (1.23456, 4) “1.2346” verir

ASCII Sembollerini Görüntüleme

print() ve println() fonksiyonları ekrana insan tarafından okunabilen ASCII metni olarak veri gönderirken, write() fonksiyonu ekrana ikili veri gönderir. Bu nedenle, ASCII sembollerini görüntülemek için bu işlevi kullanabilirsiniz. 3 numaralı örnek kütüphanede kalp sembolüne denk gelmektedir.

Metin(Yazı) Döndürme

0 – Ekranı standart yatay yönde tutar.
1 – Ekranı 90 ° sağa döndürür.
2 – Ekranı ters çevirir.
3 – Ekranı 90 ° sola döndürür.

Geometrik Şekiller

Dikdörtgen Çizimi

Yuvarlak Kenarlı Dikdörtgen Çizim

Çember, Daire, Yuvarlak

Üçgen Çizimi

BITMAP Oluşturmak

5150 LCD ekranda resim gibi dosyaları göstermek için elimizde olan görselleri bitmap formatına çevirmemiz gerekiyor. Bu çevirmeyi isterseniz LCD Assistant üzerinden isterseniz internetten image2cpp

üzerinden yapabilirsiniz.

image2cpp Kullanımı

Resminizi bir diziye dönüştürebilen image2cpp adlı çevrimiçi bir uygulama var. Image2cpp, LCD Asistan’dan daha yeni ve daha kullanışlıdır. Her hangi bir resmi çevirmek için siteyi açın ve istediğiniz görseli seçin;

Arduino ile Nokia 5110 LCD Ekran Kullanımı arduino nokia 5110 lcd kullanımı

Görüntünüzün boyutları, Görüntü ayarları altındaki Tuval boyutu kısmında bulunur. Görüntüyü 84 × 48 olarak değiştirin ve uygun Ölçeklendirme seçeneğini işaretleyin.

Son olarak, en önemli seçeneği değiştirin (Brightness threshold). Eşiğin ayarlanması bu seviyenin üstündeki pikselleri beyaz ve siyahın altındaki pikselleri yapar. Detayların belirgin olması için 171 değerini öneriyoruz.

Arduino ile Nokia 5110 LCD Ekran Kullanımı arduino nokia 5110 lcd kullanımı

Önizleme kısmı ayarlarınızda yaptığınız değişiklikleri yansıtır. Ayarları göz önünde tutarak değiştirebilirsiniz.

Arduino ile Nokia 5110 LCD Ekran Kullanımı arduino nokia 5110 lcd kullanımı

Sonuçtan memnun kaldığınızda, veri dizisini oluşturmaya devam edebilirsiniz. Arduino Kodu olarak çıkış formatını seçin ve Kod oluştur butonuna tıklayın.

Arduino ile Nokia 5110 LCD Ekran Kullanımı arduino nokia 5110 lcd kullanımı

Çıktıyı doğrudan örnek kodumuzla kullanabilirsiniz. Sadece uygun şekilde çağırdığınızdan emin olun. Ardından diziyi drawBitmap() fonksiyonu içinde çağırın.

Arduino ile Nokia 5110 LCD Ekran Kullanımı arduino nokia 5110 lcd kullanımı

LCD Assistant Kullanımı

Aşağıdaki ayarları birebir yaparak bu şekilde kullanabilirsiniz, görseli seçtikten sonra çıktı olarak .c dosyası olarak kaydedin, kaydettiğiniz .c dosyasını Arduino projenizin klasörüne atıp doğrudan ekleyebilirsiniz.

Arduino ile Nokia 5110 LCD Ekran Kullanımı arduino nokia 5110 lcd kullanımı

Hızlı Kontrol Listesi

  • Besleme gerilimini 3.3V sınırında doğrulayın; 5V ile doğrudan sürmeyin.
  • SPI pin eşleşmesini kod ve bağlantı şemasıyla birebir kontrol edin.
  • Gist örneklerini tek tek deneyip her adımda ekran güncellemesini test edin.
  • Ek referans için Adafruit’in resmi kullanım notları: Nokia 5110 LCD guide.

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.