Arduino ile LCD Kontrolü
|Merhabalar…
Bu konumuzda Arduino ile bir 16 x 2 LCD ye nasıl yazı yazılır ve bu yazı nasıl klavyeden girilen tuşa göre sağa ve sola haraket ettirilir buna değineceğiz…
Öncelikle LCD kütüphanesine sahip olduğunuzdan emin olunuz. Eğer LCD kütüphaneniz yoksa edinmek için tıklayınız.
Neyin ne işe yaradığı kodların üzerindeki yorum satırında mevcut. Dikkat etmeniz gereken nokta LCD pin leri. Sıranın doğru olduğundan emin olunuz. Bağlantıyı kendinize göre ayarlamak için kütüphaneyi biraz incelemeniz yeterli olacaktır…
Bağlantı şemamız:
İlk önce Lcd ye yazı yazma işlemine bakalım..
Bunun için internette de bir sürü örnek bulabilceğiniz gibi bir tane de ben hazırladım. Kodlarda bağlantılar görünmetke. İmleci gerekli satırlara getirip yazı istediğimizi “print” fonksiyonunu kullanarak yazıyoruz.
#include<LiquidCrystal.h>//Kütüphanemizi çağırdık LiquidCrystal lcd(2,3,8,9,10,11);//Lcd pinlerini ayarladık //RS ==> digital 2 //E ==> digital 3 //D4 ==> digital 8 //D5 ==> digital 9 //D6 ==> digital 10 //D7 ==> digital 11 void setup(){ lcd.begin(16,2);//lcd mizi tanımladık } void loop(){ lcd.setCursor(0,0); //imleci ilk satır ilk sutuna getirdik lcd.print("*****N*****"); lcd.setCursor(0,1); //imleci 2. satır ilk sutuna getirdik lcd.print("Oguzhan Baser"); }
Şimdi bu yazıyı klavyeden girilen tuşa göre sağa ve sola hareket ettirelim. Bunun için Lcd ‘nin yanı sıra seri haberleşmeyide kullanacağız. Bizim belirlediğimiz tuşun basılması halinde Lcd deki yazı hareket edecek.
#include<LiquidCrystal.h>//Kütüphanemizi çağırdık LiquidCrystal lcd(2,3,8,9,10,11);//Lcd pinlerini ayarladık //RS ==> digital 2 //E ==> digital 3 //D4 ==> digital 8 //D5 ==> digital 9 //D6 ==> digital 10 //D7 ==> digital 11 char karakter; //klavyeden girilecek tuş için değişken belirledik void setup(){ Serial.begin(9600); //Seri haberleşmeyi başlattık lcd.begin(16,2);//lcd mizi tanımladık lcd.setCursor(0,0); //imleci ayarlayıp yazma işlemini gerçekleştirdik lcd.print("Oguzhan Baser"); lcd.setCursor(0,1); lcd.print("*****N*****"); } void loop(){ if(Serial.available()){ //Bir tuşa basıldığında işlem yapılamsını sağladık karakter = Serial.read(); //Girilen tuşu karakter e atadık Serial.println(karakter); if(karakter == 'A'){ //A girilmişse sola kaydırdık lcd.scrollDisplayLeft(); }else if(karakter == 'S'){ //S girilmişse kaydırdık lcd.scrollDisplayRight(); } } }
Burada üstteki kodlardan farklı olarak yazma işlemini “setup” fonksiyonunda yaptım. Bunun herhangi farkı yoktur. Ama değeri değişen bir değişkeni yazdırmak için “loop” fonksiyonunda yazdırma işlemini yapmalısınız.
Teşekkürler..
Merhaba iyi günler.ben bitirme tezi olarak fototerapi cihazı tasarlayacam.çoğu şey hazır ancak guc kontrollu zamanlayici devresini yapamadım.hocam bunu ardinuo ile yapmami istedi ancak nasıl yapılacağını bilmiyorum. Yardımcı olabilir misiniz? Şimdiden çok teşekkür ediyorum :)
Merhaba..
Güç kontrollü zamanlayıcıdan tam olarak ne kast ettiğinizi anlamadım. Lakin asenkron olarak zamanlama işlemleri yapacaksanız arduino’ da millis() fonksiyonunu kullanabilirsiniz. İnternette bununla ilgili bir çok döküman bulunmaktadır.
İyi çalşmalar.
Selamun aleykum. Lcd uygulamasi yapiyorum fakat lcd yi calistiramiyorum. Arduino nun votunu dusuruyor. Harici guc kaynagi kullanip gnd yi birlestirdim fakat sorun devam ediyor. Acikcasi lcd ekrana hic birsey gelmiyor. Sorun lcd de mi diye dusunup ikinci lcd yi aldim ondada ayni sorunu yasadim. Sorunum ne olabilir. Tesekkurler…
Merhaba..
Öncelikle voltaj düşümünden kastınız arduino’ nun ışıklarının sönmesi ise Arduino’ daki kısa devre korumasını aktif ediyorsunuz demektir. Bu da bağlantınız yanlış yada cihazın arızalı olduğu manasına gelmektedir. LCD yi değişmişseniz ve hala sorun çözülmedi ise bence bağlantılarınızı kontrol etmelisiniz. Ancak bu şekilde bir sorun ben daha önce yaşamadım sadece olabilecek bir ihtimali dile getirdim.
İyi çalışmalar.
Baglantilari datasheet de oldugu gibi yaptim ama birde tam tersini deneyeyim ozaman. Tesekkurler…