Arduino 16x2 LCD Keypad Shield Kullanımı

LCD Shield Ardunio

Arduino 16x2 LCD Keypad Shield Kullanımı

 Bu gün sizlere bu yazımda Arduino ile LCD Keypad Shield modülünü nasıl kullanabileceğinizden, üzerinde açıkta kalan pinlerin hangi pinler olduğundan bahsedeceğim hadi hemen lafı uzatmadan yazımıza geçelim.

Arduino ya Shieldin Yerleştirilmesi

Shield üzerindeki pinler Arduino ya tam oturacak şekilde geçiriyor ve bastırıyoruz, pinler tamamen oturduğu zaman artık Arduino ile birlikte çalışmaya hazır demektir.

Arduino LCD Shield Arduino LCD Shield Arduino LCD Shield


Shield Üzerindeki Pinlere Göz Atalım

LCD Shield

Shield üzerinde 7 adet pin bulunuyor bu pinler Arduino üzerindeki şu pinlere denk geliyor, soldan sağa doğru 13, 12,11,3,2,1,0 

Aşağı tarafta bulunan pinler ise Reset, 3.3V, 5V, GND, GND, VIN, A1,A2,A3,A4,A5

Shield Buton Değerleri

Butonları analog veri olarak çektiğinizde hangi buton hangi analog değeri gönderiyor.

Shield Pinleri

Arduino üzerinde Shield bağlanırken hangi pin hangi işlemi görüyor.

LCD Ekranı Kullanırken Kullanabileceğimiz Komutlar

Komut

Özellik

lcd.clear()

Ekranı temizler.

lcd.print(data)

Ekrana yazı yazdırır

lcd.setCursor(x,y)

X ve Y satırlarına gelerek yazıya başlamanızı sağlar.

lcd.scrollDisplayLeft()

Ekranın sola doğru kaymasını sağlar

lcd.scrollDisplayRight()

Ekranın sağa doğru kaymasını sağlar

lcd.creatChar(num,data)

Özel karakter oluşturmak için kullanılır.

 

Shield Üzerinde Bulunan Ekran Nasıl Kullanılıyor ?

Eğer ki daha önce herhangi bir LCD ekran kullandıysanız bu shield üzerindeki LCD ekranı da çok raht bir şekilde kullanabilirsiniz, neredeyse kullanım olarak aynı sadece farklı olan şeyleri arka plan ışığını kapatıp açmak kod ile değil 10 numaralı pini kontrol ederek oluyor.

Ekrana yazı yazdırmak için kullandığımız kütüphane neredeyse diğer bütün LCD ekranlarda olduğu gibi "#include <LiquidCrystal.h>"

Örnek bir ekrana yazı yazdırma işlemi yapalım.
#include <LiquidCrystal.h>

// Ekran
LiquidCrystal Ekran(8, 9, 4, 5, 6, 7);


// Temel Fonksiyonlar
void setup() {
  Serial.begin(9600);
  BTSerial.begin(38400);
  Ekran.begin(16, 2);
  Ekran.setCursor(0,0);
  Ekran.print("UrhobA");
  Ekran.setCursor(0,1);
  Ekran.print("2. Satir");

}

void loop() {

}

Ekran üzerindeki tuşları nasıl kullanacağımıza gelecek olursak, normalde analog pinlerini kullanmasını bilen herhangi birisi çok rahat bir şekilde shield üzerinde bulunan tuşları kullanabilir, Analog değerler üzerinden gelen veriyi alıyoruz ve gerekli atamayı yaparak kullanabiliyoruz.

Hangi butondan hangi analog değer geldiğini yukarıda "pinlere göz atalım" kısmında bahsettim oraya bakabilirsiniz.

Eğer ki aşağıdaki koldarda basılan tuşu ekrana yazdırırsanız size 0 , 1 , 2 , 3 , 4 ,5 gibi bir değer döndürecektir ve bunu aşağıdaki ButtonBul fonksiyon ile yaptığımızı anlayabilirsiniz.
#include <LiquidCrystal.h>


// Ekran
LiquidCrystal Ekran(8, 9, 4, 5, 6, 7);
int basilanTus = 0;
int okunanDeger = 0;

#define sagButton      0;
#define solButton      1;
#define yukariButton   2;
#define asagiButton    3;
#define secButton      4;
#define yokButton      5;

// Özel Fonksiyonlar

byte ButtonBul() {
  okunanDeger = analogRead(A0);
  if (okunanDeger > 1000) {
    return yokButton;
  }
  if (okunanDeger < 50) {
    return sagButton;
  }
  if (okunanDeger < 195) {
    return yukariButton;
  }
  if (okunanDeger < 380) {
    return asagiButton;
  }
  if (okunanDeger < 555) {
    return solButton;
  }
  if (okunanDeger < 790) {
    return secButton;
  }
}
void EkranTemizle(int x, int y) {
  Ekran.setCursor(x, y);
  Ekran.print("                ");
}
void EkranYazdir(int x, int y, String yazi) {
  Ekran.setCursor(x, y);
  Ekran.print(yazi);
}


// Temel Fonksiyonlar
void setup() {
  Serial.begin(9600);
  BTSerial.begin(38400);
  Ekran.begin(16, 2);
  EkranYazdir(0, 0, "    UrhobA     ");
  EkranYazdir(0, 1, "Sistem Aciliyor..");
  delay(1000);
  EkranTemizle(0, 1);
  EkranYazdir(0, 1, "Sistem Acildi");
  delay(1000);
  Ekran.setCursor(0, 1);
  EkranTemizle(0, 1);

}

void loop() {
  basilanTus = ButtonBul();
  Ekran.setCursor(0, 1);


}