#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16,2); //設定LCD位址0x27與大小16個字X2行
String line="remaining distance!";
//設定超音波接腳
int Trig = 32; //設定超音波觸發信號發送腳位
int Echo = 17; //設定超音波回音接收腳位
int Gr=16;//設定輸出LED
void setup() {
lcd.init(); //初始化LCD
lcd.backlight(); //開啟LCD背光
pinMode(Trig, OUTPUT);
pinMode(Echo, INPUT);
pinMode(Gr, OUTPUT);
}
void loop() {
//超音波探測距離
digitalWrite(Trig, LOW); // 先關閉
delayMicroseconds(5);
digitalWrite(Trig, HIGH); // 啟動超音波
delayMicroseconds(10);
digitalWrite(Trig, LOW); // 關閉
float EchoTime = pulseIn(Echo, HIGH); // 計算傳回時間
int CMValue = EchoTime / 29.4 / 2; // 將時間轉換成距離
////
//距離過近警示
if(CMValue<=100)
{
digitalWrite(Gr,HIGH);
}
else
{
digitalWrite(Gr,LOW);
}
////
//輸出距離到LCD
lcd.setCursor(0,0); //設定游標
lcd.print("remaining dist:"); //印出文字
lcd.setCursor(6,1); //設定游標
lcd.print(CMValue); //印出文字
lcd.setCursor(9,1); //設定游標
lcd.print("cm"); //印出文字
delay(1000);
lcd.clear(); //清除所有內容
delay(300);
////
}