声之翼——超声波模块

                    

   上诗一首:

    早蝉【唐】白居易--

      六月初七日,江头蝉始鸣。

      石楠深叶里,薄暮两三声。 

  首先,我们先来做一个小实验,来初步了解一下超声波模块。

  实验材料:

    Arduino开发板      x1

    USB数据线        x1

    杜邦线          若干

    超声波模块        x1

    

  硬件连接图:

  

  实物连接图:

  程序代码:

int Echo = A5;  // Echo回声脚(P2.0)
int Trig =A4;  //  Trig 触发脚(P2.1)

void setup()
{
  Serial.begin(9600);     // 初始化串口
  //初始化电机驱动IO为输出方式
  //初始化超声波引脚
  pinMode(Echo, INPUT);    // 定义超声波输入脚
  pinMode(Trig, OUTPUT);   // 定义超声波输出脚
}


void Distance_test()   // 量出前方距离 
{
  digitalWrite(Trig, LOW);   // 给触发脚低电平2μs
  delayMicroseconds(2);
  digitalWrite(Trig, HIGH);  // 给触发脚高电平10μs,这里至少是10μs
  delayMicroseconds(10);
  digitalWrite(Trig, LOW);    // 持续给触发脚低电
  float Fdistance = pulseIn(Echo, HIGH);  // 读取高电平时间(单位:微秒)
  Fdistance= Fdistance/58;       //为什么除以58等于厘米,  Y米=(X秒*344)/2
  // X秒=( 2*Y米)/344 ==》X秒=0.0058*Y米 ==》厘米=微秒/58
  Serial.print("Distance:");      //输出距离(单位:厘米)
  Serial.println(Fdistance);         //显示距离
  Distance = Fdistance;
}  

void loop()
{
  Distance_test();
  delay(250);
}

  实验效果是这样的:
  

注意这里输出单位是: CM

下面来说说原理:

  

 

  

  总结:

  实验中使用到的函数调用:  

串口监视器:
Serial.begin(9600); // 初始化串口, 设置比特率

Serial.print("Distance:"); //输出距离(单位:厘米) 不带“ ”输出
Serial.println(Fdistance);         //输出显示距离   带“
”输出
LCD显示屏:
#include <LiquidCrystal.h> //申明1602液晶的函数库
//申明1602液晶的引脚所连接的Arduino数字端口,8线或4线数据模式,任选其一
//LiquidCrystal lcd(12,11,10,9,8,7,6,5,4,3,2);   //8数据口模式连线声明  
LiquidCrystal lcd(3,4,7,8,11,12,13); //4数据口模式连线声明 
lcd.home();        //把光标移回左上角,即从头开始输出 
lcd.print("    Distance: ");       //显示
lcd.setCursor(6,2);   //把光标定位在第2行,第6列
lcd.clear();      //清屏

原文地址:https://www.cnblogs.com/gaosheng-221/p/6634551.html