Arduino 4
Arduino ve LCD Ekran |
Merhaba,
Bu yazıda Arduino’ya piyasada kolayca bulabileceğiniz 2*16 karakter kapasiteli bir LCD’yi nasıl bağlayacağımızı anlatmaya çalışacağım.
LCD seçerken paralel tip ve Hitachi uyumlu olanlara bakacağız. Ürün kodunda 1602 olanlar küçük farklarla amacımıza uygundur. Fark genellikle arka aydınlatma LED bacakları ile ilgilidir. BLA (arka aydınlatma anot) ve BLK (arka aydınlatma katot) yazan bu bacakları LCD’nin arkasındaki devre üzerinden kolayca takip edebilirsiniz. Bazı LCD’lerde bu bacaklar soldadır, bazılarında ise sağda (pin 1-2 veya pin 15-16).
Devreniz için bir PCB tasarlayacaksanız belli bir tipe sadık kalabilir veya LED bacaklarını PCB üzerine müstakil bağlayacak bir tasarım yapabilirsiniz. Böylece aynı tasarımdan bir tane daha yaparsanız farklı LCD’lerle de çalıştırabilirsiniz. LCD arka aydınlatma LED’i için akım sınırlama direnci kullanmayı unutmayınız. Akım sınırlama direnci, kullanılan LED’in özelliklerine ve güç kaynağı voltajına uygun olmalıdır.
Breadboard üzerine kuracağımız devre için kolaylık olsun diye ilk iş LCD panelimize 2.54mm aralıklı ve 10 mm yükseklikte erkek header konnektör lehimleyelim. Breadboard’a takarken uygulayacağınız kuvvet nedeniyle LCD’nin baskılı devre bağlantılarına zarar vermemek için header’ın plastik parçasının LCD’nin arkasında kalmasına özen gösterelim.
Arduino’yu LCD’ye bağlamak için aşağıdaki Fritzing çiziminden faydalanabiliriz. (Fritzing’i bilgisayarınıza kurup benzer tasarımlar yapabilirsiniz (http://fritzing.org/) )
Paralel LCD’leri kumanda etmek için, adından da anlaşılacağı gibi kontrol bacaklarını paralel olarak kumanda etmek gerekir. Arabirim aşağıdaki bacaklardan oluşur:
RS Bacağı (Register Select: Yazmaç Seç): LCD’nin içindeki hafızanın neresine yazma yapacağınızı gösterir. Yazma işlemi genellikle veri veya komut içerir. Komut, LCD’nin ne yapmasını istediğinizi, veri ise ekranda göreceğiniz verileri ifade eder.
Okuma/Yazma Bacağı (R/W): Okuma veya Yazma modlarından birini seçmenizi sağlar.
Enable (Etkinleştirme) Bacağı: Yazmaçlara yazma işlemini etkinleştirir.
8 adet veri Bacağı (D0-D7): Yazmaçlara yazma/okuma işlemi sırasında veri bu bacaklar üzerinden akar. Dört tanesi çoğu projemiz için yeterlidir. (4-bit mode)
Ekran Kontrast Bacağı (V0): Bağlantı şemasında belirtildiği şekilde 10k bir trimpot ile kullanıldığı zaman ekranın kontrastını ayarlamanızı sağlar.
Güç Kaynağı bağlantıları (+5V ve GND): LCD ekranın güç bağlantısını yapmanızı sağlar.
Arka Aydınlatma Bacakları (BKLT+ ve BKLT-) : Varsa LCD ekranın arka aydınlatma LED’ini bağlamaya yarayan bacaklar. LED voltaj ve akım bilgileri için üretici tavsiyelerine uyunuz.
Ekranı kumanda etmek bu bacakları eşzamanlı kontrol etmekle mümkündür. Arduino kütüphaneleri sayesinde düşük seviye programlama bilgisine ihtiyaç duymadan ekranı programlamak mümkün olabilmektedir (bkz. LiquidCrystal Kütüphanesi2). Hitachi uyumlu LCD ekranlar iki türlü kumanda edilebilirler: 4-bit ve 8-bit mod. Arduino’nun sayısal bacaklarından tasarruf etmek için 4-bit modunu seçiyoruz. Bu mod ile ihtiyacınız olan çoğu görüntüleme özelliğini elde edebilirsiniz.
Malzeme Listesi
Arduino (Daha önceki yazılarımda belirttiğim şekilde satın almış veya imal etmiş olabilirsiniz)
LCD Ekran (Hitachi HD44780 uyumlu)
10k lineer Potansiyometre veya trimpot
Breadboard
Muhtelif bağlantı kabloları
Akım sınırlama direnci (emniyet için 1kohm ile başlayıp ekran yeterince parlak olmazsa kademeli olarak direnç değerini düşürebilirsiniz)
Devre
LCD Ekran Arduino’ya aşağıda belirtildiği şekilde bağlanır:
LCD RS bacağı, 12 no’lu sayısal bacağa
LCD Enable bacağı, 11 no’lu sayısal bacağa
LCD D4 bacağı, 5 no’lu sayısal bacağa
LCD D5 bacağı, 4 no’lu sayısal bacağa
LCD D6 bacağı, 3 no’lu sayısal bacağa
LCD D7 bacağı, 2 no’lu sayısal bacağa
Örnek Program: http://arduino.cc/en/Tutorial/LiquidCrystal?action=sourceblock&num=1
Programı indirip Arduino klasörüne kopyalayabilirsiniz. Aslında Arduino’yu kurduğunuzda examples klasöründe hazır olarak geliyor.
Örnek program içinde özellikle şu satırlara dikkat edelim:
#include : LCD Kütüphanesini yükler.
LiquidCrystal lcd(12, 11, 5, 4, 3, 2); LCD Ekranın hangi Arduino kapıları üzerinden kontrol edileceğini belirtir.
lcd.begin(16, 2); Parantez içindeki değerler sırasıyla kolon ve satır bilgileridir. Yani Hitachi uyumlu ama satır ve kolon sayıları farklı ekranlar da kullanabilirsiniz.
lcd.print(“hello, world!”); düz metin tırnak işaretleri arasına yazılmıştır.
lcd.setCursor(0, 1); (kolon, satır) şeklinde. 0 sayısı 1. Satırı ve 1.kolonu belirtir. Yani (0, 1) birinci kolon ve ikinci satırı belirtir.
Breadboard Üzerinde Kurulum:
(1) http://arduino.cc/en/Tutorial/LiquidCrystal
(2) http://arduino.cc/en/Reference/LiquidCrystal