Robotik ve Kodlama

Arduino

Arduino ile LCD Ekran Kullanımı

Lisans: Creative Commons 26.11.2020 tarihinde güncellendi
Bakabileceğiniz Etiketler: Eğitmen: Cansu Uludağ

Önceki uygulamalarımızda sonuçları görmek için, sayı tabanlı çıktıları 7 segmentli ekranlara ve diğer verileri de seri haberleşme ile başka cihazlara göndermiştik. Sonuçların kullanıcıya bilgisayar gibi bir ortama gerek kalmadan devre üzerinde göstermek için LCD ekranları kullanabilirsiniz.

LCD ekranın bağlantı kabloları dikkatlice takılmalıdır. Genellikle LCD uygulamalarında yapılan en büyük hata yanlış veya eksik takılan kablolardır. LCD üzerindeki pin sıralaması üretici firmaya göre değişiklik gösterebilir. Bu yüzden devre kurulumundan sonra LCD bağlantıları bir kere daha kontrol edilmelidir.

LCD ekran 5 volt ile çalışmaktadır. VCC ve GND bağlantıları buna göre yapılmalıdır. LCD'nin Vo bağlantısı, ekran üzerinde oluşacak karakterlerin görünürlüğünü ayarlamaktadır. Bu ayar ortama ve üretici firmaya göre değiştiği için Vo pini potansiyometreye bağlanır. Potansiyometrenin diğer iki ucu 5 volt ve GND'ye bağlanır. Böylece potansiyometre ile yazıların görünürlüğü ayarlanabilir. Eğer bu bağlantı düzgün bir şekilde yapılmaz ise ekran üzerinde görüntü oluşmayacaktır.

Yukarıdaki şemaya göre devrenizi dikkatlice kurduktan sonra programlama kısmına geçebilirsiniz. LCD ekrana yazı yazabilmeniz için kullanacağınız karakterler, daha önce Arduino geliştiricileri tarafından tanımlanmıştır. Tanımlanmış karakterleri kullanabilmeniz için öncelikle LCD kütüphanesini 'LiquidCrystal.h' projenize eklemelisiniz. Kütüphane eklendikten sonra LCD'ye bağlanan Arduino pinleri programda belirtilmelidir. Setup fonksiyonu içerisinde LCD türünü de belirttikten sonra LCD ekran kullanıma hazırdır.

Önemli LCD Fonksiyonları:

  • lcd.begin(sutun_sayisi, satir_sayisi): LCD ekranın tanınması için setup fonksiyonu içerisinde kullanılır. LCD kurulumu için fonksiyona sütun ve satır sayısı eklenmelidir.
  • lcd.print("Hasbi Sevinc"): LCD ekrana yazı yazdırmak için kullanılır.
  • lcd.setCursor(sütun_sayısı, satır_sayısı): LCD ekran üzerinde imlecin yerini ayarlamak için kullanılır. Sütun ve satır sayıları 0'dan başlamaktadır. Örneğin alt satıra inmek için fonksiyon içerisine (0,1) yazılmalıdır. Böylece imleç, 0. sütun ve 1. satıra gidecektir. İmlecin yeri ayarlandıktan sonra yazma işlemi, imlecin bulunduğu yerden başlar.
  • lcd.clear(): LCD ekranda yazan her şeyi siler ve imleci en başa alır.

Aşağıdaki kod ile LCD'yi test edebilirsiniz. Eğer tüm ayarlamalar doğru bir şekilde yapıldıysa, ekranda Arduino'nun çalışma süresi yazacaktır.

#include <LiquidCrystal.h> /* LCD kullanimi icin kutuphane dahil edilmelidir */
/*
 Devre şeması;
 - LCD'nin RS pini -> Arduino'nun 12. pini
 - LCD'nin Enable (E) pini -> Arduino'nun 11. pini
 - LCD'nin D4 pini -> Arduino'nun 5. pini
 - LCD'nin D5 pini -> Arduino'nun 4. pini
 - LCD'nin D6 pini -> Arduino'nun 3. pini
 - LCD'nin D7 pini -> Arduino'nun 2. pini
 
 - LCD'nin R/W pini -> toprağa
 - LCD'nin R0 pini -> potansiyometre çıkışına
 - LCD VDD -> Arduino 5 Voltuna
 - LCD VSS -> toprağa
*/
LiquidCrystal lcd(12, 11, 5, 4, 3, 2); /* LCDnin baglandigi Arduino pinleri */

void setup() {
  lcd.begin(16, 2); /* Kullandigimiz LCDnin sutun ve satir sayisini belirtmeliyiz */
  lcd.print("Hasbi Sevinc"); /* Ekrana yazi yazalim */
}
void loop() {
  lcd.setCursor(0, 1); /* Imlecin yeri 1. satir 0. sutun olarak ayarlandi */
  /* Artik LCDye yazilanlar alt satirda gorunecektir */
  lcd.print(millis()/1000); /* LCDye Arduinonun calisma suresi saniye cinsinden yaziliyor*/
  /*
  millis() fonksiyonu Arduino calismaya basladiginda calisan bir Kronometredir. 
  Fonksiyon cagirildiginda gecen sureyi milisaniye olarak dondurur
  Ekrana gecen sureyi saniye cinsinden yazdirmak icin fonksiyonun degeri 1000e bolunmustur
  */  
}