标题: Arduino超声波模块测试源程序 能测出实时距离 [打印本页]

作者: Edmundshi    时间: 2018-4-11 15:46
标题: Arduino超声波模块测试源程序 能测出实时距离
应用示例
电路连接
超声波模块
Arduino UNO
VCC
+5V
Trig
A2
Echo
A3
GND
GND

示例代码
  1. //HC_SR04 Test

  2. const int TrigPin = A2;
  3. const int EchoPin = A3;
  4. float cm;

  5. void setup()
  6. {
  7.   Serial.begin(9600);
  8.   pinMode(TrigPin, OUTPUT);
  9.   pinMode(EchoPin, INPUT);
  10. }
  11. void loop()
  12. {
  13.   digitalWrite(TrigPin, LOW);
  14.   delayMicroseconds(2);
  15.   digitalWrite(TrigPin, HIGH);
  16.   delayMicroseconds(10);
  17.   digitalWrite(TrigPin, LOW);

  18.   cm = pulseIn(EchoPin, HIGH) / 58.0;   //echo time conversion into a distance
  19.   cm = (int(cm * 100.0)) / 100.0;       //keep two decimal places
  20.   Serial.print(cm);
  21.   Serial.print("cm");
  22.   Serial.println();
  23.   delay(1000);
  24. }
复制代码


程序运行结果:超声波对着墙,测出实时距离,结果如图:
注意:TRIP引脚是内部上拉10K的电阻,用单片机的IO口拉低TRIP引脚,然后给一个10us以上的脉冲信号。
===接线方法===
*uno-SR04
*2-TRIG
*3-ECHO
*5V- VCC
*GND- GND
  1. const int TrigPin = 2;
  2. const int EchoPin = 3;
  3. float distance;
  4. void setup()
  5. {
  6. Serial.begin(9600);
  7. pinMode(TrigPin, OUTPUT);
  8. pinMode(EchoPin, INPUT);
  9. Serial.println("Ultrasonic sensor:");
  10. }
  11. void loop()
  12. {
  13. //发一个10μs的高脉冲去触发TrigPin
  14. digitalWrite(TrigPin, LOW);
  15. delayMicroseconds(2);
  16. digitalWrite(TrigPin, HIGH);
  17. delayMicroseconds(10);
  18. digitalWrite(TrigPin, LOW);

  19. distance = pulseIn(EchoPin, HIGH) / 58.0; //算成厘米
  20. Serial.print(distance);
  21. Serial.print("cm");
  22. Serial.println();
  23. delay(1000);
  24. }
复制代码


==程序效果==
打开串口监视器可以观察到输出的距离值为当前超声波距前方障碍物的实际距离。

Arduino测试程序.zip

161.67 KB, 下载次数: 12, 下载积分: 黑币 -5


作者: rsurb0371    时间: 2021-1-11 13:30
超声波测距 居然能精确到小数点 后两位?
作者: zhangleixbyl    时间: 2021-1-16 07:20
比51单片机简单多了




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1