arduino lcd ekran kayan yazı yazma / Arduino ile Kodlama 12 | Kumbara Dergisi

Arduino Lcd Ekran Kayan Yazı Yazma

arduino lcd ekran kayan yazı yazma

    Merhaba arkadaşlar, bu uygulamamızda 2&#;16 lcd ekran ile sağa sola çarpan yazı uygulamasını yapacağız. Kablo bağlantılarının karmaşık ve çok kablo olmaması için de I2C modülünü kullanacağız. Hemen uygulamamıza geçelim.

Malzeme Listesi

Devre Şeması

    Malzeme listesindeki malzemeleri kullanarak devremizi aşağıdaki şemaya uygun olarak kuralım. I2C modülünü kullanmasak devremiz çok karışık olacaktı. Devremizi kurarken hata yapma ihtimalimiz yüksek olduğu için en ufak hatada ekranımız çalışmayacaktı. I2C modülü sayesinde çok kolay bir şekilde ekranımızı kullanabiliyoruz. GND(-) VCC(+) çıkışlarını arduinomuzun GND ve 5V çıkışlarına bağlıyoruz. Modülümüzün SDA çıkışını analog girişlerden olan A4&#;e , SCL çıkışını ise A5 analog girişine bağlıyoruz. Devremiz bu kadar 🙂

Kütüphane Yükleme

    I2C modülü kullandığımız için bu modüle ait kütüphaneyi yüklememiz gerekiyor. Kütüphaneyi indirmek için bu linke tıklayabilirsiniz. Linke tıkladıktan sonra bir zip dosyası inecektir. Arduino IDE&#;den yeni bir dosya açarak, Taslak->Library Ekle->.ZIP kitaplığı ekle kısmına tıklayalım. Daha sonra ise indirdiğimiz zip dosyasını seçelim ve OPEN diyelim. Bu şekilde kütüphanemiz yüklenmiş oluyor. Şimdi kod kısmına geçebiliriz.

                                                       

Arduino Kodları

    Kod kısmında ilk önce kütüphanemizi projemize ekliyoruz. Daha sonra LiquidCrystal_I2C türünden bir nesne oluşturuyoruz. Nesnenin adı lcd oluyor ve parametre olarak 0x27,16,2 değerlerini veriyoruz. Buradaki 0x27 değeri I2C&#;nin haberleşme adresidir. 16 ve 2 değerleri ise ekranımızın 2&#;16 olduğunu tanımlamak içindir.

    Setup fonksiyonumuzda &#;funduszeue.info()&#; komutu ile lcd&#;yi başlatıyoruz.

    Loop fonksiyonumuzda ise yazdır isimli fonksiyonumuzu çağırıyoruz. Bu fonksiyona ilk parametre olarak bir metin veriyoruz, ikinci parametre olarak da yazıyı sağa sola kaydırma yaparken bekleme süresini veriyoruz. Burada önemli olan bir detay var. Süreyi istediğiniz gibi verebilirsiniz ama yazıyı maksimum 16 vermelisiniz. Çünkü lcd ekranımız 16 karakterlik. Yazımızı 16 verirsek sağa sola kayma yapamayacağı için yazımız hareket etmeyecektir. Bu yüzden size tavsiyem 16 dan küçük yazılar girmeniz. Ben örnek olarak &#;Robolink&#; girdim. 

    Yazdır fonksiyonunu anlatmaya geçmeden önce neden ayrı fonksiyon oluşturma sebebimi anlatmak istiyorum. Direk yazdır fonksiyonunun içindeki kodu loop fonksiyonuna atsak da çalışırdı ama daha düzgün, anlaşılır bir şekilde olması için böyle yaptım. Fonksiyonumuz yukarıda da dediğim gibi bir metin ve süre parametrelerini alıyor. İlk olarak girilen metinin uzunluğunu bulup size isminde bir değişkene aktarıyoruz.

    Daha iyi anlamanız için &#;Robolink&#; metni üzerinden örnek vererek anlatmak istiyorum. Uzunluğumuz 8 olarak hesaplandı ve size değişkenine attık. For döngümüz 0 dan başlayarak size yani = 8&#;e kadar gidecektir. Buradaki amaç &#;Robolink&#; metninin sırayla 1&#;er olarak sağa kaydırmaktır. Tam olarak sığması için i değerimiz 0 dan 8&#;e kadar ilerliyor. Yani &#;Robolink&#; metnimiz sağ tarafa dayanmış şekilde oluyor.

    For döngümüzün her aşamasında funduszeue.info() ile lcd ekran temizleniyor, funduszeue.infosor() ile lcd ekranda konumlandırma yapıyoruz ve funduszeue.info() ile de konumlandığımız yerden veriyi ekrana yazdırıyoruz. Buradaki funduszeue.infosor() 2 parametre alıyor. İlk parametre yatay olarak konumlanma indisi yani sütun , ikinci parametre ise dikey olarak konumlanma indisi yani satır oluyor. Biz bu örnekte ilk satıra yazacağımız için ikinci parametre kısmını sabit olarak 0 ayarladık. İlk parametremiz de kaydırma işlemi yaptığımız için değişiklik gösteriyor.

    İlk for döngümüz sağa doğru kaydırıyor ve ikinci for döngümüze geçiyoruz. Bu for döngüsü de ilk for döngüsünün tam tersi işlemleri yapıyor. Metinimizi sola doğru kaydırıyor. Bu şekilde metin sağa ve sola çarpıyor. Bu uygulamaya kayan yazı uygulaması da denebilirdi ama kayan yazılarda genellikle tek yöne doğru kayma oluyor. Bu uygulamamızda metinimiz iki yönlü olarak hareket ediyor.

    Kodları yazdıktan sonra arduinomuzu bilgisayara bağlayıp yükleme işlemini yapabiliriz. Bu sayede sağa sola çarpan yazı uygulamamız gerçekleşmiş olacak.
Yazımı okuduğunuz için teşekkür ederim. Bir sonraki uygulamamızda görüşmek üzere 🙂

Yunus Emre EKE

funduszeue.info

Merhabalar ben Yunus Emre Eke. Trakya Üniversitesi Bilgisayar Mühendisliği 4.Sınıf Öğrencisiyim. Uzun süredir yazılım ve elektronik ile uğraşıyorum. Arduino projelerimi paylaştığım instagram sayfasına profilimden göz atabilirsiniz.

Bu uygulamayı Mblock programında yapacağımız. Kodlara geçmeden önce devremizde gerecek malzeme listesi:


1-Arduino Uno

2- 1 adet I2C LCD Modül

Malzemelere ihtiyacımız var.

I2C LCD modulünün 4 adet ucu var. VCC'yi arduino unodaki 5V, GND ucunu yine GND'ye, SCL ucunu Arduino uno'daki SCL ucuna, SDA ucunu ise SDA uçlarına bağladım.(Bu uçlar 13 nolu dijital pinden sonra gelen uçlardır)Devre şeması aşağıda yer almaktadır. Eğer arduino unodaki SCL ve SDA(13 nolu dijital pinden sonra geliyor) uçlarını kullanmayacaksanız LCD ekranın bu uçlarını analog pinlerine bağlamanız gerekmektedir.

Mblock ile LCD Ekran Kullanarak Kayan Yazı Yapma

Şimdi gelelim kod kısmına;

Mblock ile LCD Ekran Kullanarak Kayan Yazı Yapma

Öncelikle I2C modülü kullanabilmemiz için Mblock programına uzantılar menüsünden uzantıları yönet kısmına tıklayıp Hasan Karadağ'ın yazdığı I2C LCD modül kütüphanesini yüklememiz lazım. Bu modülle ilgili yazılmış başka kütüphaneleride yükleyebilirsiniz. Mblock programında Robotlar menüsünden Arduino programı başlangıç kodunu ekliyoruz. Sonra LCD tanımla kodunu ekliyoruz bizim lcd miz 16 sütün 2 satırdan oluştuğunu belirtiyoruz. Sonra imlecimizin hangi satır ve sütunlardan başlayacağını belirtiyoruz böylece yazılan yazılar o satır ve sütunlardan başlayarak ekrana yazılır. Ekrana yaz kodu ile ekrana ne yazmak istiyorsak bu kodun içine yazıyoruz. Bu şekilde kodu bırakırsak ekranda sabit olarak kalırlar bunları kayan yazı haline getirmek için öncelikle kontrol menüsünden sürekli tekrarla kodunu ekliyoruz. yazılarımız sürekli olarak hareket etmesi için. Bizim lcd ekranımız 16 sütündan oluştuğu için maksimum 16 karakter alır o yüzden yine kontrol menüsünden 10 defa tekrarla kodunu alıp içine 16 yazıyoruz text sola kaydıracak ama bunları çok hızlı olmaması için 1 saniye bekle kodu ekliyoruz. Yani her bir harf bir sola kayacak 1 saniye bekleyecek bu 16 defa olacak. Bu kod bloğu bittikten sonra alttaki kod bloğuna sıra geliyor o da 16 defa tekrarlama yaparak her bir harfi 1 saniye bekleyerek karakterleri sağa doğru kaydıracak bu olay enerjiyi kesene kadar sürekli olarak tekrar edecek.

Bu kodları çalıştırabilmemiz için arduino kartımızın ve devremizin bilgisayara usb kablosu ile bağladıktan sonra önce Bağlan menüsünden Seri portu seçiyoruz, oradan arduino kartımızın bağlı olduğu bağlantı noktasını seçfunduszeue.infor menüsünden Arduino Uno(veya hangi kartı kullanıyorsanız onu seçin) Seçtikten sonra, Düzenle menüsünden Arduino kipini seçin ve  Arduinoya yükle butonuna basarak,  yazdığımız kodları arduino kartımıza göndermiş yüklemiş oluruz. Böylece programımız çalışmaya hazır bir hal alır.


 
Programın kodlarını indirmek için TIKLAYINIZ

Benzer Konular:

Tüm Mblock ile Arduino Örnekleri İçin TIKLAYINIZ

(Tüm Mblock ile Arduino Örneklerine tıkladıktan sonra açılan sayfanın en altındaki "Diğer Yayınlara" tıklayarak diğer sayfadaki Mblock ile Arduino örneklerinede ulaşabilirsiniz)

LCD_SunumMerhaba Arkadaşlar

Bu sunumda sizlerle CSS C ile hazırladığım LCD’ye 4 bit ile yazı yazdırma, yazıyı sağa sola kaydırarak bir nevi görsel efekt yapabilmeyi anlatacağım. Normalde LCD 8 bit ile işlem görür (data biti olarak. Bunlara ilaveten 3 bit kontrol ayırmanız gerekmektedir.) fakat biz picdeki pinlerden tasarruf etmek adına 4 (data pin) + 3 kontrol pin olarak toplamda 7 bit kullanıyoruz. Böylece LCD dışında başka işlemler için de pin bırakmış oluyorsunuz. Bu yöntem paralel data iletişimi olarak bilinir. İlgili arkadaşlar seri iletişimi araştırabilirler.

Assembly dili ile uğraşmış  arkadaşlar iyi bilir  LCD ‘ye yazı yazar hale getirmek için bir çok prosedür uygulanır. Aslında kendi başına bir iştir ve çok zaman kaybettirir ama C ile yazıldığında bunu lcd_init()  fonksiyonu ile bir satırda yazmak mümkündür.   Projelerde  en çok kullanılan LCD türü 2 satırı 40 karakter (2&#;40) hafızası olan HD ve  türevleridir.

LCD için yazılmış hazır fonksiyonları kullanabilmek için yukarıya #include <lcd.c>  kaynağını eklemeniz gerekmektedir. Bu kaynağı lcd.c yazan kısma gelip sağ tuş tıklayıp Open File at Cursor seçeneğini seçerseniz lcd için yazılmış kodları görebilirsiniz. Ayrıca LCD için hangi fonksiyonlar var hepsini buradan görebilirsiniz.

 

 

LCD için yazdığımız koda bakarsak :

/*Bu Program LCD de yazıyı kaydırmak için yazılmıştır. MCUTurkey sitesinde sunulması için hazırlanmıştır Hazırlayan : ibrahim ATLI*/#include <16f84a.h>#include <lcd.c>#fuses XT,NOWDT,NOPROTECT#use delay(clock=) // gecikmeler icin bunu belirtmemiz funduszeue.info sola_kaydir()&#; lcd_send_byte(0,0x18);&#;void saga_kaydir()&#; lcd_send_byte(0,0x1E);&#;void main()&#;int i; lcd_init();//LCD başlangıç koşullarını ayarlar, kullanıma hazırlar delay_ms(); lcd_putc("\f");// lcd ekranı temizle lcd_putc("ibrahim ATLI Elektrik-Elektronik Muh."); delay_ms(50); lcd_gotoxy(0x80,0);// ikinci satıra geçer. Bu kodlara lcd datasheetden bakabilirsiniz. delay_ms(50); lcd_putc(" Bilgisayar Muhendisligi");   while(TRUE)&#;//LCD 40 karaktere kadar registerda char tipini tutar.//burda ben 30 karakter kaydırma işlemi yaptıfunduszeue.info(i=0;i<30;i++)&#; saga_kaydir(); delay_ms(50);&#;for(i=0;i<30;i++)&#; sola_kaydir(); delay_ms(50);&#; delay_ms();&#;&#;
  • LCD bacak bağlantılarını nereye bağlayacağım ?

Yukarıda anlattığım şekilde lcd.c kaynak dosyasını açın. Burada en yukarıda comment (yorum) olarak bağlantıların nereye yapılacağı yazar. Bulamayan arkadaşlar için aşağıda ekran görüntüsünü hazırladım. Buradaki ayarlarla oynayıp istediğiniz Porta LCD yi bağlayabilirsiniz.

LCD ekranını bazı kısa yollar ile daha kolay kullanabilirsiniz. Aşağıdaki örneklere bakabilirsiniz.

lcd_putc(c)\f   Display ekranını temizler

                                    \n  İkinci satıra gider              

                                     \b  Bir basamak geri gider bulunduğu pozisyondan.  

LCD Ekranındaki yaziyi sağa sola kaydırmak :

Bir yazıyı ekranda sağa sola kaydırmak için LCD nin anlayacağı kodları göndermeniz gerekmektedir. Bunun için lcd_send_byte(byte a, byte b) fonksiyonunu kullanacağız. Benim kodda kullandığım  lcd_send_byte(0,0&#;18) lcd de bir karakter sola kaydırma işlemini gerçekleştirir. Daha fazla özellik arayanlar için datasheet dosyasına bakabilirler.

funduszeue.info

 

 

Çalışır durumdaki proteus sunumunu buradan indirebilirsiniz.

 

 

 

 

 

 

nest...

çamaşır makinesi ses çıkarması topuz modelleri kapalı huawei hoparlör cızırtı hususi otomobil fiat doblo kurbağalıdere parkı ecele sitem melih gokcek jelibon 9 sınıf 2 dönem 2 yazılı almanca 150 rakı fiyatı 2020 parkour 2d en iyi uçlu kalem markası hangisi doğduğun gün ayın görüntüsü hey ram vasundhara das istanbul anadolu 20 icra dairesi iletişim silifke anamur otobüs grinin 50 tonu türkçe altyazılı bir peri masalı 6. bölüm izle sarayönü imsakiye hamile birinin ruyada bebek emzirdigini gormek eşkiya dünyaya hükümdar olmaz 29 bölüm atv emirgan sahili bordo bereli vs sat akbulut inşaat pendik satılık daire atlas park avm mağazalar bursa erenler hava durumu galleria avm kuaför bandırma edirne arası kaç km prof dr ali akyüz kimdir venom zehirli öfke türkçe dublaj izle 2018 indir a101 cafex kahve beyazlatıcı rize 3 asliye hukuk mahkemesi münazara hakkında bilgi 120 milyon doz diyanet mahrem açıklaması honda cr v modifiye aksesuarları ören örtur evleri iyi akşamlar elle abiye ayakkabı ekmek paparası nasıl yapılır tekirdağ çerkezköy 3 zırhlı tugay dört elle sarılmak anlamı sarayhan çiftehan otel bolu ocakbaşı iletişim kumaş ne ile yapışır başak kar maydonoz destesiyem mp3 indir eklips 3 in 1 fırça seti prof cüneyt özek istanbul kütahya yol güzergahı aski memnu soundtrack selçuk psikoloji taban puanları senfonilerle ilahiler adana mut otobüs gülben ergen hürrem rüyada sakız görmek diyanet pupui petek dinçöz mat ruj tenvin harfleri istanbul kocaeli haritası kolay starbucks kurabiyesi 10 sınıf polinom test pdf arçelik tezgah üstü su arıtma cihazı fiyatları şafi mezhebi cuma namazı nasıl kılınır ruhsal bozukluk için dua pvc iç kapı fiyatları işcep kartsız para çekme vga scart çevirici duyarsızlık sözleri samsung whatsapp konuşarak yazma palio şanzıman arızası