#include <Wire.h> //นำเข้า Libary ที่ต้องการใช้
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2); //กำหนดการใช้งาน LCD แบบ 16 คอลัมน์ 2 แถว
int TRIGPin = 9; //กำหนด Trig รับข้อมูลจากขา 9
int ECHOPin = 8; //กำหนด ECHO รับข้อมูลจากขา 8
int duration, cm; //ประกาศตัวแปร
void setup() {
lcd.init(); //เปิดใช้งาน LCD
lcd.backlight(); //เปิดแสงพื้นหลัง
pinMode(9, OUTPUT); //กำหนดให้ขา 9 เป็น OUTPUT
pinMode(8, INPUT); //กำหนดให้ขา 8 เป็น INPUT
}
void loop(){
digitalWrite(TRIGPin, LOW); //หยุดส่งคลื่น Ultrasonic
delayMicroseconds(2); //หน่วงเวลา 2 ไมโครวินาที
digitalWrite(TRIGPin, HIGH); //ส่งคลื่น Ultrasonic
delayMicroseconds(5); //หน่วงเวลา 5 ไมโครวินาที
digitalWrite(TRIGPin, LOW); //หยุดส่งคลื่น Ultrasonic
duration = pulseIn(ECHOPin, HIGH); //รับค่าระยะทางจาก HC-SR04
cm = map(duration,118,23390,2,400); //แปลงค่าให้อยู่ในหน่วย cm
lcd.setCursor(0, 0); //กำหนดตำแหน่งบน LCD
lcd.print("Distance :"); //แสดงข้อความบน LCD
lcd.setCursor(1, 1); //กำหนดตำแหน่งบน LCD
lcd.print(String() + cm + " cm " + (float)cm/100 + " m "); //แสดงข้อความบน LCD
}