• [笔记]Arduino平台使用US100超声波测距模块的电平模式测距实验


    参考文档 "US-100超声波测距模块在Arduino平台上的使用说明.pdf"(http://vdisk.weibo.com/s/1_3ZQ),终于实现了在Arduino平台使用US-100超声波测距模块的电平模式测距实验。

    代码如下:

    /* ----------------------------------------
    * 超声波测距模块US-100电平方式测距
    * 选择电平方式需要去掉模块背面的跳线
    * US-100的探头面向自己时,从左到右Pin脚依次为:
    * VCC / Trig(Tx) / Echo(Rx) / GND / GND
    * 两个GND只需要一个接地即可
    * -----------------------------------------
    */

    unsigned int echoPin = 2; // 将Arduino 的Pin2 连接至US-100 的Echo/RX
    unsigned int trigPin = 3; // 将Arduino 的Pin3 连接至US-100 的Trig/TX

    void setup(){
    Serial.begin(9600); // 测量结果将通过此串口输出至PC 上的串口监视器
    pinMode(echoPin, INPUT); // 设置echoPin 为输入模式。
    pinMode(trigPin, OUTPUT); // 设置trigPin 为输出模式。
    }

    void loop(){
    unsigned long time_echo_us = 0;
    unsigned long dist_mm = 0;

    // 通过Trig/Pin 发送脉冲,触发US-100 测距
    digitalWrite(trigPin, LOW); // 先拉低,以确保脉冲识别正确
    delayMicroseconds(2); // 等待2us
    digitalWrite(trigPin, HIGH); // 开始通过Trig/Pin 发送脉冲
    delayMicroseconds(12); // 设置脉冲宽度为12us (>10us)
    digitalWrite(trigPin, LOW); // 结束脉冲

    time_echo_us = pulseIn(echoPin, HIGH); // 计算US-100 返回的脉冲宽度
    if((time_echo_us < 60000) && (time_echo_us > 1))// 脉冲有效范围(1, 60000).
    {
    // dist_mm = (time_echo_us * 0.34mm/us) / 2 (mm)
    dist_mm = time_echo_us*5/29; // 通过脉冲宽度计算距离.

    Serial.print("Distance is: "); // 输出结果至串口监视器
    Serial.print(dist_mm, DEC); // 输出结果至串口监视器
    Serial.println("mm"); // 输出结果至串口监视器
    }

    delay(500); // 每秒测量2次
    }

    建议先读一下这篇文档再进行操作,以免出现莫名其妙的问题。

  • 相关阅读:
    ElementUI 组件不支持@keyup 的解决办法
    ElementUI 实现头部组件和左侧组件效果
    ElementUI 整体页面布局
    vue路由登录拦截
    vue中使用localStorage存储信息
    ElementUI Checkbox 多选框
    vue拦截器qs
    (未完)经典Web漏洞实战演练靶场笔记
    文件包含漏洞实战靶场笔记
    文件解析漏洞总结
  • 原文地址:https://www.cnblogs.com/journeyonmyway/p/2323090.html
Copyright © 2020-2023  润新知