Arkadaşlar merhaba, bu yazımızda Nokia 5110 Ekranı ‘nı Arduino ile kullanmaktan bahsedeceğiz. Daha önceki bir yazımızda da Adafruit kütüphanesi ile Nokia 5110 kullanımından da bahsetmiştik.

Malzemeler

Nokia 5110 Ekranların farklı renk,bağlantı ve pin dizilimine sahip modelleri bulunmaktadır. Biz bu yazımızda iki farklı bağlantı şekline sahip Nokia 5110 ekranlardan bahsedeceğiz.

Pin Şeması

Pin şemasında da belirttiğimiz üzere 7 numaralı pin yani “Back Light” yada “Light” pininin bağlantısı değişiklik göstermektedir. Bazı modellerde bu pini Vcc (3.3V) ‘a bazı modellerde ise GND(Toprak)’a bağlamak gerekmektedir. Eğer Nokia ekranınızın ledleri yanmıyorsa sebebi bu farklılık olabilir. Aşağıda iki farklı bağlantı şeklini de görebilirsiniz.

Bağlantı Şemaları

  1. Arka Plan Ledleri için 7 Numaralı Pin VCC’ye bağlanır.
7 Numaralı pin’in VCC’ye bağlanması.

2. Arka Plan Ledleri için 7 Numaralı Pin GND’ye bağlanır.

7 Numaralı pin’in GND’ye bağlanması.

Arduino ve Nokia 5110 Ekranımızın bağlantılarını gerçekleştirdiğimize göre artık Arduino IDE’mize kütüphane kurulumuna geçebiliriz.

Kütüphaneler ve Dökumanlar

  • LCD5110-Basic.zip
  • LCD5110-Graph.zip
  • LCDAssistant.zip  ( Bu zip dosyası sayesinde siyah beyaz ve bitmap formatında olan görsellerinizi hex komutlarına(arduino-nokia5110 uyumlu) hale getirebilirsiniz. Daha sonra kod yazdığınız dosyaya buradaki resmi kaydederken .c uzantısı ile kaydederseniz resimlerinizi ekrana bastırabilirsiniz.)

Zip dosyalarını indirdikten sonra Arduinomuzun bilgisayarda bulunduğu konumuna giderek Arduino>Libraries ‘ ilerliyoruz. İndirdiğimiz zip dosyalarını buraya kopyalıyoruz ve “dışa aktar( extract here)” ile zip dosyamızın içindeki kütüphaneleri buraya aktarıyoruz.

Not: IDE Programınız daha önceden açık ise şuanda kütüphane görünmeyecektir. Kapatıp tekrar açmanızı tavsiye ederiz.

Kütüphane kurulumunuda gerçekleştirdiğimize göre biraz kodlarımızın ne işe yaradığından bahsedelim.

Kütüphane Fonksiyonları – Kodlar

  • #include <LCD5110_Basic.h>  // Basic.h kütüphanesinin çağırılması.
  • LCD5110 myGLCD (8,9,10,11,12 // Kaynak kodda myGLCD isimli nesne sırasıyla pin numaralı yazılarak tanımlanmıştır.
  • extern uint8_t  // LCD’de gösterilecek örneğin yazı tipi ( extern uint8_t SmallFont[]) tanımlanır.
  • myGLCD.InitLCD() // LCD Ekranı başlatır.
  • myGLCD.setFont(degisken) // LCD ekrana yazdırmak için kullanacağımız fontu ayarlar. Bu fonksiyon içine SmallFont (Yazı) , MediumNumbers (Orta boy sayı), BigNumbers (Büyük boy sayı) yazılabilir.
  • myGLCD.enableSleep() // komutu ile ekran uyku moduna alınır ve disableSleep() komutu ile uyku modundan çıkartılır.
  • myGLCD.clrScr() // Komutu ile LCD ekran temizlenir.
  • myGLCD.invert(true) // Komutu ile LCD ekranın siyah pixelleri beyaz,beyaz pixelleri de siyah olur. myGLCD.invert(false) komutu ile de eski haline çevrilir.
  • myGLCD.setContrast(degisken) // Kontrast ayarını yapar. Değişken olarak 0-70 arasında bir değer girilmelidir.
  • myGLCD.print(“metin”, x_koordinat, y_koordinat) // Komutu ile ekranın istenilen konumundan başlatılarak bir metin yazdırılır. x ve y koordinatları sayısal olarak girilebileceği gibi CENTER, LEFT ve RIGHT parametrelerini de alabilir.
  • myGLCD.printNumI(sayı, x_koordinat, y_koordinat) //  Komutu ile tamsayı bir değişken ekrana numerik olarak yazdırılabilir.

Ekrana Görsel Yazdırma

  • myGLCD.drawBitmap(x koordinat,y koordinat,grafik_ismi,x çözünürlük,y çözünürlük) // Ekrana düşük çözünürlükteki grafikleri çizdirmeye yarar. Ekrana çizdirmek için yukarıdaki LCDAssistant programını indirmemiz gerekmekte. Programı indirdikten sonra aşağıdaki gibi bir ekran karşımıza gelecek.

Buradan file> Load Image sekmesinden bitmap formatinda (.bmp uzantılı) ve siyah beyaz, düşük çözünürlüklü resmimi seçiyoruz. Resmi yükledikten sonra yine File menüsünden Save Output ile kaydediyoruz. Kayıt ederken .c uzantısı ile kayıt etmemiz ve bu dosyayı yazdığımız arduino kodu ile aynı dosyaya koymanız gerekiyor.

Kodları açtıktan sonra aşağıdaki değişiklikleri yapmamız gerekmektedir.

#include ile başlayan satır ekleme ve PROGMEM = { değişikliğini yapma.

Not: Benim görselimin adı logo2’idi.

Örnek Kodlar

Bitmap ile Görsel

#include <avr/pgmspace.h>
const unsigned char logo2 [] PROGMEM = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80,
0xC0, 0xE0, 0x30, 0x38, 0x38, 0x38, 0xF0, 0xF0, 0xE0, 0x80, 0x80, 0x10, 0x00, 0x60, 0x40, 0xC0,
0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xC0, 0xE0, 0x30, 0x38, 0x3C, 0x78, 0xF1, 0xE3,
0xC7, 0x8F, 0x1E, 0x3C, 0x7C, 0xF8, 0x30, 0x21, 0x03, 0x87, 0x0F, 0x1E, 0x1E, 0xF8, 0xF8, 0xE1,
0x41, 0x03, 0x0F, 0x0F, 0x07, 0xC2, 0xE0, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x87, 0x0F, 0x1E, 0x3C, 0x7C, 0xF8, 0xF9, 0xFF,
0xDF, 0x8F, 0x07, 0x02, 0x30, 0x78, 0xF0, 0xE2, 0x47, 0x0F, 0x1E, 0x0E, 0x06, 0x03, 0x01, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x8F, 0xC3, 0xE1, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x0E, 0x78, 0xF8, 0xE0, 0xE1, 0xC3,
0x07, 0x0F, 0x0E, 0x0C, 0x06, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xC0, 0xE0,
0xF0, 0xF8, 0xFC, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0x0F, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x01, 0x00,
0x00, 0x04, 0x06, 0x06, 0x06, 0x06, 0x02, 0x02, 0x10, 0x18, 0x1C, 0x1E, 0x1F, 0x1F, 0x1F, 0x1F,
0x0F, 0x07, 0x07, 0x0F, 0x0F, 0x07, 0x07, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
};
view raw deneme.c hosted with ❤ by GitHub
#include <LCD5110_Basic.h>
LCD5110 myGLCD(8,9,10,11,12);
extern uint8_t logo2[];
void setup()
{
myGLCD.InitLCD();
}
void loop()
{
myGLCD.drawBitmap(0, 0, logo2, 80, 40);
delay(4000);
for (int i=0; i<2; i++)
{
myGLCD.invert(true);
delay(500);
myGLCD.invert(false);
delay(500);
}
}

Kayan Yazı

#include <LCD5110_Graph.h>
LCD5110 myGLCD(8,9,10,11,12);
extern uint8_t SmallFont[];
int y;
void setup()
{
myGLCD.InitLCD();
myGLCD.setFont(SmallFont);
randomSeed(analogRead(0));
}
void loop()
{
y = random(0, 40);
for (int i=84; i>=-(34*6); i–)
{
myGLCD.print(" Robolink Teknoloji ", i, y);
myGLCD.update();
delay(50);
}
}

CEVAP VER

Lütfen yorumunuzu giriniz!
Lütfen isminizi buraya giriniz