HC-SR04原理




重点

5v供电、Tri引脚需要至少10us的高脉冲去触发、Echo返回的是超声波发射到返回的时间
距离怎么算看上面第三张图,US-015原理相似,注意测量范围最小值和最大值

接线

ESP8266采用USB供电,HC-SR04的VCC、GND分别接ESP8266的Vin、GND,Trial和Echo找两个IO就行,这里以D2、D1为例

代码

/* ESP8266* HC-SR04、US-015超声波模块测距示例*/const unsigned int EchoPin =  D1;           // D1引脚连接Echo
const unsigned int TrigPin = D2;           //  D2引脚连接Tric
const  int delayTime = 1000;              //每两次之间的测量时间间隔
unsigned long Time_Echo_us = 0;         //发出和反射总时间
unsigned long Len_mm  = 0;                //探测距离,单位mmvoid setup()
{  Serial.begin(9600);                       pinMode(EchoPin, INPUT);                    pinMode(TrigPin, OUTPUT);
}void loop()
{   digitalWrite(TrigPin, LOW);     //发出11us的触发脉冲,大于10s即可digitalWrite(TrigPin, HIGH);              delayMicroseconds(11);                    digitalWrite(TrigPin, LOW);               Time_Echo_us = pulseIn(EchoPin, HIGH);               //获取传播总时间if((Time_Echo_us < 60000) && (Time_Echo_us > 1))     //有效传播时间之内,2-400cm,大约为1-60000us{Len_mm = (Time_Echo_us*34/100)/2;      //计算距离 Len_mm = (Time_Echo_us * 0.34mm/us) / 2 (mm)Serial.print("Present Distance is: ");  //输出结果到串口监视器Serial.print(Len_mm, DEC);            Serial.println("mm");                 }else  //超出测量范围或者测量范围太小{Serial.println("Error! Too long or too short!!!");  }delay(delayTime);
}

Conclusion

当距离小于2cm,测量结果会偏大,HC-SR04在0-2cm之间会显示20-40cm不等的结果,而US-015在0-2cm之间会显示2-4cm。。
这些问题可以通过时间过滤掉或者采取多次测量取平均值的方法

参考

  • https://www.arduino.cn/thread-3194-1-1.html

用8266学习单片机-13-HC-SR04超声波模块测距示例-Ultrasonic-US-015相关推荐

  1. 快速上手Arduino -- 打印超声波模块测距信息到OLED屏幕上

    文章目录 快速上手Arduino -- 打印超声波模块测距信息到OLED屏幕上 实现效果: 模块说明: 引脚接线方法: 程序源码 附录 快速上手Arduino – 打印超声波模块测距信息到OLED屏幕 ...

  2. 树莓派超声波模块测距

    参考:树莓派超声波模块测距及C语言demo 作者:一只青木呀 发布时间: 2020-07-22 16:54:16 网址:https://blog.csdn.net/weixin_45309916/ar ...

  3. 超声波模块测距 Arduino代码

    1.本篇是记录关于使用超声波模块测距的记录,本次使用的超声波测距模块(HC-SR04)探测角度为<5°  宽电压工作在3.3~5V之间,最大测距为7m. 在Arduino中定义引脚,距离变量等. ...

  4. 蓝桥杯单片机设计与开发⑫ ---超声波模块

    一.基本原理 超声波发射模块向某一方向发射超声波,在发射时刻的同时开始计时,超声波在空气中传播,途中碰到障碍物就立即返回来,超声波接收器收到反射波就立即停止计时. 二.计算公式 距离 = 声速 × 发 ...

  5. 蓝桥杯51单片机(一)超声波模块

    使用超声波模块并通过数码管显示距离 #include<stc15f2k60s2.h> #include"intrins.h" #define somenop {_nop ...

  6. Arduino实现使用超声波模块测距

    硬件材料: Arduino UNO R3.超声波模块.面包板一块.连接线若干 超声波模块如下图,一个超声波模块价格在5元以内. arduino实物连接图如下:  源码: void setup() { ...

  7. STM32超声波模块测距串口输出/通用定时器中断并输出PWM控制舵机/系统定时器延时

    参考:stm32 超声波模块 原理 实现测距 +舵机使用 作者:点灯小哥 发布时间: 2021-03-10 19:37:16 网址:https://blog.csdn.net/weixin_46016 ...

  8. 32、树莓派的简单测试串口通信和超声波模块测距

    基本思想:随手记录一下众灵科技树莓派的测试串口通信和超声波模块,其镜像还是很nice,基本的库都给你安装了,比较大 链接:https://pan.baidu.com/s/11tMdoRh3bHmcYz ...

  9. STM32 超声波模块测距

    目录 HC-SR04模块 HC-SR04超声波测距模块工作原理 HC-SR04超声波模块的时序触发图 思路步骤 代码 实验结果 总结 HC-SR04模块 HC-SR04超声波测距模块工作原理 (1)采 ...

最新文章

  1. c#+ArcGIS Engine-获取矢量图层的空间参考
  2. 处理字符串_8_判断字符串含有汉字
  3. 个人工作总结05(第二次冲刺)
  4. ImportError: libclntsh.so.11.1: cannot open shared object file: No such file or directory解决方案
  5. 总结XMLHttpRequest对象
  6. 第六章-深入理解类(一)
  7. postman:Could not get any response解决方法
  8. 工训物流小车视觉开源代码,包含二维码、条形码、物块、标识靶识别
  9. 原生ajax调用,JavaScript进阶之原生AJAX接口请求的方式
  10. linux pe ef 详解,PE工具列表(看雪學院)
  11. mysql 共享锁(读写锁) 修改数据问题(update,insert)(LOCK IN SHARE MODE)
  12. 互联网晚报 | 12月10日 星期五 | B站月均活跃UP主达270万人;宝马电动车总销量破百万;苹果市值逼近3万亿美元...
  13. js中var self=this的用法解释
  14. FcaNet: Frequency Channel Attention Networks
  15. 组态王bitset用法_宇电AI系列仪表和组态王在产品检测装置中的应用
  16. 将光标从下划线变成竖线的方法
  17. 智能大屏和HTML5的小时代-杨勇强,乐视网CTO
  18. 如何去远程控制公司电脑 这三样必备一样也不能少
  19. 虚拟化技术发展与虚拟化体系结构
  20. android将引入aot编译器,JIT与AOT编译模式

热门文章

  1. 8代处理器安装服务器系统,第八代cpu怎么安装win7
  2. 网页字体弄成微软雅黑html,网页字体替换为微软雅黑
  3. CSDN博客中Markdown代码转为pdf
  4. 4.1_[Java 输入输出]-全网最全 Java 控制台输入输出
  5. 设置swagger文档自动同步到YApi
  6. xmanager无法连接Linux服务器,解决xmanager连接linux出错问题
  7. AS SSD软件查看信息说明
  8. 微信图文编辑器如何添加超链接?
  9. win10无法访问共享解决办法
  10. 版本管理工具-Git