#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#define EchoPin 9
#define TrigPin 8
#define LED1 13
#define LED2 11
#define LED3 10
LiquidCrystal_I2C lcd(0x27, 16, 2);
long waktu;
long jarak;
void setup() {
Serial.begin(9600);
pinMode(EchoPin, INPUT);
pinMode(TrigPin, OUTPUT);
pinMode(LED1, OUTPUT);
pinMode(LED2, OUTPUT);
pinMode(LED3, OUTPUT);
lcd.init();
lcd.backlight();
lcd.setCursor(0,0);
lcd.print("ULTRASONIK");
lcd.setCursor(0,1);
lcd.print("jarak= ");
}
void loop() {
digitalWrite(TrigPin, LOW);
delayMicroseconds(2);
digitalWrite(TrigPin, HIGH);
delayMicroseconds(10);
digitalWrite(TrigPin, LOW);
waktu = pulseIn(EchoPin, HIGH);
jarak = waktu*0.034/2;
Serial.print("jarak =");
Serial.print(jarak);
delay(200);
lcd.setCursor(8,1);
lcd.print(" ");
lcd.setCursor(8,1);
lcd.print(jarak);
lcd.print(" CM");
if(jarak > 50){
Serial.println("Jarak lebih dari 50cm");
digitalWrite(LED1, HIGH);
digitalWrite(LED2, LOW);
digitalWrite(LED3, LOW);
}
else if(jarak <= 50 && jarak >= 20){
Serial.println("Jarak berada diantara 20cm hingga 50cm");
digitalWrite(LED2, HIGH);
digitalWrite(LED1, LOW);
digitalWrite(LED3, LOW);
}
else if(jarak < 20){
Serial.println("Jarak kurang dari 20cm");
digitalWrite(LED3, HIGH);
digitalWrite(LED2, LOW);
digitalWrite(LED1, LOW);
}
}