#include "LiquidCrystal_I2C.h"
const int trigPin = 6;
const int echoPin = 5;
float duration, distance;
LiquidCrystal_I2C lcd(0x27, 16, 2);
void setup() {
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
Serial.begin(9600);
lcd.begin();
lcd.backlight();
lcd.setCursor(0, 0);
lcd.print("Distance");
}
void int_lcd(int row, int column, double num, int fp, String txt) {
lcd.setCursor(column, row);
lcd.print(num, fp);
// clear error display
if( num < 10) column = column + fp + 2;
else if( (num >= 10) && (num < 100) ) column = column + fp + 3;
else if( (num >= 100) && (num< 1000) ) column = column + fp + 4;
else if( (num >= 1000) && (num< 10000) ) column = column + fp + 5;
lcd.setCursor(column, row);
lcd.print(txt + " ");
}
void loop() {
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distance = (duration*.0343)/2;
Serial.print("Distance: ");
Serial.println(distance);
int_lcd(1, 0, distance, 2, " cm.");
delay(100);
}