Cari Kode

Pelajaran 20/31: Menampilkan jarak ultrasonik pada LCD1602

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.

Sunfounder 20-LCD1602-ultrasonic

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

LCD1602_wiring_ultrasonic_bb

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 menggunakan 0x3F. 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:

  1. Ini menggunakan fungsi sonar.ping_cm() untuk mengukur jarak dan menyimpannya dalam variabel distance.
  2. Ini membersihkan LCD dan mencetak teks "Robojax.com" pada baris pertama.
  3. Kemudian mengatur kursor ke baris kedua dan mencetak "Distance: ".
  4. Terakhir, ini memindahkan kursor ke posisi 10 pada baris kedua untuk mencetak nilai distance yang 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

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

Gambar

Sunfounder car assembled
Sunfounder car assembled
Sunfounder 20-LCD1602-ultrasonic
Sunfounder 20-LCD1602-ultrasonic
LCD1602_wiring_ultrasonic_bb
LCD1602_wiring_ultrasonic_bb
921-Lesson 20/31: Displaying distance from ultrasonic sensor on LCD1602
Bahasa: C++
/*
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); 
  

}

Sumber daya & referensi

Berkas📁

Pustaka Arduino (zip)

Panduan Pengguna