#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd( 0x27 , 16 , 2 );
#define PIN_TRIG 2
#define PIN_ECHO 3
#define pinr 11
#define ping 10
#define pinb 9
int jarak ;
void setup() {
lcd.init();
lcd.backlight();
Serial.begin(9600);
pinMode(pinr, OUTPUT);
pinMode(ping, OUTPUT);
pinMode(pinb, OUTPUT);
pinMode(PIN_TRIG, OUTPUT);
pinMode(PIN_ECHO, INPUT);
}
void loop() {
// Start a new measurement:
digitalWrite(PIN_TRIG, HIGH);
delayMicroseconds(10);
digitalWrite(PIN_TRIG, LOW);
// Read the result:
int duration = pulseIn(PIN_ECHO, HIGH);
jarak = duration / 58;
Serial.print("Distance in CM : ");
Serial.println(jarak);
lcd.setCursor(0, 0);
lcd.print("Jarak :");
lcd.setCursor(0, 1);
lcd.print(jarak);
lcd.setCursor(4, 1);
lcd.print("CM");
if(jarak >= 0 && jarak <= 67){
// ungu
ledRGB(191,0,225);
}
else if(jarak >67 && jarak <= 133){
// biru
ledRGB(0,0,225);
}
else if(jarak >133 && jarak <= 200){
// hijau
ledRGB(0,225,0);
}
else if(jarak >200 && jarak <= 266){
// kuning
ledRGB(225,225,0);
}
else if(jarak >266 && jarak <= 333){
// jingga
ledRGB(225,127,0);
}
else if(jarak >333 && jarak <= 403){
// merah
ledRGB(225,0,0);
}
else{
ledRGB(0,0,0);
}
delay(1000);
lcd.clear();
}
void ledRGB(int R, int G , int B){
analogWrite(pinr,R);
analogWrite(ping,G);
analogWrite(pinb,B);
}