arduino lcd ekrana yazı yazdırma / Arduino ile Sağa Sola Çarpan Yazı Uygulaması - Robolink Akademi

Arduino Lcd Ekrana Yazı Yazdırma

arduino lcd ekrana yazı yazdırma

Bu bloga bakmadan önce Dev Rehber 1‘e göz atmanızı şiddetle tavsiye ederim! 😉

Gerekli Malzemeler:#

  1. Arduino Uno (Arduino Nano, Arduino Mega vb.)
  2. Breadboard
  3. 16×2 LCD Ekran (Yeşil veya Mavi) 😄
  4. Muhtelif Erkek-Erkek Jumper Kablo
  5. 10KΩ Potansiyometre (Arka ışık kontrası için, isteğe bağlı)
  6. RΩ (Örneklerde kullanacağız)

LCD ve Arduino Bağlantıları#

Kullandığımız LCD’deki pinlerin diyagramını aşağıda ki gibidir. LCD ekranımızda 16 adet pinimiz var. Kullanacağımız ekrana göre pinler ekranın üst, alt veya her iki tarafında da olabilir. Çok nadir bazı ekranlarda ise arka aydınlatma ışığı bulunmadığı için 14 adet pin bulunur. 15 ve 16 numaralı pinler, ekran aydınlatması bulunan ekranlarda arka ışığı yakmak için kullanılır, Arka ışıklar LCD’den ayrıdırlar yani arka ışığının pinini bir dijital porta takarak kullanabiliriz. Her bir pinden Arduino’ya olan bağlantılar aynı olucaktır, ancak pinleriniz LCD üzerinden farklı şekilde düzenlenebilir. Bunun için LCD’nin datasheet‘ine bakabilirsiniz.

Uyarı: Breadboard’a bağlamadan önce LCD’nize 16 pinlik bir başlık lehimlemeniz gerekebilir. LCD’yi Arduino’nuza bağlamak için aşağıdaki şemayı takip edin:

İsterseniz potansiyometreyi kullanmayabilirsiniz, potansiyometre ile arka ışığının kontrast ayarını yapabiliriz ancak istemiyorsanız V0 pinini direk 5 volt vererek arka ışığı kullanabilirsiniz. Şemayı daha net görmek isterseniz buraya tıklayın.

Arduino IDE’de Programlama#

Göreceğimiz kodların tamamı Arduino IDE ile gelen LiquidCrystal kütüphanesidir. Bu kütüphane ile bir çok özellik deneyeceğiz tabi ki dev bir rehber olduğu için LiquidCrystal kütüphanesine’de anlatmadan geçemeyiz. 🙂 Şimdi “nedir bu LiquidCrystal kütüphanesi?” dediğinizi duyar gibiyim. 😄 Hemen anlatayım.

LiquidCrystal Kütüphanesi Nedir?#

LiquidCrystal ekranlar (LCD’ler) ile iletişimini sağlar. Bu kütüphane, bir Arduino/Genuino kartının çoğu metin tabanlı LCD’de bulunan Hitachi HD uyumlu yonga setine dayalı LiquidCrystal ekranları (yani LCD’leri) kontrol etmesi olarak tanınır. Kütüphane 4 veya 8 bit modunda çalışır. Buraya tıklayarak GitHub reposundan son sürümünü indirebilirsiniz.

LCD Görüntüleme Seçenekleri#

LiquidCrystal kütüphanesinin kullanabileceğimiz 19 farklı fonksiyonu vardır. Bu fonksiyonların yazının konumunu değiştirme, ekran boyunca yazıyı kaydırma veya görüntüyü açıp kapatmak gibi işlevleri vardır. Şimdi bu fonksiyonları teker teker öğrenelim:

Arduino LCD Komutları#

LiquidCrystal( )#

Görevi Arduino’nun LCD’ye bağlanmak için kullandığı pinleri belirtir. LCD’yi kontrol etmek için Arduino’nun dijital pinlerinden rastgele birini kullanabiliriz. Arduino pin numaralarını bu sırayla parantez içersinde koymamız gereklidir.

İşlevi Arduino’nun LCD’ye bağlanmak için kullandığı pinleri ayarlar. LCD’yi kontrol etmek için Arduino’nun dijital pinlerinden herhangi birini kullanabilirsiniz. Arduino pin numaralarını bu sırayla parantez içine koyunuz: RS, E, D4, D5, D6, D7 LCD pinleridir.

NOT: Ekranı ’lcd’ olarak adlandırdığımıza dikkat edin. “ekran” gibi isterseniz farklı bir isim verebilirsiniz. Eğer değiştirirseniz yazının geri kalanında lcd’yi yeni adla değiştirmeniz gerekecektir.

Örneğin, LCD pini D7’nin Arduino pininden 2’ye bağlanmasını istediğinizi varsayalım. D7’nin yerine şu şekilde “7” koyunuz: . Bu işlev, programın bölümünün önüne yerleştirmeliyiz çünkü pinleri tanımlama yapıyoruz eğer en üste yerleştirmezsek hata alırız.


funduszeue.info( )#

Bu komut, LCD’nin boyutlarını ayarlar. Programın bölümünde herhangi bir LiquidCrystal işlevinin önüne koyulmalıdır. Satır ve sütunların sayısını olarak belirtilmelidir. Bu parametreler aracılığı ile LCD ekranımızın kaç satır ve kaç sütun olduğunu belirtiriz. 16x2 LDC’lerde, kullanmamız gerekiyor veya 20x4 LCD içinde kullanabilirsiniz.


funduszeue.info("")#

Bu komut, veya bölümünde kullanılabilir. LCD ekranın ilk sütununa ve satırına bir mesaj yazdırır. Kullanımı: ile ekrana yazdırılır. Metnin etrafına tırnak işaretleri koymanız gerektiğini unutmayın. Sayıları veya değişkenleri yazdırmak istediğinizde, tırnak işareti gerekmez. ile sayıları ondalık, ikili, onaltılık ve sekizlik tabanda yazdırabilir. Hemen bir örnek yapalım:

LCD Ekranda şekilde gözükecektir:


funduszeue.info( )#

Bu komut, veya bölümünde kullanılabilir. LCD’de görüntülenen herhangi bir metni veya veriyi siler ve imleci ekranın sol üst köşesine (ilk satır ve ilk sütun) konumlandırır.

İsterseniz şu ana kadar öğrendiklerimizle bir yanıp sönen yazı yapalım.

LCD Ekranda şekilde gözükecektir:


funduszeue.info( )#

Bu komut, imleci ekranın 0. satıra ve 0. sütuna yani ekranın sol üst köşesine imlecin gelmesini sağlar. Eğer komutunu kullandıktan sonra kullanırsak üzerine yazacaktır. Örneğin ekrana “projedefteri” yazalım ve sonra komutunu kullandıktan sonra funduszeue.info ile ekrana “” yazdıralım.

Ekranda şu şekilde gözükecektir:


funduszeue.infosor( )#

Bu komut ekran imlecinin pozisyonunu ayarlamak için kullanılır. komutuna benzer ancak ‘dan daha kullanışlıdır. Çünkü bu komut imleci (ve herhangi bir yazılı metni vb.) ekranın istediğimiz herhangi bir yerine yerleştirir. Programın ya da bölümünde kullanılabilir.

fonksiyonu parametre olarak aldığı satır ve sütun numarasını temsil eden LCD ekran hücresine imleci konumlandırır.

İmleç konumu, mantığı ile çalışır. Sütun ve satır koordinatları sıfırdan başlayarak sırasıyla ve () Örneğin, yukarıda yaptığımız “projedefteri” programının bölümünde kullanarak, “projedefteri” alt satırda ve sağa üçünçü pixel alanına imleci kaydırarak yazdıralım.

LCD Ekranda şekilde gözükecektir:


funduszeue.info( ) & funduszeue.infoor( )#

Bu komut imleci görünür yapar. İmleç, LCD’ye yazdırdığımız sonra ki karakterlerin altına gelen yatay bir çizgidir. komutu imleci kapatır. ve bir çok metin giriş alanında gördüğümüze benzer yanıp sönen imleci yardırmak için bölümünde kullanılabilir. Hemen bir yanıp sönen imleç yapalım.

LCD Ekranda şekilde gözükecektir:


display( ) & noDisplay( )#

Bu komutlar ekrandaki yazının gizlenmesini ve tekrar görünmesini sağlar. fonksiyonu hafızadan silme, temizleme işlevini görüyorken, ve fonksiyonları ise ekrandaki yazının gizlenmesini ya da görünmesini sağlar.

Ekranda şu şekilde gözükecektir:


funduszeue.info( )#

LCD’ye farklı tiplerde ver yazdırmak için bu komutu kullanabilirsiniz, örneğin DHT11’den gelen sıcaklık ve nem bilgilerini, bir HCSR sensöründen gelen uzaklık, yakınlık bilgisini ekrana yazdırabilirsiniz. Kendimiz oluşturduğumuz özel karakterleri yazdırmak amacıylada kullanabiliriz.


funduszeue.infoChar( )#

Bu komut kendi özel karakterlerimizi oluşturmamıza yarar. 16x2 LCD’nin her bir krakterinin 5 piksel genişliği ve 8 piksel yüksekliği vardır. Tek bir programda 8 farklı özel karakter tanımlayabiliriz. Örneğin ekrana Türkçe karakter olarak “ç” harfini yazalım. Sizde kendinize özel karakter yapmak istiyorsanız buraya tıklayın.

LCD Ekranda şekilde gözükecektir:


blink( ) & noBlink( )#

Bu komut, döngü başına yaklaşık milisaniyede bir imlecin bulunduğu pixeli yakıp sönmesini sağlar. Bunu alanında kullanılır. komutu ise pixeli söndürür. Hemen bir örnek yapalım.

LCD Ekranda şekilde gözükecektir:


funduszeue.infoDisplayLeft( )#

Bu komut, LCD’ye yazdırdığımız her şeyi alır ve sola doğru taşır. Bunu takiben bir gecikme komutu ile bölümünde kullanılmalıdır. Komut, ilk karaktere geri dönmeden önce metni 40 alan sola taşır. Bu kod, “projedefteri” metnini, karakter başına bir saniyede olmak üzere sola taşır, hemen bir örnek kod ile görelim.

LCD Ekranda şekilde gözükecektir:


funduszeue.infoDisplayRight( )#

Bu komut, gibi davranır ancak metni sağa taşır.

LCD Ekranda şekilde gözükür:


funduszeue.inforoll( )#

Bu komut bir metin dizisi alır ve dizinin karakter sayısının artışlarıyla sağdan sola kaydırır. Örneğin; 3 karakter uzunluğunda bir metin diziniz varsa, her adımda metni 3 alan sola kaydırır:

LCD Ekranda şekilde gözükür:


funduszeue.infoscroll( )#

, işlevini kapatır. Kayan metin veya animasyon dizileri oluşturmak için bölümünde işlevinden önce veya sonra bu işlevi kullanabilirsiniz.


funduszeue.infooLeft( )#

Bu komut, metnin ekrana yazdırıldığı yönü ayarlamamıza yarar. Varsayılan mod, komutunu kullanarak soldan sağa doğrudur, ancak metnin ters yönde yazmak istiyorsak bu komutu kullanabilirsiniz, aşağıdaki örnekteki gibidir.

LCD Ekranda şekilde gözükür:


16x2 LCD Ekranı Çevrimiçi Kullanma#

Aşağıdan çevrimiçi olarak çalıştırabilirsiniz. 😊 Eğer kendiniz düzenleyip değiştirmek istiyorsanız buraya tıklayabilirsiniz. 😉


Kapanış 🙌🏻#

Umarım yararlı sizin için yararlı bir blog olmuştur. 🙂 Sizden bir ricam var, 😀 aşağıda bulunan “Sen ne düşünüyorsun?” bölümünden düşünceni paylaşarak ve yorum yaparak hem bana destek olabilir ve daha çok kişiye ulaşabilmesini sağlayabilir hemde görüşünüzü öğrenebilirim. 😊 En güncel, neredeyse tüm kaynaklarda araştırarak dev bir blog oluştu. Aylardır yapmaya ve yazmaya devam ettiğim bir blog oldu… Yardımcı olabildiysem ne mutlu bana! Sağlıcakla… 🥰

Arduino 16×2 LCD Ekran kullanımı, bir çok projede kullanıcı arayüzü bakımında oldukça zengin bir kullanım alanına sahiptir. LCD ekran kullanarak, veri takibi, basit oyun senaryoları, güvenlik sistemleri, sensör okumaları ya da otomasyon işlemlerine entegre edebilirsiniz.

Yazının altına doğru, kütüphanenin sağladığı diğer fonksiyonları ve özel karakter yapımını görebilirsiniz.

16X2 Karakter LCD ekranların bazı modelleri üzerinde I2C devresi ile beraber gelmektedir bu sayede kalabalık kablo görüntüsü yerine 2 adet kablo ile veri aktarımı sağlanmaktadır. Daha önceki yazılarımızda I2C devresi olmayan modeller ile işlemler yaptık. Bu yazımızda hem I2C entegresi üzerinde gelen bir LCD ekranla hem de I2C devresi olmayan bir LCD ekran ile işlem yapacağız.

Önceki LCD Ekran yazılarımız


I2C Devresi Olan LCD Ekran

I2C, Inter-IC’nin kısaltmasıdır. Ve bir BUS türüdür. I2C, senkron, çoklu bağımlı, çoklu ana paket anahtarlamalı, tek uçlu bir seri veriyoludur. Aynı veriyoluna birden fazla çip bağlanabilir, Seri Veri Hattı (SDA) ve Seri Saat Hattı (SCL) kullanır. Diğer voltajlara sahip sistemlere izin verilmesine rağmen, kullanılan tipik voltajlar +5 V veya +3,3 V’dir. I2C protokolü hakkında daha fazla bilgi için buraya tıklayın.

Arduino 16x2 LCD Ekran Kullanımı arduino 16x2 lcd ekran,arduino 16x2 lcd ekran kullanımı,arduino lcd ekran,arduino lcd ekrana yazı gelmiyor,arduino i2c lcd ekran

Gerekli Malzemeler

  • Geliştirme Kartı(Arduino UNO)
  • 16×2 Karakter LCD Ekran
  • 16×2 LCD I2C Devresi
  • Bağlantı Kabloları
  • Potansiyometre I2C üzerinde Mevcut
Arduino 16x2 LCD Ekran Kullanımı arduino 16x2 lcd ekran,arduino 16x2 lcd ekran kullanımı,arduino lcd ekran,arduino lcd ekrana yazı gelmiyor,arduino i2c lcd ekran

Bağlantı Şeması

Arduino 16x2 LCD Ekran Kullanımı arduino 16x2 lcd ekran,arduino 16x2 lcd ekran kullanımı,arduino lcd ekran,arduino lcd ekrana yazı gelmiyor,arduino i2c lcd ekran
Arduino UNOI2C Devreli LCD Ekran
GNDGND
5VVCC
Analog 4(SDA)SDA
Aanalog 5(SCL)SCL

I2C’nin Adresini Bulmak

Genelde bu adres, I2C devresinin arkasında yazar fakat bazen bu yazılandan farklı değerlerde olabilir, kullanılan direnç değeri bu adresi değiştirebilir bu yüzden program koduna geçmeden önce devre şemasındaki bağlantıyı yapıp, I2C adres tarama kodunu karta yükleyip çalıştırmanızı öneriyoruz.

I2C Adres Tarama Kodu

I2C Tarayıcı kodu, I2C cihazlarının sayısını ve I2C cihazlarının adresini bulmak için kullanılır. Bu kodu kartınıza yükledikten sonra seri ekranı açarak adresi öğrenebilirsiniz. Eğer bağlantılar hatalı ya da I2C devresi bozuksa I2C cihazı bulunamaz.

Adres bulunduktan sonra “proje kodu” kısmındaki gerekli adresi değiştirmelisiniz.

#include <Wire.h>voidsetup() { funduszeue.info(); funduszeue.info(); funduszeue.infon("\nI2C Tarayici"); } voidloop() { byte error, address; int Devices; funduszeue.infon("Taraniyor"); Devices =0; for (address =1; address <; address++ ) { funduszeue.inforansmission(address); error = funduszeue.infonsmission(); if (error ==0) { funduszeue.info("0x adresinde I2C cihazı bulundu"); if (address <16) funduszeue.info("0"); funduszeue.info(address, HEX); funduszeue.infon(" !"); Devices++; } elseif (error ==4) { funduszeue.info("0x adresinde bilinmeyen hata"); if (address <16) funduszeue.info("0"); funduszeue.infon(address, HEX); } } if (Devices ==0) funduszeue.infon("I2C cihazı bulunamadı\n"); else funduszeue.infon("bitti\n"); delay(); }

Proje Kodu

Buradaki adres çoğu kart ile çalışmaktadır fakat, kontrol ederek kendi bulduğunuz adresi yazmanızı öneriyoruz.

#include <Wire.h> #include <LiquidCrystal_I2C.h> LiquidCrystal_I2C lcd(0x27, 16, 2); //0x27 kısmına kendi adresinizi yazmanır funduszeue.infotup() { funduszeue.info(16,2); funduszeue.infoght(); funduszeue.info(); funduszeue.infosor(4,0); funduszeue.info("funduszeue.info"); } voidloop() { }

I2C Devresi Olmayan LCD Ekran

Genel olarak başlangıç için oldukça yaygın kullanılan bu ekran, oldukça fazla bağlantı kablosu gerektirmektedir. Ayrıca ekranın parlaklığını ayarlamak bir potansiyometre ya da direnç ve arduino kodu üzerinden bir pine gerek çıkışı vererek ayarlanmaktadır.

Bu içeriğin bu bölümü, metin ve sayıları görüntülemenin temellerini kapsar. İkinci ksımda, özel karakterlerin nasıl görüntüleneceğini ve LiquidCrystal Arduino kütüphanesinin diğer işlevlerini nasıl kullanabileceğinizi daha ayrıntılı olarak ele alacağız.

Gerekli Malzemeler

  • Geliştirme Kartı(Arduino UNO)
  • 16×2 Karakter LCD Ekran
  • Bağlantı Kabloları
  • Potansiyometre(Opsiyonel)

Göreceğiniz gibi, bu ekranları kontrol etmek için oldukça fazla bağlantıya ihtiyacınız var. Bu nedenle onları arkaya monte edilmiş bir I2C arayüz modülü ile kullanabilirsiniz.

Bağlantı Şeması

Arduino 16x2 LCD Ekran Kullanımı arduino 16x2 lcd ekran,arduino 16x2 lcd ekran kullanımı,arduino lcd ekran,arduino lcd ekrana yazı gelmiyor,arduino i2c lcd ekran

LCD’yi 4-bit modunda kullanacağız, yani D0-D3’e herhangi bir şey bağlamanıza gerek yok. R/W pimi toprağa bağlanır, bu pim DÜŞÜK çekecek ve LCD’yi YAZMA moduna ayarlayacaktır.

Arduino UNO16X2 LCD Ekran
GNDVSS
5V VCCVDD
Boş ya da
gerekli pin
V0 Pini: 10Ω Potansiyometre (ya da geliştirme kartı
üzerinden farklı bir kablo ile güç sağlama)
2RS
GNDRW
3E
Sırayla Sırayla D4-D7
5V VCCA(Anot)
GNDK(Katot)

Ekranı test etmek için aşağıdaki yukarıda gösterildiği gibi bağlantıları yapmanız gerekecektir.

Çoğu LCD’de LED arka ışığı için yerleşik bir seri direnç bulunur. Bunu, pin 15’e (Anot) bağlı LCD’nin arkasında bulmalısınız. Ekranınızda direnç yoksa 5 V ile pin 15 arasında bir tane eklemeniz gerekecektir. Ω direnç kullanmak güvenli olacaktır, ancak bu değer ekranınızı biraz karartabilir. Arka ışığın maksimum akım derecesi için veri sayfasını kontrol edebilir ve bunu uygun bir direnç değeri seçmek için kullanabilirsiniz.

LCD’yi bağladıktan sonra, ekranın parlaklığını ayarlamanız gerekecektir. Bu, 10 kΩ potansiyometreyi saat yönünde veya saat yönünün tersine çevirerek yapılabilir ya da kod üzerinde dijital bir pine gerekli voltaj çıkışını ayarlayıp bu potansiyometre yerine bağlanabilir.

Proje Kodu

Basit bir şekilde ilk kullanımı böyle gerçekleştirebilirsiniz:

#include <LiquidCrystal.h>//(RS, E, D4, D5, D6, D7): LiquidCrystal lcd = LiquidCrystal(2, 3, 4, 5, 6, 7); voidsetup() { // Kullandığımız LCD 16X2 olduğu için: funduszeue.info(16, 2); } voidloop() { // İmleci üçüncü sütuna ve ilk satıra ayarlayın, sayma 0'dan başlar: funduszeue.infosor(2, 0); // dizeyi yazdır 'devreyakan': funduszeue.info("devreyakan"); // İmleci üçüncü sütuna ve ikinci satıra ayarlayın: funduszeue.infosor(2, 1); // dizeyi yazdır 'LCD Ekran': funduszeue.info("LCD Ekran"); }

Kitaplığı ekledikten sonraki adım, LiquidCrystal sınıfının yeni bir örneğini oluşturmaktır. Bu, LiquidCrystal(RS E, d4, d5, d6, d7) işleviyle yapılır. Parametre olarak ekranı bağladığımız Arduino pinlerini kullanıyoruz. Ekranı ‘lcd’ olarak adlandırdığımızı unutmayın. ‘menu_display’ gibi isterseniz farklı bir isim verebilirsiniz.

LCD Ekran Kütüphanesi Fonksiyonları

LiquidCrystal Arduino kütüphanesi yararlı bulabileceğiniz birçok başka yerleşik işlev vardır. Aşağıda açıklama ve bazı kod parçacıklarıyla birlikte bunlara genel bir bakış bulabilirsiniz.

clear()

LCD ekranı temizler ve imleci ekranın sol üst köşesine (ilk satır ve ilk sütun) konumlandırır. Bir döngüde farklı sözcükleri görüntülemek için bu işlevi kullanabilirsiniz.

#include <LiquidCrystal.h>// (RS, E, D4, D5, D6, D7) LiquidCrystal lcd = LiquidCrystal(2, 3, 4, 5, 6, 7); voidsetup() { funduszeue.info(16, 2); } voidloop() { funduszeue.info(); funduszeue.info("temizle"); delay(); funduszeue.info(); funduszeue.info("iknci satir"); delay(); }

home()

İmleci LCD’nin sol üst köşesine konumlandırır. Ekranı da temizlemek istiyorsanız clear() kullanın.

cursor()

LCD imlecini görüntüler: yazdırılacak sonraki karakterin konumunda bir alt çizgi (çizgi).

noCursor()

LCD imlecini gizler. Aşağıdaki örnek, “cursor()”ın sonunda yanıp sönen bir imleç oluşturur.

#include <LiquidCrystal.h>// (RS, E, D4, D5, D6, D7) LiquidCrystal lcd = LiquidCrystal(2, 3, 4, 5, 6, 7); voidsetup() { funduszeue.info(16, 2); funduszeue.info("cursor()"); } voidloop() { funduszeue.info(); delay(); funduszeue.infoor(); delay(); }

blink()

Yanıp sönen blok stili bir LCD imleç oluşturur: yazdırılacak sonraki karakterin konumunda yanıp sönen bir dikdörtgen.

noBlink()

Blok stili LCD imleci devre dışı bırakır. Aşağıdaki örnek, yanıp sönen imleci 5 saniyeliğine görüntüler ve ardından 2 saniyeliğine devre dışı bırakır.

#include <LiquidCrystal.h>// (RS, E, D4, D5, D6, D7) LiquidCrystal lcd = LiquidCrystal(2, 3, 4, 5, 6, 7); voidsetup() { funduszeue.info(16, 2); funduszeue.info("blink() ornegi"); } voidloop() { funduszeue.info(); delay(); funduszeue.infok(); delay(); }

display()

Bu fonksiyon LCD ekranı açar ve ekrana yazdırılan herhangi bir metni veya imleçleri görüntüler.

noDisplay()

Bu işlev, LCD’ye yazdırılan tüm metinleri veya imleçleri kapatır. Metin/veriler LCD belleğinden silinmez. Bu, display() işlevi çağrıldığında yeniden gösterileceği anlamına gelir.

Aşağıdaki örnek, yanıp sönen bir metin efekti oluşturur.

#include <LiquidCrystal.h>// (RS, E, D4, D5, D6, D7) LiquidCrystal lcd = LiquidCrystal(2, 3, 4, 5, 6, 7); voidsetup() { funduszeue.info(16, 2); funduszeue.info("Yanip sonen"); } voidloop() { funduszeue.infoy(); delay(); funduszeue.infolay(); delay(); }

write()

Bu fonksiyon LCD’ye bir karakter yazmak için kullanılabilir. Daha fazla bilgi için aşağıdaki özel karakterlerin oluşturulması ve görüntülenmesiyle ilgili bölüme bakın.

scrollDisplayLeft()

Ekranın içeriğini (metin ve imleç) bir boşluk sola kaydırır. Bir kayan metin animasyonu oluşturmak için bu işlevi kodun döngü bölümünde delay() ile birlikte kullanabilirsiniz.

#include <LiquidCrystal.h>// (RS, E, D4, D5, D6, D7) LiquidCrystal lcd = LiquidCrystal(2, 3, 4, 5, 6, 7); voidsetup() { funduszeue.info(16, 2); funduszeue.info("scrollDisplayLeft() ornegi"); } voidloop() { funduszeue.infoDisplayLeft(); delay(); }

scrollDisplayRight()

Ekranın içeriğini (metin ve imleç) bir boşluk sağa kaydırır.

autoscroll()

Bu işlev, LCD’nin otomatik olarak kaydırılmasını açar. Bu, ekrana çıkan her karakterin önceki karakterleri bir boşluk öteye itmesine neden olur. Geçerli metin yönü soldan sağa ise (varsayılan), ekran sola kayar; geçerli yön sağdan sola ise, ekran sağa kayar. Bu, her yeni karakterin LCD’de aynı konuma çıktısının alınması etkisine sahiptir.

Aşağıdaki örnek, otomatik kaydırmayı sağlar ve LCD’nin (16,0) konumunda 0 ila 9 arasındaki karakterleri yazdırır.

#include <LiquidCrystal.h>// : (RS, E, D4, D5, D6, D7) LiquidCrystal lcd = LiquidCrystal(2, 3, 4, 5, 6, 7); voidsetup() { funduszeue.info(16, 2); } voidloop() { funduszeue.inforoll(); funduszeue.infosor(16, 0); for (int x =0; x <10; x++) { funduszeue.info(x); delay(); } funduszeue.info(); }

noAutoscroll()

LCD’nin otomatik kaydırılmasını kapatır.

leftToRight()

Bu işlev, ekranın sola dayalı (varsayılan) gibi metnin imleçten sağa doğru akmasına neden olur.

rightToLeft()

Bu işlev, ekranın sağa hizalanmış gibi metnin imleçten sola akmasına neden olur.

LCD Ekranda Özel Karakterler Oluşturmak

createChar() işleviyle LCD’de özel karakterler oluşturmak ve görüntülemek mümkündür. Bu, özellikle standart ASCII karakter kümesinin parçası olmayan bir karakteri görüntülemek istiyorsanız kullanışlıdır.

Teknik bilgi: Hitachi HD LCD kontrol cihazını temel alan LCD’ler iki tür belleğe sahiptir: CGROM ve CGRAM (Karakter Üretici ROM ve RAM). CGROM, standart 8 bitlik karakter kodlarından tüm 5 x 8 noktalı karakter desenlerini oluşturur. CGRAM, kullanıcı tanımlı karakter kalıpları üretebilir.

5 x 8 noktalı ekranlar için, CGRAM 8 adede kadar özel karakter ve 5 x 10 noktalı ekranlar için 4 adede kadar yazabilir.

Örnek Kod

Aşağıdaki örnek, sekiz özel karakter (0 – 7 numaralı) oluşturur ve görüntüler.

#include <LiquidCrystal.h>// (RS, E, D4, D5, D6, D7) LiquidCrystal lcd = LiquidCrystal(2, 3, 4, 5, 6, 7); byte kalp[] = { B, B, B, B, B, B, B, B }; byte zil[] = { B, B, B, B, B, B, B, B }; byte uzayli[] = { B, B, B, B, B, B, B, B }; byte tik[] = { B, B, B, B, B, B, B, B }; byte hoparlor[] = { B, B, B, B, B, B, B, B }; byte ses[] = { B, B, B, B, B, B, B, B }; byte kurukafa[] = { B, B, B, B, B, B, B, B }; byte kilit[] = { B, B, B, B, B, B, B, B }; voidsetup() { funduszeue.info(16, 2); funduszeue.infoChar(0, kalp); funduszeue.infoChar(1, zil); funduszeue.infoChar(2, uzayli); funduszeue.infoChar(3, tik); funduszeue.infoChar(4, hoparlor); funduszeue.infoChar(5, ses); funduszeue.infoChar(6, kurukafa); funduszeue.infoChar(7, kilit); funduszeue.info(); funduszeue.info("Ozel Karakter"); } voidloop() { funduszeue.infosor(0, 1); funduszeue.info(byte(0)); funduszeue.infosor(2, 1); funduszeue.info(byte(1)); funduszeue.infosor(4, 1); funduszeue.info(byte(2)); funduszeue.infosor(6, 1); funduszeue.info(byte(3)); funduszeue.infosor(8, 1); funduszeue.info(byte(4)); funduszeue.infosor(10, 1); funduszeue.info(byte(5)); funduszeue.infosor(12, 1); funduszeue.info(byte(6)); funduszeue.infosor(14, 1); funduszeue.info(byte(7)); }

Arduino ile LCD&#;ye Yazı Yazma

robotistan - Türkiye'nin Maker Marketi !

Liquid Crystal Display(LCD)  olarak geçen 16 sütün 2 satırdan oluşan ve  mavi arkaplan ışıklı bir yazı ve karakter göstergesidir. Üzerinde 16 tane pin bulunmaktadır.  Bacak bağlantılarına baktığımızda ;

 VSSucu Gnd girişidir. 0 volt negatif gerilime bağlanır. VDD ucu 5 volt pozitif gerilime bağlanır. VE girişi Ekrandaki yazının netliğini ayarlamak için kullanılan giriştir. RS(Register Select) LCD ekranın ne yapacağını, register da bir deger olup olmadığını kontrol eder. R/W(Read/Write)  pinlerin modlarını okuma veya yazma olarak değiştirmek için kullanılır. E(Enable) Pinleri okuma modunda aktif hale getirir. D0-D7  Bit bit aldığı değerleri okur. Buradan ekrana yazdırılacak yazılar bit bit gönderilir. LCD de okur. Devremiz görsel amaçlı olarak programda çizilmiş olup sayfaya eklenmiştir.

Devremizde LCD bacak bağlantıları:

LCD RS pin to digital pin 9
LCD Enable pin to digital pin 10
LCD D4 pin to digital pin 2
LCD D5 pin to digital pin 3
LCD D6 pin to digital pin 4
LCD D7 pin to digital pin 5

Malzemeler ve Tavsiye Ürün Linkleri

 1 x Arduino UNO R3

1Kohm Potansiyometre

2&#;16&#;lık LCD

Breadboard

Devre Programı

[php]

#include <LiquidCrystal.h>
LiquidCrystal lcd(9, 10, 2, 3, 4, 5);

void setup()

{
funduszeue.info(16, 2); //16 sütun 2 satır bir ekranımız olduğunu belirtir.
funduszeue.info("SAKARYA_UNIVERSITESI");  // Ekrana yazı yazdırır.
}

void loop()
{
int f;
for(f=1; 15>f; f++)
{
funduszeue.infosor(f, 1); //Ekranın alt satırına yazı yazdırmak için kullanılır.
delay(); //Gecikme.
funduszeue.info("ROBOTURKA"); // Ekrana yazı yazdırır.
}}[/php]

Devre Videosu

Merhaba arkadaşlar,

Bu yazıda, Arduino ve LCD bağlantılarının nasıl yapılacağını anlatacağım ve size programlayabileceğiniz bütün farklı yolları göstereceğim.

Metni nasıl yazdıracağınızı, metni nasıl kaydıracağınızı, özel karakterleri nasıl yazacağınızı, metni nasıl kırpacağınızı ve metni nasıl konumlandıracağınızı göstereceğim. Bu bilgiler output alacağınız herhangi bir proje için harika olacak ve bu sayede projenizi daha interaktif ve ilginç bir hale getirebileceksiniz.

Kullanacağımız ekran çok uygun bir fiyata alabileceğiniz 16×2 LCD ekran. Ekranın 16&#;2 olarak adlandırılması LCD’nin 2 satıra sahip olduğu ve satır başına 16 karakter görüntüleyebileceği anlamına geliyor. Yani ekran aynı anda 32 adet karakter görüntüleyebiliyor. Bunun dışında kaydırma yaparak 32 karakterden fazlasını da görüntüleyebilirsiniz.

Bu yazıdaki kodlar, standart Hitachi HD sürücüsünü kullanan LCD&#;ler için yazılmıştır. LCD&#;nizin 16 iğnesi varsa, muhtemelen Hitachi HD sürücüsüne sahiptir.

Gerekli malzemeler:

LCD ve Arduino Bağlantıları

Kullandığım LCD&#;deki pinlerin diyagramını aşağıda bulacaksınız. LCD ekranımızda 16 adet pin var. Kullanacağımız ekrana göre pinler ekranın üst, alt veya her iki tarafında da yer alabilir. Çok nadir olarak bazı ekranlarda ise arka aydınlatma ışığı bulunmadığından 14 adet pin yer almaktadır. 15 ve 16 numaralı pinler, ekran aydınlatması bulunan ekranlarda arka ışığı yakmak için kullanılır. Her bir pinden Arduino&#;ya olan bağlantılar aynı olacaktır, ancak pinleriniz LCD üzerinde farklı şekilde düzenlenebilir. Bunun için kullandığınız LCD’nin datasheet’ine bakabilirsiniz.

Ayrıca breadboard’a bağlamadan önce LCD&#;nize 16 pinlik bir başlık lehimlemeniz gerekebilir. LCD&#;yi Arduino&#;nuza bağlamak için aşağıdaki şemayı takip edin:

Yukarıdaki diyagramdaki direnç, arka ışık parlaklığını ayarlar. Tipik bir değer olan Ohm direnç kullandım ama diğer değerler de işe yarayacaktır. Daha küçük dirençler arka ışığı daha parlak hale getirir.

Potansiyometre ekran kontrastını ayarlamak için kullanılır. Ben genellikle 10K Ohm potansiyometre kullanıyorum ancak diğer değerler de çalışır.

Ekranla ilgili tüm teknik bilgileri içeren 16×2 LCD&#;nin datasheet’ini incelemek isterseniz buradan indirebilirsiniz.

Arduino Programlama

Aşağıdaki kodların tamamı Arduino IDE ile önceden yüklenmiş olarak gelen LiquidCrystal kütüphanesini kullanır. Bir kütüphanenin kullanılabilmesi için programa dahil edilmesi gerekir. Aşağıdaki kodlardaki 1. Satır olan #include <LiquidCrystal.h> komutu bu işe yarar. Bir programda bir kütüphane eklediğinizde, kütüphanedeki tüm kod, programınızın koduyla birlikte Ardunio&#;ya yüklenir. Şimdi bağlantılarınızı tamamladıysanız programlamaya başlayabiliriz. Basit bir test programıyla başlayalım. Bu program ekrana “hello, world!” yazdıracaktır. Aşağıdaki kodu Arduino’ya yükleyelim:

#include <LiquidCrystal.h> LiquidCrystal lcd(12, 11, 5, 4, 3, 2); void setup() { funduszeue.info(16, 2); funduszeue.info("hello, world!"); } void loop() { }

LCD Ekranınız şu şekilde gözükmelidir:

LCD Görüntüleme Seçenekleri

LiquidCrystal kütüphanesinin kullanabileceğimiz 19 farklı fonksiyonu vardır. Bu fonksiyonların yazının konumunu değiştirme, ekran boyunca yazıyı kaydırma veya görüntüyü açıp kapatmak gibi işlevleri vardır. Şimdi bu fonksiyonları kısaca inceleyelim:

Arduino LCD Komutları

LiquidCrystal ( )

İşlevi Arduino&#;nun LCD&#;ye bağlanmak için kullandığı pinleri ayarlar. LCD&#;yi kontrol etmek için Arduino&#;nun dijital pinlerinden herhangi birini kullanabilirsiniz. Arduino pin numaralarını bu sırayla parantez içine koyunuz: LiquidCrystal (RS, E, D4, D5, D6, D7). RS, E, D4, D5, D6, D7 LCD pinleridir.

Örneğin, LCD pini D7&#;nin Arduino pin 12&#;ye bağlanmasını istediğinizi varsayalım. D7&#;nin yerine şu şekilde “12” koyunuz: LiquidCrystal (RS, E, D4, D5, D6, 12). Bu işlev, programın void setup () bölümünün önüne yerleştirilmelidir.

funduszeue.info ( )

Bu işlev LCD&#;nin boyutlarını ayarlar. Programın void setup () bölümünde herhangi bir LiquidCrystal işlevinin önüne yerleştirilmelidir. Satır ve sütunların sayısı funduszeue.info (sütunlar, satırlar) olarak belirtilir. 16×2 LCD için, funduszeue.info (16, 2) kullanmanız gerekiyor ve 20×4 LCD için funduszeue.info (20, 4) kullanmanız gerekiyor.

funduszeue.info ( )

Bu işlev, LCD&#;de halihazırda görüntülenen herhangi bir metni veya veriyi siler. funduszeue.info ( ) ile funduszeue.info ( ) öğesini ve void loop ( ) bölümünde delay ( ) işlevini kullanırsanız, basit bir yanıp sönen metin programı oluşturabilirsiniz:

#include <LiquidCrystal.h> LiquidCrystal lcd(12, 11, 5, 4, 3, 2); void setup() { funduszeue.info(16, 2); } void loop() { funduszeue.info("hello, world!"); delay(); funduszeue.info(); delay(); }

Bu kodu Arduino&#;larınıza yüklediğinizde LCD ekranınız aşağıdaki gibi gözükecektir:

funduszeue.info ( )

Bu işlev, imleci ekranın sol üst köşesine yerleştirir ve sonraki metni bu konuma yazdırır. Örneğin, aşağıdaki kod “hello, world!” metninin ilk üç harfini X ile değiştirir:

#include <LiquidCrystal.h> LiquidCrystal lcd(12, 11, 5, 4, 3, 2); void setup() { funduszeue.info(16, 2); funduszeue.info("hello, world!"); } void loop() { funduszeue.info(); funduszeue.info("XXX"); }

Ekranınız şu şekilde gözükecektir:

funduszeue.infosor ( )

Benzer, ancak funduszeue.info ( ) &#;dan daha kullanışlıdır. Bu işlev, imleci (ve herhangi bir yazılı metni) ekranın herhangi bir yerine yerleştirir. Programınızın void setup ( ) veya void loop ( ) bölümünde kullanılabilir.

İmleç konumu, funduszeue.infosor (sütun, satır) ile tanımlanır. Sütun ve satır koordinatları sıfırdan başlar (sırasıyla ve ). Örneğin, yukarıdaki “hello, world!” programının void setup ( ) bölümünde funduszeue.infosor (2, 1) kullanılarak, “hello, world!” alt satıra yazdırılır ve sağa iki alan kaydırılır.

#include <LiquidCrystal.h> LiquidCrystal lcd(12, 11, 5, 4, 3, 2); void setup() { funduszeue.info(16, 2); funduszeue.infosor(2, 1); funduszeue.info("hello, world!"); } void loop() { } 

Yukarıdaki kodu Arduino&#;ya yüklediğinizde ekranınız aşağıdaki gibi gözükecektir:

funduszeue.info ( )

LCD&#;ye farklı tipte veri yazmak için bu işlevi kullanabilirsiniz, örneğin bir sıcaklık sensöründen okuma veya bir GPS modülünden gelen koordinatlar. Kendiniz oluşturduğunuz özel karakterleri yazdırmak için de kullanabilirsiniz. Programınızın void setup ( ) veya void loop ( ) bölümünde funduszeue.info ( ) öğesini kullanabilirsiniz.

funduszeue.info ( )

Bu işlev, LCD&#;ye metin yazdırmak için kullanılır. Programın void setup () bölümünde veya void loop () bölümünde kullanılabilir.

Harfleri ve sözcükleri yazdırmak için, metnin etrafına tırnak işaretleri (” “) yerleştirin. Örneğin; hello, world!’ü yazdırmak için yukarıda funduszeue.info (“hello,world!”) kullanmıştık.

Sayıları yazdırmak için tırnak işaretleri gerekmez. Örneğin; &#;u yazdırmak için funduszeue.info () yazabilirsiniz.

funduszeue.info ( ); sayıları ondalık, ikili, onaltılık ve sekizlik bazlarda yazdırabilir. Örneğin:

  • funduszeue.info (, DEC) “” yazar.
  • funduszeue.info (, BIN) “” yazar.
  • funduszeue.info (, HEX) “64” yazar.
  • funduszeue.info (, OCT) “” yazar.

funduszeue.info( )

Bu işlev görünür bir imleç oluşturur. İmleç, LCD&#;ye yazdırılacak bir sonraki karakterin altına yerleştirilmiş yatay bir çizgidir.

funduszeue.infoor ( ) işlevi imleci kapatır. funduszeue.info ( ) ve funduszeue.infoor ( ) birçok metin giriş alanında gördüğünüze benzer yanıp sönen imleci yazdırmak için void loop ( ) bölümünde birlikte kullanılabilir.

#include <LiquidCrystal.h> LiquidCrystal lcd(12, 11, 5, 4, 3, 2); void setup() { funduszeue.info(16, 2); funduszeue.info("hello, world!"); } void loop() { funduszeue.info(); delay(); funduszeue.infoor(); delay(); }

Yukarıdaki kodu yüklediğinizde ekranınız şu şekilde gözükecektir:

İmleçler, funduszeue.infosor ( ) işleviyle ekranın herhangi bir yerine yerleştirilebilir. Bu kod “hello, world!” deki ünlem işaretinin hemen altına yanıp sönen bir imleç yerleştirir:

#include <LiquidCrystal.h> LiquidCrystal lcd(12, 11, 5, 4, 3, 2); void setup() { funduszeue.info(16, 2); funduszeue.info("hello, world!"); } void loop() { funduszeue.infosor(12, 1); funduszeue.info(); delay(); funduszeue.infosor(12, 1); funduszeue.infoor(); delay(); } 

funduszeue.info ( )

Bu işlev, döngü başına yaklaşık milisaniyede bir yanıp sönen blok stili bir imleç oluşturur. Bunu void loop ( ) bölümünde kullanın. funduszeue.infok ( ) işlevi yanıp sönen blok imlecini devre dışı bırakır.

funduszeue.infoy ( )

Bu işlev, LCD ekrana yazdırılmış herhangi bir metin veya imleci açar. funduszeue.infolay ( ) işlevi, LCD’nin belleğinden silmeden LCD’ye yazdırılan herhangi bir metni veya imleci kapatır.

Bu iki işlev, yanıp sönen bir metin efekti oluşturmak için void loop ( ) bölümünde birlikte kullanılabilir. Bu kod “hello, world!” metnini açıp kapatacak:

#include <LiquidCrystal.h> LiquidCrystal lcd(12, 11, 5, 4, 3, 2); void setup() { funduszeue.info(16, 2); funduszeue.info("hello, world!"); } void loop() { funduszeue.infoy(); delay(); funduszeue.infolay(); delay(); }

funduszeue.infoDisplayLeft ( )

Bu işlev, LCD&#;ye yazdırılan her şeyi alır ve sola taşır. Bunu takiben bir gecikme komutu ile void loop ( ) bölümünde kullanılmalıdır. İşlev, ilk karaktere geri dönmeden önce metni 40 alan sola taşır. Bu kod, &#;hello, world!&#; metnini, karakter başına bir saniyede olmak üzere sola taşır:

#include <LiquidCrystal.h> LiquidCrystal lcd(12, 11, 5, 4, 3, 2); void setup() { funduszeue.info(16, 2); funduszeue.info("hello, world!"); } void loop() { funduszeue.infoDisplayLeft(); delay(); }

funduszeue.infoDisplayRight( )

Bu işlev, funduszeue.infoDisplayLeft ( ) gibi davranır ancak metni sağa taşır.

funduszeue.inforoll( )

Bu işlev bir metin dizisi alır ve dizinin karakter sayısının artışlarıyla sağdan sola kaydırır. Örneğin; 3 karakter uzunluğunda bir metin diziniz varsa, her adımda metni 3 alan sola kaydırır:

#include <LiquidCrystal.h> LiquidCrystal lcd(12, 11, 5, 4, 3, 2); void setup() { funduszeue.info(16, 2); } void loop() { funduszeue.infosor(0, 0); funduszeue.inforoll(); funduszeue.info("ABC"); delay(); }

Bu kodu çalıştırdığınızda ekranınız aşağıdaki gibi gözükecektir:

funduszeue.infoDisplay ( ) işlevleri gibi; metin, tekrarlanmadan önce en fazla 40 karakter uzunluğunda olabilir. İlk bakışta, bu işlev kullanışsız gözüküyor olabilir, ancak özel karakterlerle animasyon oluşturmak için çok yararlı olabilir.

funduszeue.infoscroll( )

funduszeue.infoscroll ( ), funduszeue.inforoll ( ) işlevini kapatır. Kayan metin veya animasyon dizileri oluşturmak için void loop ( ) bölümünde funduszeue.inforoll ( ) işlevinden önce veya sonra bu işlevi kullanabilirsiniz.

funduszeue.infooLeft()

Bu işlev, metnin ekrana yazdırıldığı yönü ayarlar. Varsayılan mod, funduszeue.infoRight ( ) komutunu kullanarak soldan sağa doğrudur, ancak metnin ters yönde yazılışının yararlı olduğu bazı durumlar bulabilirsiniz:

#include <LiquidCrystal.h> LiquidCrystal lcd(12, 11, 5, 4, 3, 2); void setup() { funduszeue.info(16, 2); funduszeue.infosor(12, 0); funduszeue.infooLeft(); funduszeue.info("hello, world!"); } void loop() { }


funduszeue.infoChar ( )

Bu komut kendi özel karakterlerinizi oluşturmanıza izin verir. 16×2 LCD&#;nin her bir karakterinin 5 piksel genişliği ve 8 piksel yüksekliği vardır. Tek bir programda 8 farklı özel karakter tanımlanabilir. Kendi karakterlerinizi tasarlamak için, özel karakterinizin ikili karakter matrisini LCD karakter jeneratöründen yapmanız veya kendiniz haritalamanız gerekir. Aşağıdaki kod bir derece sembolü (°) oluşturur:

#include <LiquidCrystal.h> LiquidCrystal lcd(12, 11, 5, 4, 3, 2); byte customChar[8] = { 0b, 0b, 0b, 0b, 0b, 0b, 0b, 0b }; void setup() { funduszeue.infoChar(0, customChar); funduszeue.info(16, 2); funduszeue.info((uint8_t)0); } void loop() { }

Arduino Lcd i2c Kullanımı

Normal şartlarda arduino ile 16*2 lcd ekran kullanmak istersek, haberleştirmek için 8 adet kablo bağlamamız gerekiyor, devre şemasında göründüğü gibi.

Arduino lcd bağlantı

Bu durum devre şemasını karışık yapmakla kalmıyor projede yer sıkıntısına da neden oluyor. Aynı şekilde arduino da fazladan pin işgal etiği için proje yaparken diğer komponentlere pin yetersiz kalıyor. Bu sorunları çözmek için I2C haberleşme protokolü kullanılıyor. Lcd ekranda bu protokolü kullanabilmemiz için üretilmiş olan modüller mevcut. Bu modüler bazen lcd ekranın üzerinde lehimli olarak satılmakta bazen ise ayrıyeten satılmaktadır.

Lcd ekranı normalde 8 adet pin ile kullanırken, bu modül sayesinde 4 adet pin ile lcd ekranı kullanabiliyoruz. Bu pinler sırasıyla GND, VCC, SDA ve SCL  pinleridir.

Arduino ı2c modülü bağlantısı

Arduino modeline göre I2C pinleri farklılık gösterebilir, aşağıda bulunan tablodan bu pinleri öğrenebilirsiniz

Arduino türüSDA piniSCL pini
Arduino UnoA4A5
Arduino Mega2021
Arduino Leonardo23
Arduino Due2021
Arduino NanoA4A5

Arduino I2c Lcd Kütüphanesi kurulumu

Arduino ile ı2c modülü kullanabilmek için kütüphane yüklemeniz gerekiyor. Popüler kütüphanelerden birini sizin için eklemdim, indir butonuna basarak kütüphaneyi indirebilirsiniz.

İndirdiğiniz Kütüphaneyi arduino ide&#;ye eklemek için “Taslak > Library ekle > Zıp Kitaplığı Ekle…“ Segmelerini takip ederek kütüphane yöneticisini açalım.

Arduino Ide Taslak Menüsü

Açılan pencerede indirdiğiniz zıp dosyasını bulup seçin. Zıp dosyasını seçmeniz yeterli olacaktır, otomatik olarak kütüphane arduino ıde’ye eklenecektir.

Arduino Ide Kütüphane Çağırma Sayfası

Kütüphane dosyanız bu şekilde yüklendiği zaman sol alt köşede “yüklendi” yazısı çıkması gerekir.

Arduino Ide Arayüzü

Kütüphanenin yüklendiğinden emin olmak için manuel kontrol yapabilirsiniz.

Manüel kontrol nasıl yapılır bilmiyorsanız, Arduino ide&#;ye nasıl kütüphane yüklenir konulu blog yazımızıburdan okumanızı tavsiye ederim.

Arduino İle Lcd Ekrana Yazı Yazma

Arduino ı2c modülü devre şeması

Devre şemasındaki gibi bağlantıyı yapıp kütüphaneyi de yüklediyseniz, sırada lcd ekrana yazı yazmak var.

Lcd ekrana yazı yazmak için örnekteki kodu kullanabilirsiniz.

////// robotistan //// #include <LiquidCrystal_I2C_AvrI2C.h> LiquidCrystal_I2C_AvrI2C lcd(0x27,16,2); void setup() { funduszeue.info(); funduszeue.infoght(); funduszeue.infosor(0,0); funduszeue.info("Hello, world!"); //İlk satıra yazalım funduszeue.infosor(0,1); funduszeue.info("Maker blog"); //İkinci satıra yazalım } void loop() { }

Yukarıdaki kodu çalıştırdığımızda İlk satıra Hello World, ikinci satıra ise Maker blog yazacaktır.

Ancak ilk çalıştırmada ekranda hiçbir şey gözükmemiş olabilir. I2c modülünün arka kısmında bulunan mavi renkli potansiyometreyle oynayarak ekranın kontrasını ayarlayıp ekranda yazının gözükmesini sağlayabilirsiniz.

Bütün bunları yapmanıza ramen ekranda hala bir şey gözükmüyor ise, kodda belirttiğimiz ı2c arabirimi yanlış olabilir.

I2c Lcd Arabirim Adresi Öğrenme

Genelde ı2c arabirimi 0x27 olarak gelmektedir, fakat bazen farklılık gösterebilir. Bu yüzden proje çalışmadı diye üzülmeyin.

Kendi modülünüzün arabirimini öğrenmeniz için alt tarafta bulunan kodu sizinle paylaştım. Kodu arduinoya yükleyerek serial monitörde ekranınızın arabirim adresini görebilirisiniz.

#include <Wire.h> boolean DeviceFound = false; byte error, address; void setup() { funduszeue.info(); funduszeue.info(); funduszeue.infon("\nI2C Araniyor"); for(address = 0; address <= ; address++ ) { funduszeue.inforansmission(address); error = funduszeue.infonsmission(); if (error == 0) { funduszeue.info("I2C cihaz bulundu. Adresi: 0x"); if (address<16) funduszeue.info("0"); funduszeue.infon(address,HEX); DeviceFound = true; break; } else if (error==4) { funduszeue.info("Bilinmeyen hata olustu. Adres: 0x"); if (address<16) funduszeue.info("0"); funduszeue.infon(address,HEX); } } if (DeviceFound == false) funduszeue.infon("Herhangi bir bagli I2C bulunamadi\n"); else funduszeue.infon("Tamamlandi. Kolay gelsin.\n"); } void loop() { }

Kodu derledikten sonra arduinoya yükleyin ve serial monitörü açın. Bu işlemeri doğru yaptıysanız serial monitörünüz aynen bu şekilde gözükecektir.

Arduino serial monitör

Serial monitörde gördüğünüz 0x27 veya benzeri adresi Arduino kodunuzda LCD sınıfın tanımında örnekteki gibi yazmanız gerekecek.

// Parametreler: (Adres, LCD satır karakter sayısı, LCD satır sayısı) LiquidCrystal_I2C_AvrI2C lcd(0x27,16,2);

Her şeyi doğru yaptıysanız ekranınıza yazı gözükecektir.

16×2 LCD ile yapabileceğiniz çok güzel şeyler var. Bu işlevlerden bazılarını birleştirmeyi denemenizi öneriyorum. 🙂 Sorularınızı sormaktan çekinmeyin lütfen. Görüşmek üzere.

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ı