设为首页收藏本站

arduino 单片机机器人爱好者之家

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 5701|回复: 3

Arduino连接HC-SR04超声波进行超声波测距显示

[复制链接]

该用户从未签到

发表于 2013-5-28 19:45:14 | 显示全部楼层 |阅读模式
本帖最后由 疯狂的呆呆 于 2013-5-28 21:24 编辑

利用TSROBOT出品的UNO兼容板以及扩展,这里使用扩展板只是为了方便接线,因为扩展板上提供了SR04超声波的接口。
其中:Trig接模拟输入 A2
      Echo接模拟输入 A3

当然,你也可以使用数字脚,修改代码开头处的端口定义即可!
SR04超声波模块市场占有率较高,从当初的几十元降到了现在的10元以下,不得不庆幸在这个充满恶性竞争的社会里,我们有多幸运,而设计这些产品的工程师头就疼了。貌似扯远了,下面附上接好的图:
超声波测距.jpg
arduino代码如下:
  1. const int TrigPin = A2;
  2. const int EchoPin = A3;
  3. float cm;
  4. void setup()
  5. {
  6. Serial.begin(9600);
  7. pinMode(TrigPin, OUTPUT);
  8. pinMode(EchoPin, INPUT);
  9. }
  10. void loop()
  11. {
  12. digitalWrite(TrigPin, LOW); //低高低电平发一个短时间脉冲去TrigPin
  13. delayMicroseconds(2);
  14. digitalWrite(TrigPin, HIGH);
  15. delayMicroseconds(10);
  16. digitalWrite(TrigPin, LOW);

  17. cm = pulseIn(EchoPin, !(LOW)) / 58.0; //将回波时间换算成cm
  18. cm = (int(cm * 100.0)) / 100.0; //保留两位小数
  19. Serial.print(cm);
  20. Serial.print("cm");
  21. Serial.println();
  22. delay(1000);
  23. }
复制代码
串口显示截图:
3.jpg

该用户从未签到

发表于 2013-7-31 15:37:46 | 显示全部楼层
18行,!(LOW)不就是等于HIGH么?
回复 支持 反对

使用道具 举报

签到天数: 469 天

[LV.9]以坛为家II

发表于 2013-9-2 08:39:30 | 显示全部楼层
scaeac 发表于 2013-7-31 15:37
18行,!(LOW)不就是等于HIGH么?

一样用的
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2016-3-27 01:02:03 | 显示全部楼层
我发现使用过程中有时会测出 大约-80cm的值,请问这错误值一般是什么原因导致的呢?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|联系我们|YFRobot ( 苏ICP备13017135  

GMT+8, 2017-6-26 01:23 , Processed in 0.379904 second(s), 29 queries .

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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