零知开源分享 - HC-SR04超声波模块使用-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 4838|回复: 1

零知开源分享 - HC-SR04超声波模块使用

[复制链接]
发表于 2019-5-27 15:00 | 显示全部楼层 |阅读模式
本帖最后由 零知实验室-roc 于 2019-5-27 15:01 编辑

超声波测量距离简单实用,本次使用HC-SR04超声波模块与零知开发板进行讲解,学会使用可把模块应用于DIY小车的避开障碍物功能上。
1、硬件准备
(1)零知开发板-标准板
好看的标准板 (2).jpg
(2)HC-SR04超声波模块
   HC-SR04模块.jpg
如上图所示,VCC 供5V电源, GND 为地线,TRIG 触发控制信号输入,ECHO 回响信号输出等四个接口端。
2、电路连接
接线比较简单,按照如下顺序连线即可:
连线.png
接线图.png
3、程序编写
根据模块的原理来进行代码编写,超声测距时的操作时序如下:
时序图.jpg
以上时序图表明你只需要提供一个 10uS 以上脉冲触发信号,该模块内部将发出 8 个 40kHz 周期电平并检测回波。一旦检测到有回波信号则输出回响信号。回响信号的脉冲宽度与所测的距离成正比。由此通过发射信号到收到的回响信号时间间隔可以计算得到距离。公式:uS/58=厘米或者 uS/148=英寸;或是:距离=高电平时间*声速(340M/S)/2;建议测量周期为 60ms 以上,以防止发射信号对回响信号的影响。
注意:1、此模块不宜带电连接,若要带电连接,则先让模块的 GND 端先连接,否则会影响模块的正常工作。
          2、测距时,被测物体的面积不少于 0.5 平方米且平面尽量要求平整,否则影响测量的结果。
编写代码如下:
[mw_shl_code=arduino,true]/**
*    文件: 超声测距.ino      by 零知实验室(www.lingzhilab.com)
*    -^^- 零知开源,让电子制作变得更简单! -^^-
*    说明:
**/


#define SR04_TRIG        9
#define SR04_ECHO        10

// the setup routine runs once when you press reset:
void setup() {
    // put your setup code here, to run once:
         
        pinMode(SR04_TRIG, OUTPUT);
        pinMode(SR04_ECHO, INPUT);
         
        Serial.begin(9600);
}

// the loop routine runs over and over again forever:
void loop() {
    // put your main code here, to run repeatedly:
         
        int distance = getDistance();
         
        Serial.print("distance = ");
        Serial.println(distance);
         
        delay(300);
}[/mw_shl_code]
4、结果
使用零知开发工具
零知界面.png
把程序上传到开发板后,可以测得如下所示距离数据,单位cm:
结果.jpg         
完整代码工程可到零知实验室官网免费获取。









发表于 2019-10-3 00:26 | 显示全部楼层
十分感谢分享
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-12-1 05:50 , Processed in 0.109387 second(s), 19 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表