Arduino实现超声波测距+LCD液晶屏实时显示

Arduino实现超声波测距+LCD液晶屏实时显示

1、描述

利用HC-SR04超声波测距模块,基于Arduino实现测量距离,并将结果显示在LCD1602液晶显示屏上。

2、所用食材

一个HC-SR04模块、Arduino开发板、面包板、电阻及导线若干。

3、电路图

Arduino实现超声波测距+LCD液晶屏实时显示_第1张图片
有一点需要注意一下,图中的电阻最好选用阻值在3k附近的电阻,这样会有更好的清晰度。当然如果接一个可变电阻上会更好,这样可以手动调节。

4、实物图

Arduino实现超声波测距+LCD液晶屏实时显示_第2张图片

5、代码

#include 

#define LM35 A0
#define Trig 8 //引脚Tring 连接 IO D8
#define Echo 9 //引脚Echo 连接 IO D9
 
float cm; //距离变量
float temp; // 

LiquidCrystal lcd(12,11,5,4,3,2);      //构造一个LiquidCrystal的类成员。使用数字IO ,12,11,5,4,3,2

int val = 0;        //存放AD变量值
float temp = 0;     //存放温度值的10倍

void setup()
{
  lcd.begin(16,2);    //初始化LCD1602
  lcd.print("Welcome to use!");   //液晶显示Welcome to use!
  delay(1000);        //延时1000ms
  lcd.clear();        //液晶清屏
  
  pinMode(Trig, OUTPUT);
  pinMode(Echo, INPUT);
}

void loop()
{
  //给Trig发送一个低高低的短时间脉冲,触发测距
  digitalWrite(Trig, LOW); //给Trig发送一个低电平
  delayMicroseconds(2);    //等待 2微妙
  digitalWrite(Trig,HIGH); //给Trig发送一个高电平
  delayMicroseconds(10);    //等待 10微妙
  digitalWrite(Trig, LOW); //给Trig发送一个低电平
  
  temp = float(pulseIn(Echo, HIGH)); //存储回波等待时间,
  //pulseIn函数会等待引脚变为HIGH,开始计算时间,再等待变为LOW并停止计时
  //返回脉冲的长度
  
  //声速是:340m/1s 换算成 34000cm / 1000000μs => 34 / 1000
  //因为发送到接收,实际是相同距离走了2回,所以要除以2
  //距离(厘米)  =  (回波时间 * (34 / 1000)) / 2
  //简化后的计算公式为 (回波时间 * 17)/ 1000
  cm = (temp * 17 )/1000; //把回波时间换算成cm
  
  lcd.setCursor(0,0);       //设置液晶开始显示的指针位置
  lcd.print("Now Distance:"); //液晶显示“LM35 temp =”
  lcd.setCursor(0,1);       //设置液晶开始显示的指针位置,在下一行显示
  lcd.print(cm);  //液晶显示距离
  
  
  delay(1000);              //延时1000ms
}

写在最后

希望对屏幕前的您有帮助。如果您有任何的疑问,欢迎在下方留言或者私信我,第一时间将会对您的疑问做出回应。
生命不息,折腾不止!学习之路的孤单你我共知。本人目前是大二一名普通学生,如果您愿意的话,能进一步交流可谓好之又好!

你可能感兴趣的:(Arduino实现超声波测距+LCD液晶屏实时显示)