zoukankan      html  css  js  c++  java
  • Arduino--超声波模块

    淘宝购买地址:https://detail.tmall.com/item.htm?id=629617028735&spm=a1z09.2.0.0.6de32e8dvyfVWU&_u=j1lng7f9b2e    

    说明:

    一共有四个脚,分别为VC,Trig,Echo,GND,两边的两个为接电源的正负极,中间的两个一个发送一个接收,可以连接在任意信号端口是包括1到13口及A0~A5

    实例

    Trig引脚连接A0,echo连接A1

    米思琪

     

     单位:厘米

    Arduino

    float checkdistance() {  //定义函数--获得距离
      digitalWrite(A0,LOW);
      delayMicroseconds(2); 
      digitalWrite(A0, HIGH); 
      delayMicroseconds(10); 
      digitalWrite(A0, LOW); 
      float distance=pulseIn(A1, HIGH)/58.00;   //获取测得的距离
      //pluseIn函数用于检测引脚输出的高低电平的脉冲宽度
      /*
      关于距离中除以58的说明:
    58也很好理解,声音在干燥、摄氏 20度的空气中的传播速度大约为343米/秒,合34,300厘米/秒。或者,我们作一下单位换算,34,300除以1,000,000厘米/微秒。即为:0.0343厘米/微秒,再换一个角度,1/(0.0343 厘米/微秒)即:29.15 微秒/厘米。这就意味着,每291.5微秒表示10CM的距离。1厘米就是29.15微秒。但是发送后到接收到回波,声音走过的是2倍的距离呀。
    所以实际距离就是1厘米,对应58.3微秒。实际上整个测距过程是测的发出声波到收到回波的时间,你的程序里的第一个distance实际上是时间us。所以换成距离cm,要除以58。当然除以58.3可能更精确。所以程序中用 pulseIn(EcoPin, HIGH) / 58.00获取测得的距离
    
      */
       
      return distance;

  • 相关阅读:
    Oracle进程
    Oracle 内存管理
    oracle 数据文件管理
    Oracle表空间
    EM配置问题
    Oracle 常用命令
    Oracle体系结构
    Orcale 数据加载
    Oracle学习笔记(1)
    设计模式-23种参考模式
  • 原文地址:https://www.cnblogs.com/liming19680104/p/14296708.html
Copyright © 2011-2022 走看看