zoukankan      html  css  js  c++  java
  • [笔记]Arduino平台使用US100超声波测距模块的串口模式测温实验

    上次学习了使用电平和串口方式利用US-100超声波测距模块来测距,其实作为带有温度补偿的模块,当然也可以测温了。
    连线与串口测距方式完全相同。
    根据文档“US-100超声波测距模块在Arduino平台上的使用说明”的说法,“在串口模式下,通过Trig/TX 管脚输入0X50(波特率9600),US-100 便会通过Echo/RX管脚输出一个字节的温度值(TData), 实际的温度值为TData-45。例如通过TX 发送完0X50 后,在RX 端收到0X45,则此时的温度值为 [69(0X45 的10 进制值)-45] = 24度。”

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

    void setup(){
    // 将Arduino 的RX 与TX(Digital IO 0 和1)分别于US-100 的Echo/Rx 和Trig/Tx相连
    // 确保连接前已经插上跳线,使US-100 处于串口模式
    Serial.begin(9600); // 设置波特率为 9600bps.
    }

    void loop(){
    int temperature = 0;

    Serial.flush(); // 清空串口接收缓冲区t
    Serial.write(0x50); // 发送0x50,触发US-100 开始测温
    delay(500); //延时500 毫秒

    //当串口接收缓冲区中数据大于1字节
    if(Serial.available() >= 1){
    temperature = Serial.read(); //读出US-100 返回的结果

    //返回的有效值在 1 到130 之间
    if((temperature > 1) && (temperature < 130)){
    temperature -= 45; //实际温度值等于返回值减45
    Serial.print("Temperature is: "); //输出结果至串口监视器
    Serial.print(temperature, DEC);
    Serial.println(" C'");
    }
    }

    delay(500); //等待500ms
    }



  • 相关阅读:
    pair<,>
    PTA 5-8 File Transfer (25)
    PTA 5-6 Root of AVL Tree (25)
    PTA 5-5 Tree Traversals Again (25)
    HDU4288 Coder(线段树)
    CodeForces 371D Vessels(树状数组)
    POJ2762 Going from u to v or from v to u(单连通 缩点)
    LightOJ 1030 Discovering Gold(期望 概率)
    HDU5115 Dire Wolf(区间DP)
    HDU4008 Parent and son(树形DP LCA)
  • 原文地址:https://www.cnblogs.com/journeyonmyway/p/2323132.html
Copyright © 2011-2022 走看看