#include <LiquidCrystal_I2C.h>
#define TRIG 9
#define ECHO 10
#define COLS 16
#define ROWS 2
#define VALUES 2
LiquidCrystal_I2C lcd(0x27, COLS, ROWS);
const float speed_of_sound_per_us[VALUES] = {.0343, .0135039}; // 0.343, 0.0135039
const String units[VALUES] = {"cm", "in"};
float distance;
String result;
void setup()
{
pinMode(TRIG, OUTPUT);
pinMode(ECHO, INPUT);
lcd.begin(COLS, ROWS);
lcd.backlight();
for(byte i = 0; i < VALUES; i++)
{
lcd.setCursor(0, i);
lcd.print("Distance:");
}
}
void loop()
{
digitalWrite(TRIG, LOW);
delayMicroseconds(2); // delay(0.002);
digitalWrite(TRIG, HIGH);
delayMicroseconds(10); // delay(0.01);
digitalWrite(TRIG, LOW);
distance = pulseIn(ECHO, HIGH) / 2;
for(byte i = 0; i < VALUES; i++)
{
lcd.setCursor(10, i);
result = String(int(distance * speed_of_sound_per_us[i])) + ' ' + units[i];
for(byte i = 0; result.length() < COLS; i++)
result += ' ';
lcd.print(result);
}
delay(100);
}