#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd (0x27, 16, 2);
float mengukur_jarak() {
digitalWrite(10, HIGH);
delayMicroseconds(10);
digitalWrite(10, LOW);
long duration = pulseIn(9, HIGH);
float distance = duration/58;
return distance;
}
void setup() {
pinMode(13, OUTPUT);
pinMode(12, OUTPUT);
pinMode(11, OUTPUT);
pinMode(10, OUTPUT);
pinMode(9,INPUT);
pinMode(8, OUTPUT);
lcd.init();
lcd.backlight();
lcd.setCursor(0,0);
}
void loop() {
lcd.clear();
digitalWrite(13, LOW);
digitalWrite(12, LOW);
digitalWrite(11, LOW);
float jarak_terukur = mengukur_jarak();
if (jarak_terukur < 50 && jarak_terukur >=2){
lcd.setCursor(0,0);
lcd.print("Jarak: ");
lcd.print(jarak_terukur);
lcd.print(" cm");
delay(2000);
digitalWrite(13, HIGH);
digitalWrite(8, HIGH);
delay(500);
digitalWrite(13, LOW);
digitalWrite(8, LOW);
}
else if (jarak_terukur < 150 && jarak_terukur >=51){
lcd.setCursor(0,0);
lcd.print("Jarak: ");
lcd.print(jarak_terukur);
lcd.print(" cm");
delay(2000);
digitalWrite(11, HIGH);
delay(500);
digitalWrite(11, LOW);
}
else if (jarak_terukur >=150){
lcd.setCursor(0,0);
lcd.print("Jarak: ");
lcd.print(jarak_terukur);
lcd.print(" cm");
delay(2000);
digitalWrite(12, HIGH);
delay(500);
digitalWrite(12, LOW);
}
}