极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

楼主: eagler8

【Arduino】108种传感器模块系列实验(资料+代码+图形+仿真)

[复制链接]
 楼主| 发表于 2019-9-8 09:32:00 | 显示全部楼层
测距工作原理
US-025/US-026 测距时序图

只需要在 Trig 管脚输入一个 10US 以上的高电平,系统便可发出 8 个 40KHZ 的超声波脉冲,然后检测回波信号。当检测到回波信号后,通过 Echo 管脚输出。根据 Echo 管脚输出高电平的持续时间可以计算距离值。即距离值为:(高电平时间*340m/s)/2。

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-9-8 09:40:07 | 显示全部楼层
超过测量范围时返回值及测量周期
当测量距离超过 US-025/US-026 的测量范围时,仍会通过Echo 管脚输出高电平的信号,高电平的宽度约为 66ms。

测量周期:当接收到 US-025/US-026 通过 Echo 管脚输出的高电平脉冲后,便可进行下一次测量,所以测量周期取决于测量距离,当距离被测物体很近时,Echo 返回的脉冲宽度较窄,测量周期就很短;当距离被测物体比较远时,Echo 返回的脉冲宽度较宽,测量周期也就相应的变长。最坏情况下,被测物体超出超声波模块的测量范围,此时返回的脉冲宽度最长,约为 66ms,所以最坏情况下的测量周期稍大于 66ms 即可(取 70ms 足够)。

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-9-8 09:43:30 | 显示全部楼层

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-9-8 09:48:51 | 显示全部楼层
本帖最后由 eagler8 于 2019-9-8 10:08 编辑

接口说明
模块有一个接口:4 Pin 供电及通信接口,US-025 与US-026 接口相同。 4 Pin 接口为 2.54mm 间距的弯排针,如图 所示: 4 Pin 接口从左到右依次编号 1,2,3,4。它们的定义如下:
⚫ 1 号 Pin:接 VCC 电源(直流 3V-5.5V)。
⚫ 2 号 Pin:接外部电路的 Trig 端,向此管脚输入一个10uS 以上的高电平,可触发模块测距。触发信号 10US高电平 发射探头发出信号 输出回响信号 循环发出8个40KHZ脉冲 脉冲宽度为超声 波往返时间之和。
⚫ 3 号 Pin:接外部电路的 Echo 端,当测距结束时,此管脚会输出一个高电平,电平宽度为超声波往返时间之和。
⚫ 4 号 Pin:接外部电路的地。

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-9-8 09:51:06 | 显示全部楼层

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-9-8 11:12:33 | 显示全部楼层
本帖最后由 eagler8 于 2019-9-8 13:19 编辑
  1. /*
  2. 【Arduino】108种传感器模块系列实验(资料+代码+图形+仿真)
  3. 实验一百一十:US-025(US-026)超声波测距传感器模块 代替HC-SR04 3V~5.5V
  4. 1、实验项目:US-025/US-026高精度测距例程
  5. 2、实验接脚:
  6. EchoPin = D2
  7. TrigPin = D3
  8. GND = GND
  9. VCC  = 5V
  10. */

  11. unsigned int EchoPin = 2;
  12. unsigned int TrigPin = 3;

  13. unsigned long Time_Echo_us = 0;
  14. unsigned long Len_mm_X100 = 0;
  15. unsigned long Len_Integer = 0;
  16. unsigned int Len_Fraction = 0;

  17. void setup()
  18. {
  19. Serial.begin(9600);
  20. pinMode(EchoPin, INPUT);
  21. pinMode(TrigPin, OUTPUT);
  22. }

  23. void loop()
  24. {
  25. digitalWrite(TrigPin, HIGH);
  26. delayMicroseconds(50);
  27. digitalWrite(TrigPin, LOW);
  28. Time_Echo_us = pulseIn(EchoPin, HIGH);

  29. if((Time_Echo_us < 60000) && (Time_Echo_us > 1))

  30. {
  31. Len_mm_X100 = (Time_Echo_us*34)/2;
  32. Len_Integer = Len_mm_X100/100;
  33. Len_Fraction = Len_mm_X100%100;
  34. Serial.print("Present Length is: ");
  35. Serial.print(Len_Integer, DEC);
  36. Serial.print(".");
  37. if(Len_Fraction < 10)
  38. Serial.print("0");
  39. Serial.print(Len_Fraction, DEC);
  40. Serial.println("mm");
  41. }

  42. delay(1000);
  43. }
复制代码
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-9-8 11:13:38 | 显示全部楼层

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-9-8 12:35:32 | 显示全部楼层
本帖最后由 eagler8 于 2019-9-8 13:16 编辑
  1. /*
  2. 【Arduino】108种传感器模块系列实验(资料+代码+图形+仿真)
  3. 实验一百一十:US-025(US-026)超声波测距传感器模块 代替HC-SR04 3V~5.5V
  4. 1、实验项目:US-025/US-026高精度测距例程
  5. 2、实验接脚:
  6. EchoPin = D2
  7. TrigPin  = D3
  8. GND = GND
  9. VCC  = 5V
  10. */

  11. unsigned int EchoPin = 2;           // connect Pin 2(Arduino digital io) to Echo at US-025/US-026
  12. unsigned int TrigPin = 3;           // connect Pin 3(Arduino digital io) to Trig at US-025/US-026
  13. unsigned long Time_Echo_us = 0;
  14. unsigned long Len_mm  = 0;

  15. void setup()
  16. {  //Initialize
  17.     Serial.begin(9600);                        //Serial: output result to Serial monitor
  18.     pinMode(EchoPin, INPUT);                    //Set EchoPin as input, to receive measure result from US-025,US-026
  19.     pinMode(TrigPin, OUTPUT);                   //Set TrigPin as output, used to send high pusle to trig measurement (>10us)
  20. }

  21. void loop()
  22. {
  23.     digitalWrite(TrigPin, HIGH);              //begin to send a high pulse, then US-025/US-026 begin to measure the distance
  24.     delayMicroseconds(20);                    //set this high pulse width as 20us (>10us)
  25.     digitalWrite(TrigPin, LOW);               //end this high pulse
  26.    
  27.     Time_Echo_us = pulseIn(EchoPin, HIGH);               //calculate the pulse width at EchoPin,
  28.     if((Time_Echo_us < 60000) && (Time_Echo_us > 1))     //a valid pulse width should be between (1, 60000).
  29.     {
  30.       Len_mm = (Time_Echo_us*34/100)/2;      //calculate the distance by pulse width, Len_mm = (Time_Echo_us * 0.34mm/us) / 2 (mm)
  31.       Serial.print("Present Distance is: ");  //output result to Serial monitor
  32.       Serial.print(Len_mm, DEC);            //output result to Serial monitor
  33.       Serial.println("mm");                 //output result to Serial monitor
  34.     }
  35.     delay(1000);                            //take a measurement every second (1000ms)
  36. }
复制代码
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-9-8 13:23:31 | 显示全部楼层
  1. /*
  2. 【Arduino】108种传感器模块系列实验(资料+代码+图形+仿真)
  3. 实验一百一十:US-025(US-026)超声波测距传感器模块 代替HC-SR04 3V~5.5V
  4. 1、实验项目:用串口显示测出的距离值
  5. 2、实验接脚:
  6. EchoPin = D2
  7. TrigPin  = D3
  8. GND = GND
  9. VCC  = 5V
  10. */

  11. // 设定US-025/US-026连接的Arduino引脚
  12. const int TrigPin = 3;
  13. const int EchoPin = 2;
  14. float distance;
  15. void setup()
  16. {   // 初始化串口通信及连接SR04的引脚
  17.         Serial.begin(9600);
  18.         pinMode(TrigPin, OUTPUT);
  19.     // 要检测引脚上输入的脉冲宽度,需要先设置为输入状态
  20.         pinMode(EchoPin, INPUT);
  21.     Serial.println("Ultrasonic sensor:");
  22. }
  23. void loop()
  24. {
  25.     // 产生一个10us的高脉冲去触发TrigPin
  26.         digitalWrite(TrigPin, LOW);
  27.         delayMicroseconds(2);
  28.         digitalWrite(TrigPin, HIGH);
  29.         delayMicroseconds(10);
  30.         digitalWrite(TrigPin, LOW);
  31.     // 检测脉冲宽度,并计算出距离
  32.         distance = pulseIn(EchoPin, HIGH) / 58.00;
  33.         Serial.print(distance);
  34.         Serial.print("cm");
  35.         Serial.println();
  36.         delay(1000);
  37. }
复制代码
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-9-8 13:24:49 | 显示全部楼层

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-9-8 13:45:17 | 显示全部楼层

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-9-8 13:46:22 | 显示全部楼层

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-9-8 13:47:34 | 显示全部楼层

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-9-8 13:51:53 | 显示全部楼层

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-9-8 13:54:46 | 显示全部楼层

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

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

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

Archiver|联系我们|极客工坊

GMT+8, 2024-4-28 22:26 , Processed in 0.053924 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

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