arduino超声波测距接线图详细_arduino——超声波测距仪(笔记)

本文介绍了arduino超声波测距仪的工作原理,通过脉冲宽度测量函数`pulseIn()`实现测距。内容包括超声波在空气中的传播速度、线路图及详细的代码注释,帮助理解测距过程。
AI助手已提取文章相关产品:

脉冲宽度测量函数

pulseIn()

pulse 是脉搏的意思,音标[pʌls],怕了死,脉搏停了就死了。(记忆力越来越差了,只能采用一些特殊的方法记忆)

pulseIn(pin,value,timeout)

pin,引脚

value,读取的脉冲类型,分为HIGH和LOW

timeout,超时时长单位为微秒,数据类型为长整型。

超声波测距仪工作原理

超声波可以理解为一种声波,声音在空气中传播,碰到障碍物立即返回,声音的速度为340米/秒,那么根据时间可以计算发射点到障碍物的距离。

S=340*t(时间,单位为秒)/2

除以2的意思是声波一来一回等于走了两趟。

image.png

image.png

线路图

image.png

(由于没有这个超声波测距仪,就没有贴实物图)

代码部分

由于没有实物,所以尽量将注释写清楚,来熟悉工组原理。

/*

SRO4超声波传感器驱动

*/

const int TrigPin = 2;//设置2号数字引脚为触发引脚

const int EchoPin = 3;//设置3号数字引脚为接收引脚

float distance;//定义距离为浮点型数据

void setup() {

//初始化串口信息以及连接SRO4的引脚

Serial.begin(9600);

pinMode(TrigPin,OUTPUT);//设置输出引脚此处为2

pinMode(EchoPin,INPUT);//检测3号引脚输入的脉冲宽度,需要先设置为输入状态

}

void loop() {

//制作一个10微秒的高频脉冲触发2号引脚,超声波测距仪触发至少需要10微秒的高电平信号

digitalWrite(TrigPin,LOW);//先设置为低电平

delayMicroseconds(2);//持续2微秒

digitalWrite(TrigPin,HIGH);//设置为高电平

delayMicroseconds(10);//持续10微秒

digitalWrite(TrigPin,LOW);//再设置为低电平,这样模拟出了脉冲信号

distance = pulseIn(EchoPin,HIGH)/58;//返回的是脉冲宽度/58得到实际距离

delay(1000);

您可能感兴趣的与本文相关内容

您将学习如何将超声波传感器HC-SR04Arduino。它可以是超声波范围传感器或任何用途。 超声波传感器HC-SR04是可以测量距离的传感器。它会发出40 000 Hz(40kHz)的超声波,该超声波在空中传播,如果路径上有物体或障碍物,它将反弹回模块。考虑到传播时间和声音的速度,您可以计算出距离。 HC-SR04的配置引脚为VCC(1),TRIG(2),ECHO3)和GND(4)。VCC的电源电压为+ 5V ,您可以将TRIGECHO引脚Arduino板中的任何数字I / O。 进行此项目所需的材料: 1. Arduino UNO R3 CH340(您可以使用任何Arduino开发板) 2.超声波传感器HC-SR04 3.公对公跳线 4.面包板 为了产生超声波,我们需要将触发引脚设置为高状态10 s 。这将发出一个8周期的声音脉冲,将以速度声音行进,并且将在回音针中收。回音针将输出声波传播的时间(以微秒为单位)。 例如,如果物体距传感器20厘米,并且声音的速度为340 m / s或0.034 cm / µs,则声波将需要传播约588微秒。但是由于声波需要向前传播和向后反弹,所以从回声针所得到的将会是这个数字的两倍。因此,为了获得以厘米为单位的距离,我们需要将从回波引脚收的行进时间值乘以0.034,然后将其除以2。 对于编程代码,首先我们需要定义连Arduino板的触发引脚和回波引脚。在此项目中,EchoPin附加到D2 ,TrigPin附加到D3。然后定义距离(整数)和持续时间(长整数)的变量。 在循环中,首先必须确保trigPin是透明的,所以我们必须将该引脚设置为LOW状态2 µs 。现在,用于生成超声波,我们必须设置trigPin的高态为10微秒。使用pulseIn()函数,您必须读取行程时间并将该值放入变量“ duration”中。此功能有2个参数,第一个是回波引脚的名称,第二个可以写入HIGH或LOW。在这种情况下,HIGH表示pulseIn()该功能将等待由反弹的声波引起的引脚变为高电平并开始计时,然后在声波结束时等待引脚变为低电平而停止计时。最后,该函数将返回脉冲长度(以微秒为单位)。为了获得距离,我们将持续时间乘以0.034,然后将其除以2,如我们之前解释此方程式。最后,我们将在串行监视器上打印距离的值。 脚步 : 1.首先进行如图所示的线 2.打开Arduino IDE软件并写下您的代码,或下载下面的代码并打开它 3.通过选择工具>板> Arduino / Geniuno Uno选择您自己的Arduino板(在本例中为Arduino Uno) 4.选择“ COM端口”(通常只显示一个现有端口),在“工具” >“端口” >“ COM。”中。(如果有多个端口,一一尝试) 5.通过按Ctrl + U或Sketch > Upload上载代码 6.要显示测量数据,可以使用串行监视器,方法是按Ctrl + Shift + M (确保波特率是9600) 上载代码后,使用串行监视器显示数据。现在,尝试将一个物体放在传感器前面,然后查看测量结果。 考虑到这一点,您可以使用手动卷尺测量距离并将其与串行监视器上的距离进行比较。如果要在LCD上显示,可以按照第二个接线图并上传以下代码
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值