//22.11.4562 - Muhammad Guido Augusta
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27 ,16, 2);
const int ledRed = 10;
const int ledYellow = 11;
const int ledGreen = 12;
long bacaJarak (int triggerPin, int echoPin){
pinMode(triggerPin, OUTPUT);
digitalWrite(triggerPin, LOW);
digitalWrite(triggerPin, HIGH);
delayMicroseconds(10);
digitalWrite(triggerPin, LOW);
pinMode(echoPin, INPUT);
return pulseIn(echoPin, HIGH);
}
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
lcd.init();
lcd.backlight();
lcd.begin(16,2);
}
void loop() {
// put your main code here, to run repeatedly:
int cm = 0; //reset cm ke e
cm = (0.03446 * bacaJarak (7,8))/2;
lcd.setCursor(0, 0);
lcd.print("jarak: ");
lcd.setCursor(7, 0);
lcd.print(cm);
lcd.setCursor(10, 0);
lcd.print(" CM");
if (cm > 15) {
digitalWrite(ledRed, LOW);
digitalWrite(ledYellow, LOW);
digitalWrite(ledGreen, HIGH);
} else if (cm >= 5 && cm <= 15) {
digitalWrite(ledRed, LOW);
digitalWrite(ledYellow, HIGH);
digitalWrite(ledGreen, LOW);
} else {
digitalWrite(ledRed, HIGH);
digitalWrite(ledYellow, LOW);
digitalWrite(ledGreen, LOW);
}
Serial.print(cm);
Serial.println("cm");
delay(500);
lcd.clear();
}