#define PIN_TRIG 12//
#define PIN_ECHO 11//
int ledmerah =8;
int ledkuning =7;
// Jika jarak < 100 maka hidup lampu merah
// Jika jarak < 200 maka hidup lampu kuning
// Jika jarak > 201 maka hidup semuanya
#include <LiquidCrystal_I2C.h>//
const int buttonPin = 2;
float cm;
float temp;
LiquidCrystal_I2C lcd(0x27, 20, 4);
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
pinMode(PIN_TRIG, OUTPUT);
pinMode(PIN_ECHO, INPUT);
lcd.init();
lcd.backlight();
pinMode(buttonPin, INPUT_PULLUP);
}
void loop() {
// put your main code here, to run repeatedly:
digitalWrite(PIN_TRIG, LOW);
delayMicroseconds(2);
digitalWrite(PIN_TRIG, HIGH);
delayMicroseconds(10);
digitalWrite(PIN_TRIG, LOW);
temp = float(pulseIn(PIN_ECHO, HIGH));
cm = (temp * 17 )/1000;
Serial.print("Echo = ");
Serial.print(temp);
Serial.print(", Distance = ");
Serial.print(cm);
Serial.println("cm");
delay(300);
lcd.setCursor(1, 0);
lcd.print("Echo=");
lcd.print(temp);
lcd.setCursor(1, 1);
lcd.print("Distance=");
lcd.print(cm);
if(cm <=100){
digitalWrite(ledmerah, HIGH);
}
else if(cm >100 && cm <=200)
{
digitalWrite(ledkuning, HIGH);
digitalWrite(ledmerah, LOW);
}
else {
digitalWrite(ledmerah, HIGH);
// delay(500);
// digitalWrite(ledmerah, LOW);
digitalWrite(ledkuning, HIGH);
// delay(500);
// digitalWrite(ledkuning, LOW);
}
if (!digitalRead(buttonPin))
delay(50);
if (!digitalRead(buttonPin)) {
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("button Pressed");
}
}