超声波传感器与树莓派Pico W接口使用Arduino IDE
超声波传感器与树莓派Pico W接口使用Arduino IDE
本项目将介绍如何使用Arduino IDE将超声波传感器与Raspberry Pi Pico W连接起来。通过这个项目,你将了解如何使用超声波传感器测量距离,并基于此开发各种应用程序,如距离监控、对象检测和避障系统。
组件要求
- 超声波传感器模块
- Raspberry Pi Pico W板
- 跳线和面包板
超声波传感器的工作原理
超声波传感器的工作原理是利用声波计算物体的距离,使其成为一种有效的距离测量传感器。它由两个超声波换能器组成,其中一个作为发射器,发射高频超声波信号。另一个换能器充当接收器,检测其路径上任何物体反射的回波信号。超声波传感器具有成本效益,接口简单,功耗低的特点。它们也可以用来测量水深,因为声波可以在水中传播。
测量距离的范围约为2cm ~ 400cm。工作的基本原理是:
- 触发引脚应该有至少10us的高电平信号。
- 模块通过发射器自动发送8个40khz频率信号,当脉冲发送时,回声引脚就会变高,当脉冲接收时,回声引脚就会变低。
- 如果信号返回,则回波引脚的高电平时间是从发送到返回超声波脉冲的持续时间。
- 距离计算:由控制器IC测量波传播距离所花费的时间,因此波传播的距离是用声速(340m/s)乘以波的时间长度来计算的。波传播的总距离的一半是物体到传感器的实际距离。
超声波传感器模块输出
超声波传感器的连接有四个端子:
- VCC(电源):该引脚连接电源,通常为5V。它为超声波传感器的工作提供必要的电压。
- GND(接地):接地引脚连接到电源的接地或0V基准。
- TRIG(触发器):TRIG引脚是一个输入引脚,触发超声波传感器发出10µs的超声波脉冲。你通常发送一个短的高电平脉冲到这个引脚来启动距离测量。
- ECHO(回声):ECHO引脚是一个输出引脚,它在物体反射超声波脉冲后感知它。通过测量该引脚上高电平的持续时间,可以计算到对象的距离。
电路连接
树莓派Pico W板提供多个GPIO数字引脚,因为三角和回波是数字引脚,因此您可以使用板上的任何数字引脚。关于它的兼容性和引脚,您可以参考之前创建的树莓派Pico w的博客。下面的电路图可以帮助您更好地理解连接。
超声波的Vcc或电源引脚应连接到电源电压为5v的Raspberry Pi Pico W的VBUS引脚上。
超声波的GND连接到Pico板的任何接地端子上。由于电路板上有各种接地端子,您可以使用其中任何一个。
传感器的三角引脚连接到Pico板的数字引脚GP20上。
Echo引脚连接到Pico板的GP21上。
实际连接图
代码实现
该代码使用传感器测量距离,并将测量的距离以厘米为单位显示到串行监视器上。
该程序设置了数字引脚,用于将传感器与Pico W板连接,因为我们知道超声波上有两个数字引脚用于通信。此外,我们还定义了一些必要的变量,以便在进一步的编程中存储数据。
在setup()函数中,执行了以下操作:
- 初始化串行通信并设置数字通信引脚的引脚模式。在这种情况下,三角引脚需要来自板的高信号,而Echo提供高时间,用于计算。因此,将三角引脚设置为输出以发送信号,而将回声引脚设置为输入以接收高时间。
在loop()函数中,我们知道触发引脚应该在10µs内处于HIGH状态以传输脉冲。因此,
- 触发引脚设置为LOW,以确保它处于已知状态。
- 延迟2微秒的触发引脚设置为高10微秒发送超声波脉冲。
- 触发引脚设置回LOW。
- pulseIn()函数用于测量超声波脉冲返回所需的持续时间。它测量回声引脚保持高电平的持续时间,然后以微秒为单位返回持续时间。
- 距离可以简单地通过将持续时间(以µs为单位)乘以声速(大约340米/秒)并除以2来计算,因为脉冲传播到物体和返回的距离是距离的两倍。由于持续时间以µs为单位,因此为了将速度(340 m/s)转换为µs,我们还将方程除以10^4。
- 计算出的距离以厘米为单位打印在串行监视器上。
- 代码不断重复这个过程,每0.5秒测量一次距离并显示在串行监视器上。
测试与验证
上传代码到Raspberry Pi Pico W需要在Arduino IDE中安装板。将代码上传到Pico W板,然后检查硬件连接是否正确。
现在,打开串行监视器,您将看到以厘米为单位的距离测量值。