解读红外距离传感器GP2D12

编者语:本文来自RoboticFan机器人创意和评测实验室的测评。原文地址:解读红外距离传感器GP2D12

GP2d12是一款SHARP公司生产的红外线测距传感器,广泛应用在各个领域,在机器人制作过程中,我们也时常用 它来进行机器人与障碍物之间的距离测量,行进速度等。

GP2d12产品规格参数
1.测量射程范围:10 to 80 cm
2.最大允许角度:>40°
3.电源电压:4.5 to 5.5V
4.平均功耗:35mA
5.峰值功耗:约200mA
6.更新频率/周期:25Hz/40ms
7.模拟输出噪声:<200mV
8.测量距离与输出模拟电压关系:2.4V~0.4V模拟信号对应10cm~80cm,输出与距离成反比非线性关系。

与Arduino连接使用简介:

GP2d12硬件电路简单,功能强大,使用方便。三个引脚分别接,数据传输线、G、VCC,将数据线与Arduino板的Analog IN引脚相连接。通过对Arduino编程实现模拟量读取,程序简短好用。(Arduino Diecimila拥有6个Analog IN,Arduino Mega更是强大的拥有16个模拟量输入端)

GP2d12使用性能个人点评

优点
1. 红外传感器连接使用简单,对于1米以内的中距离测试精度良好、性能优越。
2. 数据测量值稳定,测量结果波动较小。
3. 数据传输稳定,程序读取简单不会在数据传输过程中出现卡死的现象,错误信号较少。

缺陷
1. GP2d12测量范围有限,最大值80cm,并且从60cm开外的距离开始测量值的波动较大,与实际情况偏差增大。(60cm为室内环境的个人感 受,不同环境所产生的干扰不同所以可能达到的精度也有所不同。)
2. 当障碍物(或目标)与红外传感器之间的距离小于10cm时,测量值将与实际值出现明显偏差,当距离值从10降至0的过程中,测量值将在10~35之 间递增。(电压值与距离值关系:如图)

3. 红外传感器,使用时会受到环境光的影响,在室内使用时,传感器数据接收时可能会受到白炽灯光线的印象,产生一 些非真的距离值。

GP2d12使用注意及使用优化方式

1. 当多个GP2d12同时连接Arduino板使用时,由于供电量的增加,可能造成电压不稳定而对测量结果产生偏差。从硬件角度可以通过在VCC与 GND之间接电容的方式来稳定对GP2d12的供电,减少供电电压波动对测量结果的影响,或者在GND与数据线之间接一个电容减小输出电压的波动略去可能 出现的误差信号,提高数据稳定性。(接线见附录图)

2. 针对测量时可能产生的干扰和误差数值,可能从软件的角度进行改进和防止,通过多次的测量记录,排除一场输入量 后,取均值来的到一个较为稳定更为接近实际值的测量数据。其次可以根据实际的使用要求,可以进行有效值的范围定义,过滤超出范围的测量结果,该范围可根据 使用情况自行界定。

3. 针对红外传感器测量时,可能受环境光影响测量结果,在安放使用时竟可能避免传感器正对灯光的使用,可以将 GP2d12的发射接收端水平放置进行测量,尽可能减少环境光带来的干扰。

总体来说GP2d12在对测量精度要求不高,测量范围在1m以内的情况下,对物体距离值的定位是非 常简单有效地、操作简便、实用性强。
附:

  1. Arduino简单例程: 
  2. Int i;         //模拟量读取 
  3. int val;       //模拟量转换实际距离值存储 
  4. int analog=0;  //模拟量接线引脚号 
  5. void setup() 
  6.   pinMode(redpin,OUTPUT); 
  7. void loop() 
  8.   i=analogRead(analog); 
  9.   val=(6762/(i-9))-4;  // val=(6787.0 /(i- 3.0)) - 4.0; 


 关于2D12的原理,可以参考:http://www.roboticfan.com/article/html/170.shtml

Tags:红外传感器传感器GP2D12