// Nama : Angelique Kania Wiguna
// Kelas, absen : XI-8,04
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
// Inisialisasi LED dan Sensor jarak
const int trigPin = 7;
const int echoPin = 6;
const int ledMerah = 11;
const int ledKuning = 12;
const int ledHijau = 13;
const int ledBiru = 10;
const int ledJingga = 9;
// Setting INPUT dan OUTPUT
void setup() {
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(ledMerah, OUTPUT);
pinMode(ledKuning,OUTPUT);
pinMode(ledHijau, OUTPUT);
pinMode(ledBiru, OUTPUT);
pinMode(ledJingga, OUTPUT);
Serial.begin(9600);
// Inisialisasi LCD
lcd.begin(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;
//Menampilkan data
Serial.print("Jarak: ");
Serial.println(Jarak);
//Menampilkan jarak di LCD
lcd.setCursor(6,0);
lcd.print(" ");
lcd.setCursor(6,0);
lcd.print(Jarak);
lcd.print(" cm");
//Menentukan atau pengkondisian warna lampu
if (Jarak < 50) {
digitalWrite(ledMerah, HIGH);
digitalWrite(ledKuning, LOW);
digitalWrite(ledHijau, LOW);
digitalWrite(ledBiru, LOW);
digitalWrite(ledJingga, LOW);
} else if (Jarak < 100) {
digitalWrite(ledMerah, LOW);
digitalWrite(ledKuning, HIGH);
digitalWrite(ledHijau, LOW);
digitalWrite(ledBiru, LOW);
digitalWrite(ledJingga, LOW);
} else if (Jarak < 150) {
digitalWrite(ledMerah, LOW);
digitalWrite(ledKuning, LOW);
digitalWrite(ledHijau, HIGH);
digitalWrite(ledBiru, LOW);
digitalWrite(ledJingga, LOW);
} else if (Jarak < 200) {
digitalWrite(ledMerah, LOW);
digitalWrite(ledKuning, LOW);
digitalWrite(ledHijau, LOW);
digitalWrite(ledBiru, HIGH);
digitalWrite(ledJingga, LOW);
} else {
digitalWrite(ledMerah, LOW);
digitalWrite(ledKuning, LOW);
digitalWrite(ledHijau, LOW);
digitalWrite(ledBiru, LOW);
digitalWrite(ledJingga, HIGH);
}
delay(1000);
}