IOE-SR05超声波模块的Arduino实例程序

SR05超声波模块介绍兼购买链接

模块特点:

1、串口通信;

2、基本0死区(实测1cm以上测量较精准);

3、小巧;

4、其余的普通介绍见链接,懒得介绍。


Arduino测试程序:

#define DistanceEn_Pin 2

int i = 0;
long unsigned distance = 0;
uint8_t distanceValue[4] = {0,0,0,0};
void setup() 
{
  Serial.begin(9600);
  pinMode(DistanceEn_Pin,OUTPUT);
  digitalWrite(DistanceEn_Pin,1);
}

void Distance()
{
  while( Serial.read() >= 0 );         //清空串口缓存
  digitalWrite(DistanceEn_Pin,0);      //超声波使能开
  while(Serial.available() <= 4)       //等待超声波窗口数据
  { 
  }
  distanceValue[0] = Serial.read();    //提取数据
  if( distanceValue[0] == 0xff )       //判断是否为超声波模块数据
  {
    for(i = 1;i <= 3;i ++)
    {
      distanceValue[i] = Serial.read();
    }
   }

  digitalWrite(DistanceEn_Pin,1);       //超声波使能关

  distance = distanceValue[1] * 256 + distanceValue[2];                   //数据处理,计算距离
  if((distanceValue[3] == distanceValue[1] + distanceValue[2] - 1))       //数据和校验,可去掉
  {
    Serial.print("The distance is : ");
    Serial.print(distance);
    Serial.println(" mm");
  }
}

void loop() 
{
  Distance();
}

测试步骤:

1、烧录程序;

2、接线(Arduino的D2接超声波模块的En,Arduino的EX接超声波模块的ECHO,还有电源线);

3、打开串口监视器,然后就可以看到源源不断的距离数据了。

你可能感兴趣的:(IOE-SR05超声波模块的Arduino实例程序)