查看: 2768|回复: 0

(HC-SR04对比SDM-IO)串口LCD1602显示超声波测距

[复制链接]
  • TA的每日心情
    擦汗
    2014-7-18 09:38
  • 签到天数: 6 天

    连续签到: 1 天

    [LV.2]偶尔看看I

    发表于 2014-9-2 14:59:29 | 显示全部楼层 |阅读模式
    分享到:
    今天本来准备给之前的蓝牙遥控小车增加超声波壁障功能,可是手头有两款超声波模块,一个是大家最常见的的4pin HC-SR04,还有一款是3pinSDM-IO

    CS1.jpg

    在纠结使用哪款之前我决定先做个比较。

    以下是本次对比用到的配件:

    CS2.jpg

    HC-SR04代码:
    1. const int TrigPin = 2;
    2. const int EchoPin = 3;
    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.println("sc;");
    20.   Serial.println("sd0,0;");
    21.   Serial.println("ssHC-SR04:;");
    22.   Serial.println("sd0,8;");
    23. Serial.print("ss");
    24. Serial.print(cm);
    25. Serial.println(";");
    26.   Serial.println("ssCM;");
    27.   delay(1000);
    28. }
    复制代码
    SDM-IO代码:
    1. int pin = 8; // connected to the Trig on the module, this serves as both Trigger and Echo
    2. unsigned long time;
    3. unsigned long sizeofpulse;
    4. float cm;

    5. void setup()
    6. {
    7. Serial.begin(9600);
    8. pinMode(pin, OUTPUT);
    9. digitalWrite(pin, HIGH); // Trig pin is normally HIGH
    10. }

    11. void loop()
    12. {
    13. pinMode(pin, OUTPUT); //return digital pin to OUTPUT mode after reading
    14. digitalWrite(pin, LOW);
    15. delayMicroseconds(25);
    16. digitalWrite(pin, HIGH); //Trig pin pulsed LOW for 25usec
    17. time = micros(); //record timer
    18. pinMode(pin, INPUT); //change pin to INPUT to read the echo pulse
    19. sizeofpulse = pulseIn(pin, LOW, 18000); //should be approx 150usec, timeout at 18msec
    20. time = micros() - time - sizeofpulse; // amount of time elapsed since we sent the trigger pulse and detect the echo pulse, then subtract the size of the echo pulse
    21. cm=(time*340.29/2/10000)-3; // convert to distance in centimeters
    22. Serial.println("sc;");
    23.   Serial.println("sd0,0;");
    24.   Serial.println("ssSDM-IO:;");
    25. // Serial.println("sd1,0;");
    26. Serial.print("ss");
    27. Serial.print(cm);
    28. Serial.println(";");
    29.   Serial.println("ssCM;");
    30.   delay(1000);
    31. }
    复制代码
    硬件连接和运行效果如下:

    cs5.jpg


    cs3.jpg


    cs6.jpg


    cs4.jpg

    接下来开始对比,先把两款超声波模块固定在同一水平面。如下图:

    DSC00081.JPG

    用杜邦线试了一下,HC-SR04几乎检测不到,偶尔会有变化。SDM-IO测试稳定,上下移动均能检测到杜邦线。

    DSC00087.JPG

    以下是测试视频,用了一根筷子,呵呵:

    http://player.youku.com/player.php/sid/XNzcwMzE0NzMy/v.swf

    以上对比测试只是简单测试,可以看出,SDM-IO更灵敏,无盲区。当然这两款的价格还是有差距的。根据个人需要选择了。相关产品可以查阅以下资料。

    HC-SR04:http://pan.baidu.com/s/1sjv0tK5
    SDM-IO:http://pan.baidu.com/s/1ixG1S
    串口1602LCD:http://pan.baidu.com/s/1pJ8vAxt

    回复

    使用道具 举报

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

    本版积分规则

    关闭

    站长推荐上一条 /4 下一条

    手机版|小黑屋|与非网

    GMT+8, 2024-11-26 00:28 , Processed in 0.115006 second(s), 16 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.