#include <Wire.h>
#include <LiquidCrystal_I2C.h> //引用I2C库
//设置LCD1602设备地址,这里的地址是0x3F,一般是0x20,或者0x27,具体看模块手册
LiquidCrystal_I2C lcd(0x27,16,2);
int Echo = 2; // 定义超声波信号接收脚位
int Trig = 0; // 定义超声波信号发射脚位
float Get_Distance()//测出距离
{
digitalWrite(Trig, LOW); // 让超声波发射低电压2μs
delayMicroseconds(2);
digitalWrite(Trig, HIGH); // 让超声波发射高电压10μs,这里至少是10μs
delayMicroseconds(10);
digitalWrite(Trig, LOW); // 维持超声波发射低电压
float Ldistance = pulseIn(Echo, HIGH,5000); // 读差相差时间
Ldistance = Ldistance / 5.8 / 10; // 将时间转为距离距离(单位:公分)
Serial.print("超声波的距离是:");
Serial.println(Ldistance); //显示距离
return Ldistance;
}
void setup()
{
lcd.init(); //初始化LCD
lcd.backlight(); //设置LCD背景等亮
pinMode(Echo, INPUT); //接收引脚模式设置
pinMode(Trig, OUTPUT); //发射引脚模式设置
Serial.begin(9600);
}
void loop()
{
Get_Distance(); //获得超声波距离
LCDShow(Get_Distance()); //LCD显示超声波距离
delay(500);
}void LCDShow(float Ldistance)
{
lcd.setCursor(0,0); //设置显示指针 列、行
lcd.print("Ldistance"); //输出字符到LCD1602上
lcd.setCursor(0,1);
lcd.print(Ldistance);
}