超声波传感器 HC-SR04 是一款可以测量距离的传感器。它会发出40 000 Hz (40kHz)的超声波,该超声波在空气中传播,如果其路径上有物体或障碍物,它将反弹回模块。考虑到传播时间和声音的速度,您可以计算距离。
HC-SR04 的配置引脚为 VCC (1)、TRIG (2)、ECHO (3) 和 GND (4)。VCC的电源电压为+5V ,您可以将 TRIG 和 ECHO 引脚连接到 Arduino 板上的任何数字 I/O。
我们制作这个项目所需的材料:
1. Arduino UNO R3 CH340(你可以使用任何Arduino Boards)
2.超声波传感器HC-SR04
3. 公对公跳线
4.面包板
Arduino与超声波传感器HC-SR04的连接
为了产生超声波,我们需要将触发引脚设置为高状态10 µs 。这将发出一个 8 周期的音爆,该音爆将以声音的速度传播,并将在 Echo Pin 中接收。Echo Pin 将输出声波传播的时间(以微秒为单位)。
例如,如果物体距离传感器 20 cm,声速为340 m/s或 0.034 cm/µs,则声波需要传播大约 588 微秒。但是你从 Echo pin 得到的将是这个数字的两倍,因为声波需要向前传播并向后反弹。因此,为了获得以厘米为单位的距离,我们需要将从回波针接收到的传播时间值乘以 0.034,然后除以 2。
对于编程代码,首先我们需要定义连接到 Arduino 板的 Trigger Pin 和 Echo Pin。在这个项目中,EchoPin 连接到D2 ,TrigPin 连接到D3。然后为距离 (int) 和持续时间 (long) 定义变量。
首先,在循环中,您必须确保 trigPin 清晰,因此我们必须将该引脚设置为低电平状态仅2 µs 。现在要生成超声波,我们必须将trigPin设置为HIGH State 10 µs 。使用pulseIn()函数,您必须读取行程时间并将该值放入变量“duration”。这个函数有 2 个参数,第一个是 echo pin 的名称,第二个可以写 HIGH 或 LOW。在这种情况下,HIGH 意味着pulseIn()功能将等待由反弹的声波引起的引脚变为高电平并开始计时,然后在声波结束时等待引脚变为低电平,这将停止计时。最后,该函数将以微秒为单位返回脉冲的长度。为了获得距离,我们将持续时间乘以 0.034,然后除以 2,正如我们之前解释的这个等式。最后,我们将在串行监视器上打印距离值。
脚步 :
1.首先做如图所示的接线
2.打开Arduino IDE软件并记下您的代码,或下载下面的代码并打开它
3. 选择您自己的 Arduino 板(在本例中为 Arduino Uno),方法是选择Tools > Board > Arduino/Geniuno Uno
4.选择你的COM Port(一般只出现一个现有的端口),Tools > Port > COM.. (如果有多个端口,一个一个试试)
5. 按Ctrl + U或Sketch > Upload上传您的代码
6. 要显示测量数据,您可以按Ctrl + Shift + M使用串行监视器(确保波特率速度为 9600)
结果:
上传代码后,使用串行监视器显示数据。现在尝试在传感器前面放置一个物体并查看测量结果。
出于考虑,您可以使用手动卷尺测量距离并将其与串行监视器上的距离进行比较。如果要在 LCD 上显示,可以按照第二个接线图,上传下面的代码。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
全部0条评论
快来发表一下你的评论吧 !