#define I2C_ADDR 0x27
#define LCD_COLUMNS 20
#define LCD_LINES 4
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(I2C_ADDR, LCD_COLUMNS, LCD_LINES);
#define TRIG 7
#define ECHO 6
//HCsr Code
long baca(int pinTrig, int pinEcho) {
pinMode(pinTrig, OUTPUT);
digitalWrite(pinTrig, LOW);
digitalWrite(pinTrig, HIGH);
delayMicroseconds(10);
digitalWrite(pinTrig, LOW);
pinMode(pinTrig, INPUT);
return pulseIn(pinEcho, HIGH);
}
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
//lcd init
lcd.init();
lcd.backlight();
//lcd static print
lcd.setCursor(3, 0);
lcd.println("HC-SR Monitor");
lcd.setCursor(0, 2);
lcd.print("Jarak(cm): ");
}
void loop() {
// put your main code here, to run repeatedly:
int cm = 0;
cm = (0.03446 * baca(TRIG, ECHO)) / 2;
Serial.print(cm);
Serial.println(" cm");
//lcd Print
lcd.setCursor(11, 2);
lcd.print(cm);
/* Menggunakan " " untuk mengatasi flikering , daripada menggunakan lcd.clear() */
lcd.print(" ");
delay(500);
}