Pelajaran 20/31: Menampilkan jarak ultrasonik pada LCD1602
Proyek ini menunjukkan cara menggabungkan sensor jarak ultrasonik HC-SR04 dengan layar LCD1602 yang mendukung I2C untuk membuat sistem pengukuran jarak waktu nyata. Di akhir panduan ini, Anda akan memiliki perangkat yang berfungsi yang terus-menerus mengukur dan menampilkan jarak ke suatu objek dalam sentimeter. Ini adalah keterampilan dasar dalam elektronik Arduino, karena menggabungkan input sensor dengan output visual.
Pengaturan praktis ini dapat digunakan dalam berbagai aplikasi dunia nyata, termasuk:
- Membuat asisten parkir cerdas yang membantu Anda mengukur jarak ke dinding atau kendaraan lain.
- Membangun monitor level cairan sederhana untuk tangki dengan mengukur jarak dari atas ke permukaan.
- Mengembangkan dispenser pembersih tangan otomatis atau tempat sampah tanpa sentuh yang terbuka saat ada objek di dekatnya.
- Membuat alarm keamanan dasar yang memicu saat seseorang memasuki zona tertentu.
Perangkat Keras dan Komponen
Untuk membangun proyek ini, Anda akan membutuhkan komponen berikut:
- Papan Arduino (mis., Uno)
- Layar LCD1602 dengan modul antarmuka I2C
- Sensor Jarak Ultrasonik HC-SR04
- Kabel jumper
- Papan roti (opsional, untuk koneksi yang lebih mudah)
Memahami LCD1602 dan I2C
LCD1602 adalah layar populer yang mampu menampilkan 16 karakter per baris di dua baris. Modul "I2C" di bagian belakangnya adalah keuntungan signifikan karena mengurangi jumlah pin yang diperlukan untuk mengontrol layar dari 6 atau lebih menjadi hanya 2 untuk komunikasi (SDA dan SCL) dan 2 untuk daya (VCC dan GND). Penyederhanaan ini membuat pengkabelan jauh lebih rapi dan membebaskan pin digital berharga di Arduino Anda untuk sensor lain, seperti sensor ultrasonik yang digunakan dalam proyek ini. (di video pada 01:30)
Modul I2C juga memiliki potensiometer kecil untuk menyesuaikan kontras layar. Jika Anda menyalakan layar dan tidak melihat apa pun, coba putar sekrup ini hingga teks menjadi terlihat. (di video pada 02:47)
Panduan Pengkabelan
Menghubungkan komponen cukup mudah. Modul I2C pada LCD memiliki empat pin yang perlu dihubungkan ke Arduino. Untuk sensor ultrasonik, sensor ini juga memiliki empat pin.
Berikut adalah rincian koneksinya:
Modul I2C LCD1602 ke Arduino:
- GND ke Arduino GND
- VCC ke Arduino 5V
- SDA ke Arduino A4
- SCL ke Arduino A5
Sensor Ultrasonik HC-SR04 ke Arduino:
- VCC ke Arduino 5V
- Trig ke pin digital Arduino 12
- Echo ke pin digital Arduino 11
- GND ke Arduino GND
Diagram pengkabelan untuk proyek ini dirujuk dalam video.
Menginstal Pustaka yang Diperlukan
Proyek ini bergantung pada dua pustaka penting. Yang pertama, LiquidCrystal_I2C, diperlukan untuk mengontrol LCD dan tidak disertakan dengan Arduino IDE secara default. Anda dapat mengunduhnya dari tautan yang disediakan di deskripsi video atau dari situs web Robojax. (di video pada 06:16)
Pustaka kedua, NewPing, digunakan untuk berinteraksi dengan sensor ultrasonik. Pustaka ini menyederhanakan proses mengirim ping dan membaca waktu gema. Kedua pustaka dapat diinstal melalui Library Manager Arduino IDE dengan membuka Sketch -> Include Library -> Manage Libraries dan mencari nama mereka.
Penjelasan Kode
Sketsa ini menggabungkan fungsionalitas LCD dan sensor ultrasonik. Kode ini disusun agar mudah dikonfigurasi untuk pengaturan spesifik Anda.
Di bagian atas kode, Anda akan menemukan variabel kunci yang mungkin perlu Anda sesuaikan:
// Setel alamat LCD ke 0x27 untuk layar 16 karakter dan 2 baris
LiquidCrystal_I2C lcd(0x27, displayChars, displayRows);
#define TRIGGER_PIN 12 // Pin Arduino yang terhubung ke pin trigger pada sensor ultrasonik.
#define ECHO_PIN 11 // Pin Arduino yang terhubung ke pin echo pada sensor ultrasonik.
#define MAX_DISTANCE 190 // Jarak maksimum yang ingin kita ping (dalam sentimeter).
- Alamat LCD (0x27): Ini adalah alamat I2C dari modul LCD Anda. Sebagian besar modul menggunakan
0x27, tetapi beberapa mungkin menggunakan0x3F. Jika layar Anda tidak menampilkan apa pun, Anda mungkin perlu menjalankan sketsa pemindai I2C untuk menemukan alamat yang benar dan memperbarui nilai ini. (di video pada 08:11) - TRIGGER_PIN dan ECHO_PIN: Ini mendefinisikan pin digital Arduino yang terhubung ke pin Trig dan Echo dari sensor ultrasonik. Jika Anda menggunakan pin yang berbeda, ubah definisi ini.
- MAX_DISTANCE: Ini mengatur jarak maksimum dalam sentimeter yang akan diukur sensor. HC-SR04 dapat mengukur hingga 400-500cm, tetapi menetapkan nilai yang lebih rendah dapat meningkatkan akurasi dan keandalan pembacaan, terutama untuk jarak yang lebih pendek.
Dalam fungsi loop(), kode melakukan langkah-langkah berikut:
- Ini menggunakan fungsi
sonar.ping_cm()untuk mengukur jarak dan menyimpannya dalam variabeldistance. - Ini membersihkan LCD dan mencetak teks "Robojax.com" pada baris pertama.
- Kemudian mengatur kursor ke baris kedua dan mencetak "Distance: ".
- Terakhir, ini memindahkan kursor ke posisi 10 pada baris kedua untuk mencetak nilai
distanceyang diukur diikuti dengan "cm".
delay(200) di akhir loop mengontrol seberapa sering sensor mengambil pembacaan baru dan memperbarui tampilan.
Demonstrasi Kode
Setelah kode diunggah ke Arduino Anda, LCD akan menyala dan mulai menampilkan jarak. Anda dapat menguji pengaturan ini dengan menggerakkan tangan atau objek lebih dekat dan lebih jauh dari sensor ultrasonik. Angka di layar harus diperbarui secara real-time, menunjukkan jarak dalam sentimeter. (dalam video pada 38:07)
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
- Pelajaran 20/31: Menampilkan tegangan pada LCD1602
Bab
- [00:00] Pengenalan LCD1602 dan Gambaran Proyek
- [01:30] Perangkat Keras LCD1602 dan Modul I2C Dijelaskan
- [03:14] Pinout LCD dan Konfigurasi Alamat I2C
- [05:28] Diagram Pengkabelan untuk LCD1602
- [06:16] Menginstal Pustaka LCD yang Diperlukan
- [07:24] Kode Dasar untuk Mencetak Teks di LCD
- [08:11] Menemukan Alamat I2C LCD Anda
- [11:10] Contoh LCD: Kursor Berkedip dan Karakter Kustom
- [18:51] Contoh LCD: Tampilan Serial dan Teks Bergulir
- [24:36] Menampilkan Suhu dan Kelembaban DHT11 di LCD
- [33:00] Menampilkan Tegangan dari Potensiometer di LCD
- [35:56] Menggabungkan Kode Sensor Ultrasonik dengan LCD
- [38:07] Demonstrasi Tampilan Jarak Ultrasonik
/*
This sketch reads the distance using the ultrasonic sensor and displays on LCD1602
Download and resource page https://robojax.com/RJT878
watch video https://www.youtube.com/watch?v=NXAswOc_2zg
*/
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
const int displayChars =16;
const int displayRows =2;
// Set the LCD address to 0x27 for a 16 chars and 2 line display
LiquidCrystal_I2C lcd(0x27, displayChars, displayRows);
int shomar =0;
#include <NewPing.h>
#define TRIGGER_PIN 12 // Arduino pin tied to trigger pin on the ultrasonic sensor.
#define ECHO_PIN 11 // Arduino pin tied to echo pin on the ultrasonic sensor.
#define MAX_DISTANCE 190 // Maximum distance we want to ping for (in centimeters). Maximum sensor distance is rated at 400-500cm.
int distance;
NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); // NewPing setup of pins and maximum distance.
void setup() {
Serial.begin(9600); // Open serial monitor at 9600 baud to see ping results.
// Robojax code for LCD with I2C
// initialize the LCD,
lcd.begin();
// Turn on the blacklight and print a message.
lcd.backlight();
}
void loop() {
distance = sonar.ping_cm();//get the distance in cm
lcd.clear();
lcd.print("Robojax.com");
lcd.setCursor (0,1);//set cursor to char 0 line 2
lcd.print("Distance: ");
lcd.setCursor (10,1);
lcd.print(distance);
lcd.print("cm");
delay(200);
}
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