欢迎光临焊接机网站十年品质,专业研发团队,优质售后服务!

第十章数字超声波测距仪(SR-04超声波测距模块+四位数码管)(Arduino:从Lit到物联网)

作者:易秋      发布时间:2021-05-09      浏览量:0
首先,让我们看一看超声波。科学家称每秒振

首先,让我们看一看超声波。科学家称每秒振动的次数是以赫兹(赫兹)为单位的声音频率。我们在人耳中能听到的声波的频率是20赫兹-2000赫兹。因此,我们把频率大于20000 Hz的声波称为“超声波”。

超声波具有良好的方向性、较强的穿透能力、易于获得集中的声能、在水中的长传播距离,可用于测距、测速、清洗、焊接、砾石、杀菌和消毒等领域。在医学、军事、工农业等领域有着广泛的应用:

在动物世界中也发挥着不可替代的作用:蝙蝠和海豚依靠自己的超声波定位和捕捉猎物。

超声波测距仪是根据超声波的特点设计的:

我们今天的项目是制作一个数字超声波测距仪。除了UNO主控板外,我们还将使用超声波测距模块和负四位数数字显示模块,因为超声波测距模块的最大测距为4.5米,精度为0.2厘米,考虑到我们的显示模块是4位,所以我们将显示距离的单位设置为厘米,前三位显示整数部分,最后显示小数部分,正好满足超声波测距模块的精度要求。

1本章您将学习

在本项目中,您将学习:

此外,您还将通过本项目学习LED显示模块的一般驱动原理。

2工具和组件

2.1工具列表

此项目不需要其他工具。

2。

元器件个数注主控制板Arduino Uno 1超声波测距模块SR-04 1全负四位数码管1电阻220欧姆4 Bread Board 1杜邦线如果数据线Uno数据行1

2.3工具和部件

2.3.1 SR-04超声波测距模块

SR-04超声波测距模块性能稳定,测量距离小,盲区小,密钥仍然非常便宜。它在客户领域应用最为广泛,包括机器人避障、目标测距、液位检测等。

2.3.1.1技术参数

技术参数模块指标采用电压直流5V静电流小于2mA的感应角小于15°检测距离2cm~450 cm检测精度0.2cm。

2.3.1.2引脚描述

2.3.1。3工作原理

测试距离=(高水平时间声速(340 m/S)/2

),因此该模块的使用方法相对简单。如果在Trig控制端口发送多个10 US的高电平,则可以在回波接收端口等待高级别输出。一旦有输出,就可以打开定时器。当该端口成为低功耗时,可以读取定时器的值,并根据上述测距时间公式计算距离。

2.3。(2)全负四位数数码管

数码管是一种半导体发光器件。数码管可分为七段数码管和八段数码管.不同的是,八段数码管比用于显示小数点的七段数码管多一个发光二极管单元。基本单位是发光二极管.

负四位数码管是一种数字显示屏,它由四个八段数码管组成,可以显示四个数字,支持小数点和时间格式的显示。

数码管是一种半导体发光器件,其基本单元是发光二极管。因此,为了防止过大的电流,还需要串联电阻。

2.3.2.1引脚表示

2.3.2.2与Arduino

1-4用于选择显示哪个字符,哪个字符是阴极,限流电阻(4)与阴极串联,其他字符可根据图形连接。

32电路原理

因为四位数码管基本上使用所有的数字端口,除了0,1,因为0,1这两个引脚是UNO连接计算机的串口,为了便于通过串口打印和调试信息,一般尽量少,所以超声波测距模块这里使用模拟端口A4和A5。

4编程

4.2主要编程

/*名称:超声波测距仪*函数:*作者:yxk*time:2018.6。5*/Const int trigPin=18;/定义超声波测距模块Trig pin A4 const int echo Pin=19;/定义超声波测距回波针A5 const int led[8]={2,4,5,6,7,8,9};/定义数码管LED管脚Const int com[4]={13,12,11,10};//声明一个浮点距离变量int disint;//声明一个成形距离变量inteydelay=500;//视觉延迟时间,单位微秒/数码管0-F。码值表无符号字符num[17][8]={//a c d e f h{1,1,1,1,1,0,0},//0{0,1,1,0,0},//1,0,0,0,1,1,0,1,0},//2{1,1,1,1,0,0,1,0},//3{0,1,1,1,1,0,0,1,0,0,0}1,0,0,1,0},//4{1,0,1,0,1,0},//5{1,0,1,1,0},//6{1,1,0,0},//6{1,1,0,0},//7{1,1,1,1,1,0},//8{1,1,1,1,1,0},/9{1,1,1,1,1},//A{1,1,1//C{1,1,1,1,1,0},//D{1,0,1,1,1}/E{1,0,0,1,1},//F{0,0,0,0,0,0,1},//}voidSet(){for(Inti=0;I<8;i+)PinMode(led[i],Output);for(Inti=0;i<4;i+)PinMode(com[i],Output);PinMode(Trigpin),Output);PinMode(ecHopin,INPUT);}voidloop(){distFloat=checkDistance(trigPin,Echo);disFloat*10;//显示四位数字管上的距离,您需要将Dist变量分为第一、第二、第三和第四。First Bit=Колибри0.7.0for(Inti=0;i<=500;i+){//开始在数字管显示器(2,16)//显示点显示器(1,First Bit)上显示(1,First Bit);//显示编号One,即整数部分的百位数。显示(2,(第二位);延迟微秒(眼延迟);显示(3,(第三位);延迟微秒(眼延迟);显示(4,(第四位);延迟微秒(眼延迟);}\{e76f}Unsigndchar(N)//显示功能D任选数值化范围1-4N任选数值化范围0-1616是一个十进制点{for(Inti)=0;我<8;我+)//移除余辉[I]低);开关(D)//选择普适钻头选择{Case 1:DigitalWite(COM)[0],低);//选择钻头1 DigitalWite(COM)[1],高);DigitalWite(COM)[2],高);DigitalWite(COM)[3],高);中断;案例2:DigitalWite(COM)[0],高);DigitalWite(COM)[1],低);//选择钻头2 DigitalWite(COM)[2],高);DigitalWite(COM)[3],高);中断;案例3:DigitalWite(COM)[0],高);DigitalWite(COM)[1],高);DigitalWite(COM)[2],低);//选择钻头3 DigitalWite(COM)[3],高);中断;案例4:DigitalWite(COM)[0],高);DigitalWite(COM)[1],高);DigitalWite(COM)[2],高);DigitalWite(COM)[3],低);//选择钻头4断裂;违约:中断;}for(Inti)=0;我<8;我+)数字努姆[núi];//显示依到电码表}浮标距离(INTRIG)INTEcho//超声波测距功能{DigitalW区(Trig,Low);//控制终端Trig以低电平2 subtledelayMicro秒(2)开始;DigitalW区(Trig,高);//在控制端的Trig比控制终端高一级;subtledelayMicros(10);DigitalW区(trig,低);浮距=PulseIn(高回声)/58;//根据接收机ECHO.Delay(10)返回距离获得的高电流正常长度计算距离;

这个程序将不再被解释,程序中的注释非常清楚!

5,4安装和调试

下面,我们根据电路图:

测试将这两个模块连接到UNO:

测试,效果很好!这里有一个小小的提醒,因为超声波本身的特性,对于软目标距离的测试,如衣服,会有一定的误差,对于硬目标距离测试,如墙,会更准确,可以测试!

6,5概括扩展

,使您了解LED显示模块的一般驱动原理,本项目不使用任何库,您会发现主程序比较长,似乎比较复杂,关键是不能重用。

您能根据这个主程序为超声波测距模块和四位数数码管编写两个库吗?以后,如果您在项目中也需要它们,您可以方便地重用它们!

7,6个补充内容(20181223)

已经有一段时间没有更新了,儿子几天前想参加学校科技竞赛,和他做了一个超声波测距仪,为了简化设计和连接,四位数码管由I2C模块连接,主控制板是纳米板,小一点,或者在图片上!