#include <LiquidCrystal_I2C.h>
#define I2C_ADDR 0x27
#define LCD_COLUMNS 16
#define LCD_LINES 2
LiquidCrystal_I2C lcd(I2C_ADDR, LCD_COLUMNS, LCD_LINES);
const int pingpin = 14;
void setup() {
Serial.begin(115200);
lcd.init();
lcd.backlight();
lcd.setCursor(3, 0);
lcd.print("Start Mesure");
delay(2000);
lcd.clear();
}
void loop() {
long dura, inches, cm;
//-----------Triger----------------
pinMode(pingpin, OUTPUT);
digitalWrite(pingpin, LOW);
delayMicroseconds(2);
digitalWrite(pingpin, HIGH);
delayMicroseconds(5);
digitalWrite(pingpin, LOW);
//------------Readback-------------
pinMode(pingpin, INPUT);
dura = pulseIn(pingpin, HIGH);
cm = microsecondsToCentimeters(dura);
lcd.setCursor(3, 0);
// lcd.autoscroll();
lcd.print("Distance:");
lcd.setCursor(5, 1);
// lcd.noAutoscroll();
lcd.print(cm);
lcd.setCursor(9, 1);
lcd.print("cm");
Serial.print(cm);
Serial.println("cm");
delay(100);
}
long microsecondsToCentimeters(long microseconds) {
return microseconds / 29 / 2;
}