Ders 20/31: LCD1602 ile Arduino kullanarak metin görüntüleme | Robojax
Giriş
LCD1602, Arduino projeleri için en popüler alfanümerik ekranlardan biridir ve bir I2C adaptörüyle birlikte kullanıldığında son derece kolay hale gelir. Bu eğitimde, metin, sayı ve özel karakterlerin nasıl görüntüleneceğini ve ayrıca metnin ekranda nasıl kaydırılacağını öğreneceksiniz. Ayrıca LCD'yi diğer sensörlerle birleştirerek pratik izleme araçları oluşturmayı da göstereceğiz. Bu rehber, daha geniş bir Arduino kursunun parçasıdır ve eviniz, okulunuz veya atölyeniz için kullanışlı cihazlar geliştirmenize yardımcı olmak üzere tasarlanmıştır.
Bu bilgiyle neler yapabileceğinize dair birkaç pratik fikir:
- Sera veya sürüngen muhafazası için sıcaklık ve nem monitörü.
- Projelerinizde pil seviyelerini kontrol etmek için basit bir voltmetre.
- Park yardımcısı veya doluluk oranını gösteren akıllı bir çöp kutusu için mesafe sensörü.
Donanıma Genel Bakış
LCD1602, 16 karakterli 2 satırlı bir ekrandır. Arkadaki modül, standart paralel bağlantıdan gereken kablo sayısını yalnızca dörde düşüren bir I2C (veya I²C) adaptörüdür: Toprak, VCC, SDA ve SCL. Bu, kablolamayı çok daha basit hale getirir ve Arduino'nuzdaki birçok dijital pini boşa çıkarır.
Ekran, yazılım aracılığıyla açılıp kapatılabilen bir arka ışığa sahiptir. Ayrıca kontrastı ayarlamak için I2C modülünde küçük bir potansiyometre bulunur. Ekranı açtığınızda hiçbir şey göremezseniz, metin görünür hale gelene kadar bu vidayı döndürmeniz yeterlidir (videoda 02:47'de).
Bu ekranın LCD2004 gibi 20 karakter ve 4 satıra sahip farklı sürümleri de vardır. I2C adresi, modüldeki A0, A1 ve A2 atlama tellerini lehimleyerek de değiştirilebilir (videoda 03:51'de). Varsayılan adres genellikle 0x27'dir, ancak değişebilir, bu nedenle belirli modülünüz için doğru olanı bulmak üzere bir I2C tarayıcı çalıştırmak her zaman iyi bir fikirdir.
Donanım Bileşenleri
Bu videodaki ana gösterimi takip etmek için aşağıdaki bileşenlere ihtiyacınız olacak:
- Arduino Uno (veya uyumlu herhangi bir kart)
- I2C modüllü LCD1602
- Breadboard ve jumper kablolar
Sonraki bölümler için, hangi projeyi oluşturmak istediğinize bağlı olarak bir DHT11 sensörü, bir potansiyometre veya bir ultrasonik sensöre de ihtiyacınız olacak.
Kablolama Rehberi
LCD'yi bağlamak basittir. Kablolama şeması bağlantıları açıkça gösterir.
I2C modülündeki pinleri Arduino'nuzun pinlerine şu şekilde bağlayın:
- GND Arduino GND pinine
- VCC Arduino 5V pinine
- SDA Arduino A4 pinine
- SCL Arduino A5 pinine
Arduino kartınızda özel SDA ve SCL pinleri varsa, bunlara da bağlanabilirsiniz (videoda 05:47'de).
Kütüphanenin Kurulumu
Bu modül, "Arduino Liquid Crystal I2C" kütüphanesini gerektirir. Videoyu açıklamasında verilen bağlantıdan veya Robojax web sitesinden indirebilirsiniz. İndirdikten sonra, Arduino IDE'nizde Eskiz > Kütüphane Ekle > .ZIP Kütüphanesi Ekle bölümüne giderek ve indirilen dosyayı seçerek kurun (videoda 06:41'de).
Kod Açıklaması
Kod parçacıkları sağlanmadığından, videoda kullanılan kodun genel yapısını açıklayacağız.
Kod, gerekli kütüphaneleri dahil ederek başlar: I2C iletişimi için Wire.h ve ekran için LiquidCrystal_I2C.h kütüphanesi. Anahtar kısım, LCD için bir nesne oluşturmaktır. Doğru I2C adresini ve ekranınızın boyutlarını ayarlamanız gerekecektir:
// 16 karakter ve 2 satırlık bir ekran için LCD adresini 0x27 olarak ayarlayın
LiquidCrystal_I2C lcd(0x27, 16, 2);
Ekranınızda hiçbir şey görünmüyorsa, 0x27 adresini 0x3F veya I2C tarayıcınızın bulduğu başka bir adresle değiştirmeniz gerekebilir. 16 ve 2, ekranınızdaki sütun ve satır sayısını temsil eder.
setup() fonksiyonunda, LCD'yi başlatır ve arka ışığı açarsınız:
void setup() {
lcd.init();
lcd.backlight();
}
Metin yazdırmak için, imleci konumlandırmak üzere lcd.setCursor(sütun, satır) fonksiyonunu ve ardından verilerinizi görüntülemek için lcd.print() fonksiyonunu kullanırsınız. Örneğin, ikinci satıra yazdırmak için lcd.setCursor(0, 1) kullanırsınız. Video ayrıca lcd.write(223) kullanarak derece sembolü gibi özel karakterlerin nasıl yazdırılacağını da açıklar (videoda 31:42'de).
Gösterim
Video, LCD'nin birkaç temel özelliğini gösterir. İlk olarak, temel "Merhaba Dünya" metninin yazdırılmasını ve metni ekran boyunca hareket ettirmek için lcd.scrollDisplayLeft() fonksiyonunun nasıl kullanılacağını gösterir. Daha sonra, sıcaklık ve nemi görüntülemek için LCD'yi bir DHT11 sensörüyle, voltajı görüntülemek için bir potansiyometreyle ve mesafeyi görüntülemek için bir ultrasonik sensörle birleştirir.
Sıcaklık görüntülemesi için kod, sensörü okur ve değeri yazdırır. Ondalık olmadan tam bir sayı göstermek için, videoda gösterildiği gibi float değerini bir tamsayıya dönüştürebilirsiniz (videoda 32:21'de).
Voltmetre için kod, potansiyometreden analog değeri okur, bunu 0-5V voltaj aralığına ölçekler ve ekranda görüntüler (videoda 34:31'de).
Son gösterim, LCD'yi bir ultrasonik sensörle birleştirerek ölçülen mesafeyi santimetre cinsinden görüntüler (videoda 37:55'te).
Bu videodaki ilgili projeler
Bu video ayrıca başka proje eğitimleri de içerir. Onları burada bulabilirsiniz:
- Ders 20/31: DHT11'den Sıcaklık ve Nem Değerlerini LCD Ekranda Gösterme
- Ders 20/31: Voltajı LCD1602'de Gösterme
Bölümler
- [00:00] LCD1602'ye giriş ve kurs genel bakışı
- [01:30] LCD1602 ve I2C modülünün donanım genel bakışı
- [02:47] Ekran kontrastını ve arka ışığını ayarlama
- [03:14] Pin bağlantıları ve I2C adres seçimi
- [05:28] LCD için bağlantı şeması
- [06:16] Gerekli kütüphanenin kurulması
- [07:24] Metin yazdırmak için temel kod
- [11:10] Yanıp sönen imleç örneği
- [13:46] Özel karakterler ve özel semboller yazdırma
- [18:51] Seri ekran örneği
- [23:16] LCD'de kayan metin
- [36:51] LCD'yi ultrasonik sensörle birleştirme
/*
Lesson 20/31: Displaying text on LCD screen
Get this code and watch video Download and resource page https://robojax.com/RJT603
YouTube video https://www.youtube.com/watch?v=NXAswOc_2zg
*/
/*
This is code for LCD1602 Display with I2C module
* watch the video for this code https://youtu.be/q9YC_GVHy5A
* Permission granted to share this code given that this
* note is kept with the code.
* Disclaimer: this code is "AS IS" and for educational purpose only.
* This library is based on work done by DFROBOT (www.dfrobot.com).
*/
/*
* This code has been modefied from the Arduino library
* Updated by Ahmad Nejrabi on Jan 20, 2018 at 11:09
* in Ajax, Ontario, Canada
* for Robojax.com
*
* This is code for LCD1602 Display with I2C module
* which can display text on the screen.
*/
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
// Set the LCD address to 0x27 for a 16 chars and 2 line display
LiquidCrystal_I2C lcd(0x27, 16, 2);
void setup()
{
// Robojax code for LCD with I2C
// initialize the LCD,
lcd.begin();
// Turn on the blacklight and print a message.
//lcd.backlight();
// Robojax code for LCD with I2C
}
void loop()
{
lcd.clear();
lcd.setCursor (0,0);
lcd.print("SunFounder ");
lcd.setCursor (0,1);
lcd.write(244);
delay(500);
//end of loopcode Robojax code for LCD with I2C
}
Common Course Links
Common Course Files
İhtiyacın olabileceğini düşünüyor
-
AmazonBuy LCD1602-I2C from Amazonamzn.to
-
AmazonSunFounder Arduino Learning Kit on AliExpresss.click.aliexpress.com
-
Amazon
-
Amazon
-
Amazon
-
Amazon
-
eBayPurchase LCD1602-I2C from eBayebay.us
-
AliExpressPurchase 10pcs LCD1602-I2C from AliExpresss.click.aliexpress.com
Kaynaklar ve referanslar
-
BelgelendirmeDocumentation for SunFounder 3 in 1 IoT/Smart Car/Learning Kitdocs.sunfounder.com
-
DışLCD library from RoboJax (ZIP)robojax.com
-
DışPurchase SunFounder's 3-in-1 Smart car learning kitsunfounder.com
Dosyalar📁
Arduino Kütüphaneleri (zip)
-
SunFounder's 3-in-1 Smart Car learning kit source code
3in1-kit-main-v2.zip12.80 MB