#include <Arduino.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
const int trigPin =13;
const int echoPin = 12;
const int redPin = 2;
const int yellowPin = 26;
const int greenPin = 32;
const int buzzerPin = 14;
long duration;
int distance;
void setup(){
pinMode(redPin, OUTPUT);
pinMode(yellowPin, OUTPUT);
pinMode(greenPin, OUTPUT);
Serial.begin(9600);
pinMode (trigPin, OUTPUT);
pinMode (echoPin, INPUT);
lcd.init();
lcd.backlight();
pinMode(buzzerPin,OUTPUT);
}
void loop(){
digitalWrite(trigPin,LOW) ;
delayMicroseconds(2) ;
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW) ;
duration =pulseIn (echoPin, HIGH);
distance = duration * 0.034 / 2;
Serial.print("Jarak: ");
Serial.print(distance);
Serial.println("cm");
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Jarak: ");
lcd.print(distance);
lcd.print(" cm");
if (distance > 30) {
digitalWrite(greenPin, HIGH);
digitalWrite(redPin, LOW);
digitalWrite(yellowPin, LOW);
} else if (distance >= 14 && distance <= 29) {
digitalWrite(greenPin, LOW);
digitalWrite(redPin, LOW);
digitalWrite(yellowPin, HIGH);
} else if (distance >= 0 && distance < 14) {
digitalWrite(greenPin, LOW);
digitalWrite(redPin, HIGH);
digitalWrite(yellowPin, LOW);
}
if (distance < 15){
tone(buzzerPin,1000);
}else{
noTone(buzzerPin);
}
delay(500);
}