Ders 20/31: Voltajı LCD1602 üzerinde gösterme
Bu proje, bir Arduino ve I2C arayüzlü bir LCD1602 ekran kullanarak dijital bir voltmetrenin nasıl oluşturulacağını gösterir. Bir potansiyometreden analog voltajı okuyup ekranda görüntüleyerek, analogdan dijitale dönüşüm, I2C iletişimi ve LCD kontrolü gibi temel becerileri öğreneceksiniz.
Bu proje, birçok pratik uygulama için harika bir başlangıç adımıdır. İşte üzerine inşa edebileceğiniz bazı fikirler:
- Projeleriniz için taşınabilir bir pil voltaj monitörü oluşturma.
- Görsel voltaj göstergeli basit bir güç kaynağı oluşturma.
- Bir güneş panelinin veya diğer değişken voltaj kaynaklarının çıkışını izleme.
- Işığa bağımlı direnç (LDR) gibi herhangi bir analog sensörün değerini okunabilir bir sayı olarak görüntüleme.
Bu kılavuzun sonunda, bileşenleri nasıl bağlayacağınız, gerekli kütüphaneleri nasıl yapılandıracağınız ve kendi voltaj ekranınızı oluşturmak için kodu nasıl yazacağınız konusunda net bir anlayışa sahip olacaksınız.
Donanım Bileşenleri
Bu projeyi oluşturmak için aşağıdaki bileşenlere ihtiyacınız olacak. Kurs, tüm bu parçaları içeren SunFounder 3'ü 1 arada Arduino kitine dayanmaktadır.
- Arduino Kartı (örn. Uno)
- I2C modüllü LCD1602 Ekran
- Potansiyometre (10kΩ önerilir)
- Jumper Kablolar
- Breadboard
LCD1602 ve I2C Modülünü Anlama
LCD1602, 16 sütun ve 2 satırlı popüler bir alfanümerik ekrandır. Standart bir paralel LCD, kontrol etmek için birçok dijital pin gerektirir. Ancak bu ekran, arkasına takılı özel bir I2C modülüyle birlikte gelir (videoda 01:30'da). Bu modül kablolamayı önemli ölçüde basitleştirir ve bağlantıyı yalnızca dört kabloya indirir: VCC, GND, SDA ve SCL. Bu mümkündür çünkü I2C modülü bir köprü görevi görerek basit I2C seri sinyalini LCD'nin ihtiyaç duyduğu paralel sinyallere çevirir.
Bu proje, Arduino'nuzun yalnızca iki kablo kullanarak birden fazla cihazla konuşmasını sağlayan bir iletişim protokolü olan I2C arayüzünü kullanır. Bu, birçok sensör ve ekran türünü bağlamak için temel bir beceridir.
Bağlantı Kılavuzu
LCD'yi ve potansiyometreyi Arduino'ya bağlamak basittir. I2C modülü güç ve iki iletişim hattı gerektirir. Potansiyometre, silecek pinindeki voltajı ayarlamanıza olanak tanıyan değişken bir voltaj bölücü görevi görür.
İşte ayrıntılı bağlantı kurulumu:
- LCD I2C Modülü Arduino'ya:
- GND Arduino GND pinine (videoda 05:38'de).
- VCC Arduino 5V pinine (videoda 05:47'de).
- SDA Arduino A4 pinine (videoda 05:47'de).
- SCL Arduino A5 pinine (videoda 05:57'de).
- Potansiyometre Arduino'ya:
- Sol Pin Arduino 5V pinine (videoda 33:39'da).
- Orta Pin (Silecek) Arduino A0 pinine (videoda 33:43'te).
- Sağ Pin Arduino GND pinine (videoda 33:43'te).
Gerekli Kütüphanenin Kurulumu
Bu proje, LCD'yi I2C üzerinden kontrol etmek için harici bir kütüphane gerektirir. Videoda kullanılan kütüphane "Arduino Liquid Crystal I2C" kütüphanesidir. Bunu Robojax kaynak sayfasında sağlanan bağlantıdan veya GitHub'dan indirebilirsiniz (videoda 06:16'da).
Kurmak için kütüphaneyi ZIP dosyası olarak indirin. Ardından Arduino IDE'nizde Sketch > Include Library > Add .ZIP Library... bölümüne gidin ve indirilen dosyayı seçin (videoda 06:41'de).
LCD'nizin I2C Adresini Bulma
Ana kodu yüklemeden önce, LCD modülünüzün I2C adresini belirlemek çok önemlidir. Bu adres üreticiye bağlı olarak değişebilir. Video, bunu bulmak için bir I2C tarayıcının nasıl kullanılacağını gösterir (videoda 08:11'de).
Bu tarayıcıyı File > Examples > Wire > i2c_scanner bölümüne giderek bulabilirsiniz. Bu kodu, LCD bağlıyken Arduino'nıza yükleyin ve Seri Monitörü açın. Genellikle 0x27 veya 0x3F olan adresi görüntüleyecektir. Bu adresi ana kodunuzda kullanmanız gerekecektir.
Kod Açıklaması
Bu projenin kodu, bir analog değeri okumaya ve görüntüleme için biçimlendirmeye odaklanmıştır. Ana, kullanıcı tarafından yapılandırılabilir bölümleri inceleyelim.
1. Kütüphane Dahil Etmeleri ve LCD Nesnesi
Bu bölüm gerekli kütüphaneleri içerir ve LCD'niz için bir nesne oluşturur. Buradaki en önemli kısım, önceki adımda bulduğunuzla eşleşecek şekilde değiştirmeniz gereken I2C adresidir.
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
// 16 veya 20 karakter ve 2 veya 4 satırlık ekran için LCD adresini 0x27 olarak ayarlayın
LiquidCrystal_I2C lcd(0x27, 16, 2);#include <Wire.h>: Bu kütüphane Arduino'ya dahildir ve I2C iletişimi için gereklidir.#include <LiquidCrystal_I2C.h>: Bu, az önce kurduğumuz ve LCD'yi kontrol etmek için fonksiyonlar sağlayan kütüphaneyi içerir.LiquidCrystal_I2C lcd(0x27, 16, 2);: Bu satır,lcdadında bir nesne oluşturur. İlk parametre olan0x27, daha önce bulduğunuz I2C adresidir. İkinci ve üçüncü parametreler LCD'nin boyutlarını tanımlar: 16 sütun ve 2 satır. Adresiniz farklıysa0x27'yi kendi adresinizle değiştirmelisiniz.
2. Kurulum ve Döngü Fonksiyonları
setup() fonksiyonu LCD'yi başlatır ve arka ışığını açar. loop() fonksiyonu, voltajı okuma ve görüntüleme için temel mantığı içerir.
void setup()
{
lcd.begin();
lcd.backlight();
}
void loop()
{
int potValue = analogRead(A0);
float voltage = potValue * (5.0 / 1023.0);
// ... (LCD görüntüleme kodu)
delay(1000);
}
lcd.begin(): Bu, LCD arayüzünü başlatır ve kullanıma hazırlar.lcd.backlight(): Bu, ekranın arka ışığını açar ve metni görünür kılar.int potValue = analogRead(A0);: Bu, potansiyometrenin sürgüsüne bağlı olan A0 pininden ham analog değeri okur. Değer, 0V ile 5V arasındaki voltajı temsil eden 0 ile 1023 arasında bir tam sayı olacaktır.float voltage = potValue * (5.0 / 1023.0);: Bu, kritik dönüşüm adımıdır. Ham ADC değerini gerçek bir voltaj okumasına dönüştürür. Formül, ham değeri referans voltajının (5.0V) maksimum ADC değerine (1023) oranıyla çarpar. Bu gereklidir çünkü ADC voltajı doğrudan okumaz; orantılı bir sayı okur.
3. Voltajı Görüntüleme
Kod daha sonra ekranı temizler ve voltaj değerini ikinci satırda belirli bir konuma yazdırır.
lcd.clear();
lcd.print("LCD1602 Tutorial");
lcd.setCursor (0,1); // 2. satırın başına git
lcd.print("Voltage:");
lcd.setCursor (9,1); // 2. satır 9. karaktere ayarla
lcd.print(voltage);
lcd.setCursor (13,1); // 2. satır 14. karaktere ayarla
lcd.print("V");
lcd.clear(): Ekrandaki önceki metni temizler.lcd.print("LCD1602 Tutorial"): Başlığı ilk satıra yazdırır.lcd.setCursor (0,1): İmleci ikinci satırın başına ayarlar. İlk parametre sütundur (0-15), ikincisi ise satırdır (0 ilk satır, 1 ikinci satır).lcd.print(voltage): Hesaplanan voltaj değerini yazdırır.floatdeğişkeni varsayılan olarak iki ondalık basamakla yazdırılır.lcd.setCursor (13,1): İmleci ikinci satırda 13. sütuna taşıyarak "V" karakterini sayının hemen sonrasına yerleştirir.
Canlı Proje Gösterimi
Kodu yükledikten sonra LCD, ilk satırda "LCD1602 Tutorial" görüntülemelidir. İkinci satırda ise "Voltage:" ve ardından mevcut voltaj okuması gösterilecektir. Potansiyometrenin düğmesini çevirdikçe, görüntülenen voltajın yaklaşık 0.00V ile 5.00V arasında gerçek zamanlı olarak değiştiğini göreceksiniz (videoda 35:25'te).
Bu proje, ham bir analog sinyali alıp net, insan tarafından okunabilir bir değere dönüştürmenin mükemmel bir örneğidir. Burada öğrendiğiniz beceriler, gelecekte kullanabileceğiniz herhangi bir analog sensöre doğrudan uygulanabilir.
Video ayrıca metin görüntüleme, kaydırma ve LCD'de özel karakterler oluşturma gibi diğer ilgili konuları da kapsar.
Bu videodan ilgili projeler
- Ders 20/31: Arduino ile LCD1602 kullanarak metin görüntüleme | Robojax
- Ders 20/31: DHT11'den sıcaklık ve nemi LCD ekranda görüntüleme
Bölümler
- [00:00] LCD1602'ye giriş ve proje genel bakışı
- [01:30] LCD1602 donanımı ve I2C modülü açıklaması
- [04:06] Jumper'larla I2C adresini ayarlama
- [05:28] LCD1602 için bağlantı şeması
- [07:31] Temel metin görüntüleme için kod açıklaması
- [11:10] Yanıp sönen imleç örneğinin gösterimi
- [13:46] Özel karakterler oluşturma ve kullanma
- [18:51] Seri ekran örneğini kullanma
- [23:16] LCD'de metin kaydırma
- [26:13] DHT11'den sıcaklık ve nem görüntüleme
- [33:00] Bir potansiyometreden voltaj okuma ve görüntüleme
- [35:56] Ultrasonik sensörden mesafe görüntüleme
/*
Lesson 20/31: Displaying voltage on LCD1602
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 code is "AS IS" without warranty or liability. Free to be used as long as you keep this note intact.*
* This code has been download from Robojax.com
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
// Set the LCD address to 0x27 for a 16 or 20 chars and 2 or 4 lines display
LiquidCrystal_I2C lcd(0x27, 16, 2);
int count =700;
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()
{
int potValue = analogRead(A0);
float voltage = potValue * (5.0 / 1023.0);
//start of loop Robojax code for LCD with I2C
lcd.clear();
lcd.print("LCD1602 Tutorial");
lcd.setCursor (0,1); // go to start of 2nd line
lcd.print("Voltage:");
lcd.setCursor (9,1); // set to line 2 char 9
lcd.print(voltage);
lcd.setCursor (13,1); // set to line 2 char 14
lcd.print("V");
//lcd.setCursor (3,3); // set to line 4 character 4
//lcd.print("Text in line 4");
delay(1000);
count++;
//end of loopcode Robojax code for LCD with I2C
}
İhtiyacın olabileceğini düşünüyor
-
AmazonSunFounder Arduino Learning Kit on AliExpresss.click.aliexpress.com
-
Amazon
-
Amazon
-
Amazon
-
Amazon
Kaynaklar ve referanslar
-
BelgelendirmeDocumentation for SunFounder 3 in 1 IoT/Smart Car/Learning Kitdocs.sunfounder.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
Kullanım Kılavuzu
-
SunFounder 3-in-1 Arduino Smart Car assembly manualThis document shows step by step assembly of SunFounder 3-in-1 Arduino Smart Car
SunFounder_car_assembly_manual.pdf1.20 MB