Pelajaran 20/31: Menampilkan tegangan pada LCD1602
Proyek ini menunjukkan cara membuat voltmeter digital menggunakan Arduino dan layar LCD1602 dengan antarmuka I2C. Dengan membaca tegangan analog dari potensiometer dan menampilkannya di layar, Anda akan mempelajari keterampilan penting dalam konversi analog-ke-digital, komunikasi I2C, dan kontrol LCD.
Proyek ini merupakan batu loncatan yang bagus untuk banyak aplikasi praktis. Berikut adalah beberapa ide yang dapat Anda kembangkan:
- Membangun monitor tegangan baterai portabel untuk proyek Anda.
- Membuat catu daya sederhana dengan pembacaan tegangan visual.
- Memantau keluaran panel surya atau sumber tegangan variabel lainnya.
- Menampilkan nilai dari sensor analog apa pun, seperti resistor dependen cahaya (LDR), sebagai angka yang dapat dibaca.
Di akhir panduan ini, Anda akan memiliki pemahaman yang jelas tentang cara menghubungkan komponen, mengonfigurasi pustaka yang diperlukan, dan menulis kode untuk membuat tampilan voltase Anda sendiri.
Komponen Perangkat Keras
Untuk membangun proyek ini, Anda akan memerlukan komponen berikut. Kursus ini didasarkan pada kit Arduino 3-in-1 SunFounder, yang mencakup semua bagian ini.
- Papan Arduino (mis., Uno)
- Layar LCD1602 dengan modul I2C
- Potensiometer (10kΩ disarankan)
- Kabel Jumper
- Papan Roti
Memahami LCD1602 dan Modul I2C
LCD1602 adalah tampilan alfanumerik populer dengan 16 kolom dan 2 baris. LCD paralel standar akan memerlukan banyak pin digital untuk mengontrolnya. Namun, tampilan ini dilengkapi dengan modul I2C khusus yang terpasang di bagian belakangnya (dalam video pada 01:30). Modul ini menyederhanakan pengkabelan secara drastis, mengurangi koneksi menjadi hanya empat kabel: VCC, GND, SDA, dan SCL. Ini dimungkinkan karena modul I2C bertindak sebagai jembatan, menerjemahkan sinyal serial I2C sederhana menjadi sinyal paralel yang dibutuhkan LCD.
Proyek ini menggunakan antarmuka I2C, yang merupakan protokol komunikasi yang memungkinkan Arduino Anda berbicara dengan beberapa perangkat hanya menggunakan dua kabel. Ini adalah keterampilan mendasar untuk menghubungkan banyak jenis sensor dan tampilan.
Panduan Pengkabelan
Menghubungkan LCD dan potensiometer ke Arduino sangatlah mudah. Modul I2C membutuhkan daya dan dua jalur komunikasi. Potensiometer bertindak sebagai pembagi tegangan variabel, memungkinkan Anda menyesuaikan tegangan pada pin wiper-nya.
Berikut adalah pengaturan pengkabelan yang terperinci:
- Modul I2C LCD ke Arduino:
- GND ke Arduino GND (dalam video pada 05:38).
- VCC ke Arduino 5V (dalam video pada 05:47).
- SDA ke Arduino A4 (dalam video pada 05:47).
- SCL ke Arduino A5 (dalam video pada 05:57).
- Potensiometer ke Arduino:
- Pin Kiri ke Arduino 5V (dalam video pada 33:39).
- Pin Tengah (Wiper) ke Arduino A0 (dalam video pada 33:43).
- Pin Kanan ke Arduino GND (dalam video pada 33:43).
Menginstal Pustaka yang Diperlukan
Proyek ini memerlukan pustaka eksternal untuk mengontrol LCD melalui I2C. Pustaka yang digunakan dalam video adalah pustaka "Arduino Liquid Crystal I2C". Anda dapat mengunduhnya dari tautan yang disediakan di halaman sumber daya Robojax atau dari GitHub (dalam video pada 06:16).
Untuk menginstalnya, unduh pustaka sebagai file ZIP. Kemudian, di Arduino IDE Anda, buka Sketch > Include Library > Add .ZIP Library... dan pilih file yang diunduh (dalam video pada 06:41).
Menemukan Alamat I2C LCD Anda
Sebelum mengunggah kode utama, sangat penting untuk menentukan alamat I2C dari modul LCD spesifik Anda. Alamat ini dapat bervariasi tergantung pada pabrikannya. Video ini menunjukkan cara menggunakan pemindai I2C untuk menemukannya (dalam video pada 08:11).
Anda dapat menemukan pemindai ini dengan membuka File > Examples > Wire > i2c_scanner. Unggah kode ini ke Arduino Anda dengan LCD terhubung, dan buka Serial Monitor. Ini akan menampilkan alamat, yang sering kali 0x27 atau 0x3F. Anda perlu menggunakan alamat ini dalam kode utama Anda.
Penjelasan Kode
Kode untuk proyek ini berfokus pada membaca nilai analog dan memformatnya untuk ditampilkan. Mari kita uraikan bagian-bagian kunci yang dapat dikonfigurasi pengguna.
1. Penyertaan Pustaka dan Objek LCD
Bagian ini menyertakan pustaka yang diperlukan dan membuat objek untuk LCD Anda. Bagian terpenting di sini adalah alamat I2C, yang harus Anda ubah agar sesuai dengan yang Anda temukan di langkah sebelumnya.
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
// Setel alamat LCD ke 0x27 untuk tampilan 16 atau 20 karakter dan 2 atau 4 baris
LiquidCrystal_I2C lcd(0x27, 16, 2);#include <Wire.h>: Pustaka ini sudah terintegrasi dalam Arduino dan diperlukan untuk komunikasi I2C.#include <LiquidCrystal_I2C.h>: Ini menyertakan pustaka yang baru saja kita instal, yang menyediakan fungsi untuk mengontrol LCD.LiquidCrystal_I2C lcd(0x27, 16, 2);: Baris ini membuat objek bernamalcd. Parameter pertama,0x27, adalah alamat I2C yang Anda temukan sebelumnya. Parameter kedua dan ketiga menentukan dimensi LCD: 16 kolom dan 2 baris. Anda harus mengubah0x27ke alamat spesifik Anda jika berbeda.
2. Fungsi Setup dan Loop
Fungsi setup() menginisialisasi LCD dan menyalakan lampu latarnya. Fungsi loop() berisi logika inti untuk membaca tegangan dan menampilkannya.
void setup()
{
lcd.begin();
lcd.backlight();
}
void loop()
{
int potValue = analogRead(A0);
float voltage = potValue * (5.0 / 1023.0);
// ... (kode tampilan LCD)
delay(1000);
}
lcd.begin(): Ini menginisialisasi antarmuka LCD dan menyiapkannya untuk digunakan.lcd.backlight(): Ini menyalakan lampu latar layar, membuat teks terlihat.int potValue = analogRead(A0);: Ini membaca nilai analog mentah dari pin A0, yang terhubung ke wiper potensiometer. Nilainya akan berupa bilangan bulat antara 0 dan 1023, mewakili tegangan dari 0V hingga 5V.float voltage = potValue * (5.0 / 1023.0);: Ini adalah langkah konversi yang penting. Ini mengubah nilai ADC mentah menjadi pembacaan tegangan aktual. Rumusnya mengalikan nilai mentah dengan rasio tegangan referensi (5.0V) terhadap nilai ADC maksimum (1023). Ini diperlukan karena ADC tidak membaca tegangan secara langsung; ia membaca angka proporsional.
3. Menampilkan Tegangan
Kode kemudian membersihkan layar dan mencetak nilai tegangan pada posisi tertentu di baris kedua.
lcd.clear();
lcd.print("LCD1602 Tutorial");
lcd.setCursor (0,1); // pergi ke awal baris ke-2
lcd.print("Voltage:");
lcd.setCursor (9,1); // atur ke baris 2 karakter 9
lcd.print(voltage);
lcd.setCursor (13,1); // atur ke baris 2 karakter 14
lcd.print("V");
lcd.clear(): Membersihkan teks sebelumnya dari layar.lcd.print("LCD1602 Tutorial"): Mencetak judul di baris pertama.lcd.setCursor (0,1): Mengatur kursor ke awal baris kedua. Parameter pertama adalah kolom (0-15), dan parameter kedua adalah baris (0 untuk baris pertama, 1 untuk baris kedua).lcd.print(voltage): Mencetak nilai tegangan yang dihitung. Variabelfloatakan dicetak dengan dua tempat desimal secara default.lcd.setCursor (13,1): Memindahkan kursor ke kolom 13 di baris kedua untuk menempatkan karakter "V" tepat setelah angka.
Demonstrasi Proyek Langsung
Setelah Anda mengunggah kode, LCD harus menampilkan "LCD1602 Tutorial" di baris pertama. Di baris kedua, akan menampilkan "Voltage:" diikuti dengan pembacaan tegangan saat ini. Saat Anda memutar kenop potensiometer, Anda akan melihat tegangan yang ditampilkan berubah secara real-time, berkisar dari sekitar 0.00V hingga 5.00V (dalam video pada 35:25).
Proyek ini adalah contoh sempurna tentang cara mengambil sinyal analog mentah dan mengubahnya menjadi nilai yang jelas dan mudah dibaca manusia. Keterampilan yang Anda pelajari di sini dapat langsung diterapkan pada sensor analog lain yang mungkin Anda gunakan di masa depan.
Video ini juga mencakup topik terkait lainnya, seperti menampilkan teks, menggulir, dan membuat karakter khusus di LCD.
Proyek terkait dari video ini
- Pelajaran 20/31: Menggunakan LCD1602 dengan Arduino untuk menampilkan teks | Robojax
- Pelajaran 20/31: Menampilkan Suhu dan Kelembaban dari DHT11 di layar LCD
Bab
- [00:00] Pengenalan LCD1602 dan gambaran proyek
- [01:30] Penjelasan perangkat keras LCD1602 dan modul I2C
- [04:06] Mengatur alamat I2C dengan jumper
- [05:28] Diagram pengkabelan untuk LCD1602
- [07:31] Penjelasan kode untuk tampilan teks dasar
- [11:10] Demonstrasi contoh kursor berkedip
- [13:46] Membuat dan menggunakan karakter khusus
- [18:51] Menggunakan contoh tampilan serial
- [23:16] Menggulir teks di LCD
- [26:13] Menampilkan suhu dan kelembaban dari DHT11
- [33:00] Membaca dan menampilkan tegangan dari potensiometer
- [35:56] Menampilkan jarak dari sensor ultrasonik
/*
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
}
Hal-hal yang mungkin Anda butuhkan
-
AmazonSunFounder Arduino Learning Kit on AliExpresss.click.aliexpress.com
-
Amazon
-
Amazon
-
Amazon
-
Amazon
Sumber daya & referensi
-
DokumentasiDocumentation for SunFounder 3 in 1 IoT/Smart Car/Learning Kitdocs.sunfounder.com
-
EksternalPurchase SunFounder's 3-in-1 Smart car learning kitsunfounder.com
Berkas📁
Pustaka Arduino (zip)
-
SunFounder's 3-in-1 Smart Car learning kit source code
3in1-kit-main-v2.zip12.80 MB
Panduan Pengguna
-
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