#include <Wire.h>
//thêm thư viện Wire.h
// thêm thư viện LiquidCrystal_I2C
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
// cài đặt địa chỉ cho LCD là 6X27, lcd có 16 cột và 2 hàng
const int trig = 11; // chân trig của HC-SR04
const int echo = 10; // chân echo của HC-SR04
void setup()
{
Serial.begin(9600); // giao tiếp Serial với baudrate 9600
pinMode(trig, OUTPUT); // chân trig sẽ phát tín hiệu
pinMode(echo, INPUT);
lcd.init(); // bắt đầu sử dụng LCD // Bật đèn nền của LCD
lcd.backlight();
}
void loop()
{
unsigned long duration; // biến đo thời gian
int distance; // biến lưu khoảng cách
/* Phát xung từ chân trig */
digitalWrite(trig, 0); // tắt chân trig
delayMicroseconds(2);
digitalWrite(trig, 1); // phát xung từ chân trig
delayMicroseconds(5); // xung có độ dài 5 microSeconds
digitalWrite(trig, 0); // tắt chân trig
/* Tính toán thời gian */
// Đo độ rộng xung HIGH ở chân echo.
duration = pulseIn(echo, HIGH);
// Tính khoảng cách đến vật.
distance = int(duration / 2 / 29.412);
/* In kết quả ra Serial Monitor */
Serial.print(distance);
Serial.println("cm");
lcd.setCursor(0,0);
lcd.print("D=");
lcd.print(distance);
lcd.print(" cm ");
lcd.setCursor(4,1);
if (distance <20 )
{
lcd.print("danger");
}
else
{
lcd.print("safe ");
}
delay(200);
}