#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16,2);
int trig_pin = 0;
int echo_pin = 1;
long echotime;
float Jarak;
const int Merah = 3;
const int Biru = 4;
const int Hijau = 5;
const int SpeakerBuzzer = 2;
void setup()
{
lcd.begin(16, 2);
pinMode (trig_pin, OUTPUT);
pinMode (echo_pin, INPUT);
digitalWrite(trig_pin, LOW);
pinMode (Merah, OUTPUT);
pinMode (Biru, OUTPUT);
pinMode (Hijau, OUTPUT);
pinMode (SpeakerBuzzer, OUTPUT);
}
void loop()
{
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Sensor Jarak :");
digitalWrite(trig_pin, HIGH);
delayMicroseconds(10);
digitalWrite(trig_pin, LOW);
echotime= pulseIn(echo_pin, HIGH);
Jarak=0.0001*((float)echotime*340.0)/2.0;
lcd.setCursor(0,1);
lcd.print (Jarak);
lcd.print("cm ");
delay(500);
if (Jarak > 150)
{
digitalWrite (Hijau, HIGH);
lcd.clear();
lcd.setCursor (0, 0);
lcd.print ("Hijau");
lcd.setCursor (0, 1);
lcd.print ("Aman");
delay (500);
}
else if (Jarak > 51 && Jarak < 150)
{
lcd.clear();
lcd.setCursor (0, 0);
lcd.print ("Biru");
lcd.setCursor (0, 1);
lcd.print ("Hati-Hati");
delay (500);
digitalWrite (Biru, HIGH);
digitalWrite (Hijau, LOW);
digitalWrite (SpeakerBuzzer, HIGH);
delay(500);
digitalWrite (Biru, LOW);
digitalWrite (Hijau, LOW);
digitalWrite (SpeakerBuzzer, LOW);
delay(500);
}
else if (Jarak < 50)
{
lcd.clear();
lcd.setCursor (0, 0);
lcd.print ("Merah");
lcd.setCursor (0, 1);
lcd.print ("Bahaya");
delay (500);
digitalWrite (Merah, HIGH);
digitalWrite (Hijau, LOW);
digitalWrite (SpeakerBuzzer , HIGH);
delay (500);
digitalWrite (Merah, LOW);
digitalWrite (Hijau, LOW);
digitalWrite (SpeakerBuzzer, LOW);
delay (100);
}
else if (Jarak > 200)
{
digitalWrite (Hijau, LOW);
}
}