#define EchoPin 7 // 使用宏定义传感器端口
#define TrigPin 8
unsigned long Time_Echo_us = 0; //传感器返回值
unsigned long Distance=0; //测量距离(单位毫米)
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 20,4);
void setup()
{
Serial.begin(9600);
pinMode(TrigPin,OUTPUT);//设置TRIG触发端口,为输出模式
pinMode(EchoPin,INPUT);//设置ECHO端口,为输入模式
lcd.init();
lcd.backlight();
pinMode(A3, OUTPUT);
}
void loop()
{
//TRIG触发测距
digitalWrite(TrigPin, HIGH);
delayMicroseconds(50);
digitalWrite(TrigPin, LOW);
//使用pulseIn(pin, value)函数,测量高电平时间,返回值单位为us
Time_Echo_us = pulseIn(EchoPin, HIGH);
//根据计算公式,计算距离
//计算前先进行单位转换,把m/s转换为mm/us,340m/s转换为340*1000/1000/1000=0.34mm/us
Distance=Time_Echo_us*0.34/2;
Serial.print("Distance=");
Serial.print(Distance);
Serial.println("mm");
lcd.clear();
lcd.setCursor(4, 0);
lcd.print(Distance);
if(Distance>600){
digitalWrite(A3, HIGH);
}
else {
digitalWrite(A3, LOW);
}
delay(1000);
}