Berikut adalah program Arduino untuk mengukur jarak menggunakan sensor ultrasonik HC-SR04 dan menampilkan hasilnya di LCD I2C.
1. Alat dan Bahan
Arduino Uno (atau mikrokontroler lain yang kompatibel)
Sensor Ultrasonik HC-SR04
LCD I2C 16x2
Kabel Jumper
Breadboard (opsional)
2. Diagram Pengkabelan
Hubungkan komponen-komponen berikut:
HC-SR04 ke Arduino:
VCC ke 5V
GND ke GND
Trig ke pin digital 9
Echo ke pin digital 10
LCD I2C ke Arduino:
GND ke GND
VCC ke 5V
SDA ke pin analog A4
SCL ke pin analog A5
3. Program Arduino
Pastikan Anda telah menginstal pustaka yang diperlukan: "LiquidCrystal_I2C" untuk LCD dan "NewPing" (sangat disarankan untuk HC-SR04 karena lebih stabil) melalui Library Manager di Arduino IDE.
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <NewPing.h>
// Definisikan pin untuk sensor HC-SR04
#define TRIG_PIN 9
#define ECHO_PIN 10
#define MAX_DISTANCE 200 // Jarak maksimum yang bisa diukur (dalam cm)
// Buat objek NewPing
NewPing sonar(TRIG_PIN, ECHO_PIN, MAX_DISTANCE);
// Buat objek LCD I2C (alamat, kolom, baris)
// Alamat I2C bisa berbeda. Alamat yang umum adalah 0x27 atau 0x3F.
// Jika tidak bekerja, gunakan pemindai alamat I2C untuk menemukan alamat yang benar.
LiquidCrystal_I2C lcd(0x27, 16, 2);
void setup() {
// Inisialisasi LCD
lcd.init();
lcd.backlight(); // Nyalakan lampu latar LCD
// Tampilkan pesan awal
lcd.setCursor(0, 0); // Atur kursor di kolom 0, baris 0
lcd.print("Mengukur Jarak");
Serial.begin(9600); // Mulai komunikasi serial untuk debugging
}
void loop() {
// Tunggu 50 ms antara setiap ping (rekomendasi NewPing)
delay(50);
// Kirim pulsa dan hitung durasi pantulan dalam mikrodetik
unsigned int duration = sonar.ping_median(5); // Ambil nilai median dari 5 pengukuran untuk akurasi
// Hitung jarak dalam cm dari durasi
// Jika durasi 0, artinya objek berada di luar jangkauan
float distanceCm = sonar.convert_cm(duration);
// Tampilkan jarak di LCD
lcd.clear(); // Hapus tampilan LCD
lcd.setCursor(0, 0);
lcd.print("Jarak:");
lcd.setCursor(0, 1);
// Periksa jika objek terdeteksi atau tidak
if (distanceCm == 0) {
lcd.print("Tidak Terdeteksi");
Serial.println("Jarak: Tidak Terdeteksi");
} else {
// Tampilkan jarak dalam cm
lcd.print(distanceCm);
lcd.print(" cm");
Serial.print("Jarak: ");
Serial.print(distanceCm);
Serial.println(" cm");
}
// Tunggu sejenak sebelum pengukuran berikutnya
delay(500);
}
4. Penjelasan Kode
Pustaka:
Wire.h
: Digunakan untuk komunikasi I2C.LiquidCrystal_I2C.h
: Pustaka untuk mengendalikan LCD I2C.NewPing.h
: Pustaka yang lebih handal untuk sensor HC-SR04. Pustaka ini secara otomatis mengelola pin TRIG dan ECHO, serta memiliki fungsi bawaan untuk menghitung jarak dan mengatasi kesalahan.
setup()
:Inisialisasi LCD dan lampu latar.
Mencetak pesan awal ke layar LCD.
Mulai komunikasi serial untuk melihat output di Serial Monitor (berguna untuk debugging).
loop()
:sonar.ping_median(5)
: Mengambil 5 pengukuran dan mengembalikan nilai median. Ini membantu meningkatkan akurasi dengan mengabaikan pembacaan yang tidak wajar.sonar.convert_cm(duration)
: Fungsi dari pustakaNewPing
yang secara otomatis mengonversi durasi pantulan suara menjadi jarak dalam sentimeter.Kondisi
if
: Memeriksa apakah jarak terukur adalah 0. Ini biasanya terjadi ketika sensor tidak mendeteksi objek dalam jangkauanMAX_DISTANCE
.Tampilan jarak: Menampilkan jarak yang diukur ke baris kedua LCD.
Program ini adalah kerangka dasar yang dapat Anda kembangkan lebih lanjut, seperti menambahkan kalibrasi, batas peringatan, atau interaksi lain. Pastikan pengkabelan Anda sudah benar sebelum mengunggah kode ke Arduino.
Tidak ada komentar:
Posting Komentar