#include #include #define trigPin 9 #define echoPin 10 #define buzzerPin 8 LiquidCrystal_I2C lcd(0x27, 16, 2); // Alamat I2C bisa disesuaikan (umum: 0x27 atau 0x3F) void setup() { pinMode(trigPin, OUTPUT); pinMode(echoPin, INPUT); pinMode(buzzerPin, OUTPUT); lcd.init(); // initialize the lcd lcd.init(); // Print a message to the LCD. lcd.backlight(); lcd.setCursor(3,0); lcd.print("Alarm Parkir"); delay(1000); lcd.clear(); } void loop() { long duration; float distance; // Kirim sinyal trigger digitalWrite(trigPin, LOW); delayMicroseconds(2); digitalWrite(trigPin, HIGH); delayMicroseconds(10); digitalWrite(trigPin,LOW); // Baca echo duration = pulseIn(echoPin, HIGH); distance = (duration * 0.0343) / 2; // Tampilkan di LCD lcd.setCursor(0, 0); lcd.print("Jarak: "); lcd.print(distance, 1); lcd.print(" cm "); // Alarm berdasarkan jarak if (distance < 10) { tone(buzzerPin, 1000); delay(100); noTone(buzzerPin); delay(100); } else if (distance < 0) { tone(buzzerPin, 1000); delay(300); noTone(buzzerPin); delay(300); } else if (distance < 30) { tone(buzzerPin, 1000); delay(500); noTone(buzzerPin); delay(500); } else { noTone(buzzerPin); } delay(100); }