作者 主题: Arduino连接超声波传感器测距  (阅读 2944 次)

Ansifa

  • Newbie
  • *
  • 帖子: 18
    • 博客
Arduino连接超声波传感器测距
« 于: 九月 15, 2011, 01:26:05 下午 »
超声波传感器适用于对大幅的平面进行静止测距。普通的超声波传感器测距范围大概是2cm~450cm,分辨率3mm(淘宝卖家说的,笔者测试环境没那么好,个人实测比较稳定的距离10cm~2m左右,超过此距离就经常有偶然不准确的情况发生了,当然不排除笔者技术问题。)

测试对象是淘宝上面最便宜的SR-04超声波传感器,有四个脚:5v电源脚(Vcc),触发控制端(Trig),接收端(Echo),地端(GND)
 
模块工作原理:
采用IO触发测距,给至少10us的高电平信号;
模块自动发送8个40KHz的方波,自动检测是否有信号返回;
有信号返回,通过IO输出一高电平,高电平持续的时间就是超声波从发射到返回的时间.测试距离=(高电平时间*声速(340m/s))/2;
电路连接方法:
 

Arduino程序例子:
const int TrigPin = 2;
const int EchoPin = 3;
float cm;
void setup()
{
Serial.begin(9600);
pinMode(TrigPin, OUTPUT);
pinMode(EchoPin, INPUT);
}
void loop()
{
digitalWrite(TrigPin, LOW); //低高低电平发一个短时间脉冲去TrigPin
delayMicroseconds(2);
digitalWrite(TrigPin, HIGH);
delayMicroseconds(10);
digitalWrite(TrigPin, LOW);

cm = pulseIn(EchoPin, HIGH) / 58; //将回波时间换算成cm
cm = (int(cm * 100)) / 100; //保留两位小数
Serial.print(cm);
Serial.print("cm");
Serial.println();
delay(1000);
}

New +_+

  • Newbie
  • *
  • 帖子: 2
Re: Arduino连接超声波传感器测距
« 回复 #1 于: 九月 19, 2011, 07:34:26 下午 »
我也买了一个,我测的有效工作距离是2.5M

Ansifa

  • Newbie
  • *
  • 帖子: 18
    • 博客
Re: Arduino连接超声波传感器测距
« 回复 #2 于: 十月 13, 2011, 10:20:59 下午 »
差不多吧,就是不远,哈

Tags: