#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <NewPing.h>
// Inisialisasi LCD dengan alamat I2C 0x27 dan ukuran 16x2 (2 baris, 16 karakter per baris).
LiquidCrystal_I2C lcd(0x27, 16, 2); // Alamat I2C LCD mungkin berbeda.
// Inisialisasi sensor ultrasonik NewPing dengan pin Trigger di 10, pin Echo di 9, dan jarak maksimum 200 cm.
NewPing sonar(10, 9, 200); // Trigger pin, Echo pin, Max distance.
// Inisialisasi pin-pin untuk LDR, LED, dan buzzer.
const int ldrPin = A0;
const int ledPin = 7;
const int buzzerPin = 6;
// Variabel untuk melacak apakah deteksi telah terjadi.
boolean isDetected = false;
void setup() {
// Atur pin LED dan buzzer sebagai output.
pinMode(ledPin, OUTPUT);
pinMode(buzzerPin, OUTPUT);
// Inisialisasi LCD, hidupkan pencahayaan (backlight).
lcd.init();
lcd.backlight();
// Set posisi kursor di baris 0, kolom 0, dan tampilkan pesan selama 5 detik.
lcd.setCursor(0, 0);
lcd.print(" HELLO ");
lcd.setCursor(0, 1);
lcd.print("MUHAMMADHAMZAMIR");
delay(5000);
}
void loop() {
// Baca nilai dari sensor LDR.
int ldrValue = analogRead(ldrPin); // Membaca nilai sensor LDR
// Mengukur jarak dengan sensor ultrasonik.
int distance = sonar.ping_cm(); // Mengukur jarak dengan sensor ultrasonik
// Fungsi LED
if (ldrValue > 500) {
digitalWrite(ledPin, HIGH); // Nyalakan LED saat lingkungan gelap.
} else {
digitalWrite(ledPin, LOW); // Matikan LED saat lingkungan terang.
}
// Fungsi deteksi maling
if (distance <= 100) {
// Jika belum ada deteksi sebelumnya
if (!isDetected) {
digitalWrite(buzzerPin, HIGH); // Nyalakan buzzer
lcd.clear(); // Bersihkan layar LCD
lcd.setCursor(0, 0); // Set posisi kursor ke baris 0, kolom 0
lcd.print("MALING TERDETEK!"); // Tampilkan pesan "MALING TERDETEK!"
isDetected = true; // Set isDetected menjadi benar (true) karena terjadi deteksi
}
}
else {
digitalWrite(buzzerPin, LOW); // Matikan buzzer
isDetected = false; // Set isDetected menjadi salah (false) karena tidak ada deteksi
lcd.clear(); // Bersihkan layar LCD
lcd.setCursor(0, 0); // Set posisi kursor ke baris 0, kolom 0
lcd.print(" AMAN !"); // Tampilkan pesan "AMAN!"
lcd.setCursor(0, 1); // Set posisi kursor ke baris 1, kolom 0
lcd.print(""); // Tampilkan teks kosong di baris kedua
}
// Tunggu selama 1 detik sebelum mengulangi loop
delay(1000);
}