Arduino Arduino ile LCD Kullanımı By Yunus Arat Posted on 23 Mayıs 2017 7 min read 1 0 9,987 Paylaş ! Facebook Paylaş ! Twitter Paylaş ! Google+ Paylaş ! Reddit Paylaş ! Pinterest Paylaş ! Linkedin Paylaş ! Tumblr Merhaba arkadaşlar, bugün sizlerle Arduino ile LCD’ye nasıl yazı yazıldığını öğreneceğiz. LCD, arduino projelerinde çokça kullanılan zevkli ve işe yarar bir malzemedir. Boy ölçme cihazı, mesafe ölçer, termometre gibi birçok projede tercih edilir. Kullanılan Malzemeler Arduino Uno LCD Ekran 10k Potansiyometre Jumper Kablolar Pin isimlerini öğrenecek olursak: 16 tane bacaktan oluşur. Bir ve ikinci bacaklar besleme bacaklarımızdır. (+5V ve GND) Üçüncü bacak konstrat ayar bacağıdır, bu bacağı 10k ‘lık bir potansiyometre ile bağlamamız daha iyi olacaktır. Dördüncü bacak RS pinidir bu pin arduinonun dijital pinlerine bağlanır. Beşinci bacak oku yaz bacağıdır. LCD’den okuma mı yoksa yazma mı yapacağımıza karar verir, biz LCD’ ye yazı yazdıracağımız için direk toprağa bağlayacağız. Altıncı bacak enable bacağıdır bu bacağı da arduinonun dijital pinine bağlayacağız. 7-14. bacaklar data bacaklarıdır yine arduinonun dijital pinlerine bağlanır. Başlangıç için 8 bit yerine 4 bit kullanmak bize yetecektir.15 ve 16. bacaklar LCD’nin led aydınlatma bacağıdır. 3.3V veya 220R gibi bir dirençle 5V vermek yeterli olacaktır. Gelelim işin kod kısmına… İşe LCD’nin kütüphanesini ekleyerek başlıyoruz. #include <LiquidCrystal.h> LiquidCrystal ekran(12, 11, 5, 4, 3, 2); LiquidCrystal ekran(rs, e, d7, d6, d5, d4); LCD gibi çok bacaklı malzemeleri kullanmak için nesne oluşturmamız ve bir isim vermemiz gerekir. Parantez içinde yazılan sayılar yukarıda bahsettiğimiz, arduinonun dijital pinlerine bağlamamız gereken pinlerin bacak bağlantılarıdır. ekran.begin(16, 2); Bu kod ile LCD’yi tanıtmış olduk. Parantez içindeki rakamlar bize LCD’nin 16 karakter ve 2 satırdan oluştuğunu belirtiyor. ekran.clear(); Ekrandaki yazıyı silmemize yarayan kod. ekran.home(); LCD’yi tekrar başlatan kod. ekran.print(“ROBOTURKA”); ekran.print(2017); Ekrana istediğimiz yazı veya sayıyı yazdırmaya yarayan koddur. Yazdırmak istediğimiz şey eğer bir yazı ise çift tırnak kullanmak gereklidir. Sayı yazdırırken çift tırnak kullanılmaz. Bunların dışında istediğimiz bir değişkeni de yazdırabiliriz yine burada çift tırnak kullanmamıza gerek yoktur. ekran.setCursor(7,1); Bu kod ise yazıyı istediğimiz satır ve sütundan başlayarak yazdırmaya yarar. Örneğin burada yazı yedinci sütun birinci satırdan başlıyor.(ilk satır ve sütun sıfırıncı satır ve sütundur) ekran.scrollDisplayRight(); Bu kod sayesinde yazımız sağa doğru kaydırılır. ekran.scrollDisplayLeft(); Bu kod sayesinde yazımız sola doğru kaydırılır. Küçük bir projeyle daha iyi anlamaya çalışalım… int i = 0; #include <LiquidCrystal.h> // LCD kütüphanesi eklendi... LiquidCrystal ekran(12, 11, 5, 4, 3, 2); // LCD için nesne oluşturuldu... void setup() { ekran.begin(16, 2); //LCD'ye ekran ismi verildi ve tanıtıldı... } void loop() { ekran.print(" ABDULLAH YUNUS"); ekran.setCursor(6, 2); // ekrada istenilen yerlere yazı yazıldı... ekran.print("ARAT"); delay(4000); ekran.clear(); //ekran temizlendi ve ikinci yazı yazıldı ekran.print("ROBOTURKA"); ekran.setCursor(3, 2); ekran.print("C *"); for (int c = 0; c <= 1; c++) { for (int a = 0; a <= 6; a++) { ekran.scrollDisplayRight(); // iç içe for döngüleri ile son yazılan delay(400); //yazı sağa ve sola kaydırıldı } for (int b = 0; b <= 6; b++) { ekran.scrollDisplayLeft(); delay(400); } } ekran.clear(); ekran.print(" SAU"); delay(1000); ekran.setCursor(8, 0); // burada istenen yazı sırayla kelime kelime yazıldı ekran.print("ROBOT"); delay(1000); ekran.setCursor(4, 1); ekran.print("TOPLULUGU"); // kullanılan delay komutları yazıyı rahat görebilmemiz için delay(1500); // eklenmiştir aksi taktirde arduino bu işlemi // bizim göremeyeceğimiz kadar hızlı yapar for (int d = 0; d <= 4; d++) { ekran.clear(); delay(400); ekran.setCursor(4, 0); ekran.print("SAU"); ekran.setCursor(8, 0); //burada istenen yazı sön yak şeklinde yazıldı... ekran.print("ROBOT"); ekran.setCursor(4, 1); ekran.print("TOPLULUGU"); delay(400); } ekran.clear(); delay(400); }