// Nama : Danendra Nobel Adrisurya XI-8/08
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
const int trigpin = 7;
const int echopin = 6;
const int merah = 11;
const int kuning= 12;
const int ijo = 13;
const int biru = 10;
const int jingga = 9;
void setup() {
pinMode(trigpin, OUTPUT);
pinMode(echopin, INPUT);
pinMode(merah, OUTPUT);
pinMode(kuning, OUTPUT);
pinMode(ijo, OUTPUT);
pinMode(biru, OUTPUT);
pinMode(jingga, OUTPUT);
Serial.begin(9600);
lcd.setCursor(16,2);
lcd.backlight();
lcd.setCursor(0,0);
lcd.print("Jarak:");
}
void loop() {
digitalWrite(trigpin, LOW);
delayMicroseconds(2);
digitalWrite(trigpin, HIGH);
delayMicroseconds(10);
digitalWrite(trigpin, LOW);
long Durasi = pulseIn(echopin, HIGH);
int Jarak = Durasi * 0.034 / 2;
Serial.print("Jarak: ");
Serial.println(Jarak);
lcd.setCursor(6,0);
lcd.print(" ");
lcd.setCursor(6,0);
lcd.print(Jarak);
lcd.print(" cm");
if (Jarak < 50) {
digitalWrite(merah, HIGH);
digitalWrite(kuning, LOW);
digitalWrite(ijo, LOW);
digitalWrite(biru, LOW);
digitalWrite(jingga, LOW);
}else if (Jarak < 100) {
digitalWrite(merah, LOW);
digitalWrite(kuning, HIGH);
digitalWrite(ijo, LOW);
digitalWrite(biru, LOW);
digitalWrite(jingga, LOW);
}else if (Jarak < 150){
digitalWrite(merah, LOW);
digitalWrite(kuning, LOW);
digitalWrite(ijo, HIGH);
digitalWrite(biru, LOW);
digitalWrite(jingga, LOW);
}else if (Jarak < 250){
digitalWrite(merah, LOW);
digitalWrite(kuning, LOW);
digitalWrite(ijo, LOW);
digitalWrite(biru, HIGH);
digitalWrite(jingga, LOW);
}else {
digitalWrite(merah, LOW);
digitalWrite(kuning, LOW);
digitalWrite(ijo, LOW);
digitalWrite(biru, LOW);
digitalWrite(jingga, HIGH);
}
delay(1000);
}