极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 12641|回复: 2

OCROBOT智能小车(五)——超声波测距

[复制链接]
发表于 2016-4-13 11:25:35 | 显示全部楼层 |阅读模式
前几天帮人测试代码的时候,稍微学习了一下超声波模块,实现了小车测距,快接近障碍物时转弯,否则直行。
先来一张超声波模块的图:

有4个引脚,CVV、GND、TRIGGER、ECHO。前两个是接地、接电源,后面两个就随便选两个IO口接,就好了。
分享一个超声波的库,里面有个NewPing example ,打开上传即可。
在测试的过程中,接线引脚对应的OK,但是出现了0、0、0、0、0的反馈,说明TRIGGER、ECHO没有数据传输。
于是我开始查找问题所在:
第一,超声波坏了
这个可能性很大,手上一共有4块超声波,于是我换了第二个超声波,不行,还是0、0、0,于是换第三块、第四块,都是0、0、0!!!

然后我蒙了,4块都是坏的么?这概率……不会吧!
第二,杜邦线坏了
于是,果断换线,这下,恩,出来数据了,如图:

问题就在杜邦线上面!
解决了超声波问题之后,开始写程序,代码如下:
  1. const int TrigPin = 12;
  2. const int EchoPin = 11;
  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, HIGH) / 58.0; //将回波时间换算成cm
  18.   cm = (int(cm * 100.0)) / 100.0; //保留两位小数
  19.   //Serial.print(cm);
  20.   Serial.print("cm");
  21.   Serial.println(cm);  //串口打印输出CM
  22. // delay(50);

  23.     if (cm > 10)
  24.     {
  25.       digitalWrite(3, HIGH);       //松开电机A的制动
  26.       digitalWrite(4, LOW);       //松开电机B的制动
  27.       digitalWrite(5, HIGH);      //采用全功率输出
  28.       digitalWrite(6, LOW);     //设置方向为正向

  29.     }
  30.     if (cm < 10)  //小于10厘米就拐右边
  31.     {
  32.       digitalWrite(3, HIGH);       //松开电机A的制动
  33.       digitalWrite(4, LOW);       //松开电机B的制动
  34.       digitalWrite(5, LOW);      //采用全功率输出
  35.       digitalWrite(6, LOW);     //设置方向为正向
  36.        Serial.println("guai");
  37.     }
  38.    
  39. }

复制代码

电机转动的部分,按实际情况写入你的代码。
到此,一个基本的效果就实现了。但是,迷你强大神说过,这种便宜的超声波测距是会因为周围环境的变化而变化的,也就是说程序里面说的10cm,到实际上就不是10cm了……
忽略忽略……O(∩_∩)O哈哈哈~

最后,把测试超声波的库给大家附上,

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复

使用道具 举报

发表于 2016-4-13 16:26:19 | 显示全部楼层
回复 支持 反对

使用道具 举报

发表于 2016-5-11 23:13:29 | 显示全部楼层
回复 支持 反对

使用道具 举报

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

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-5-1 21:29 , Processed in 0.040629 second(s), 21 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

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