作者 主题: 夏普GP2D12红外线测距传感器与LCD1602液晶  (阅读 2482 次)

宜昌城老张

  • Newbie
  • *
  • 帖子: 31
    • 与非网
夏普GP2D12红外线测距传感器与LCD1602液晶
« 于: 四月 05, 2012, 06:17:58 下午 »


这个实验任务是:把GP2D12红外线测距传感器采集的数据,通过Arduino控制器的算式转换为实际距离值,再显示在集成了I2C接口的LCD1602液晶面板上。

    夏普GP2D12红外线测距传感器,是一种性价比较高的模拟量传感器。如何把这个传感器所测的模拟量数据,采集和算式处理,最终获取实际距离呢?我下面就会讲。




  上图就是GP2D12红外线测距传感器的电压值与距离值的关系曲线,从这个曲线可以看出,电压输出与距离成反比,而且是非线性关系。

   根据上图关系曲线,大约关系为10cm距离时有2.55V输出,80cm距离时有0.42V输出。可以通过该曲线拟合出电压值与距离值的数学关系式,但是这个关系式里的距离是参考距离值,实际距离值=(参考距离值-0.42)cm,另外由于Arduino的模拟量采样命令analogRead(),采样的数据范围是0至1023,对应的电压范围是0至5V,每格数据代表0.0049V,于是读取的有效数据应该由86(0.42V)至520(2.548V)。所以最终可以推导出实际距离与采样数据之间的关系式为:

    实际距离=2547.8/((float)采样数据*0.49-10.41)-0.42

    这个实际距离与采样数据之间的关系式,您会在下面程序中再次看到,我用红色字体标注出来了。

    Arduino 328控制器端口实在是有限,加几个传感器、SD卡啥的,就没有端口了,还想接个1602液晶显示,怎么办?DFRobot公司开发的集成了I2C接口的1602LCD就解决了上述问题,利用I2C通讯,只需SDA、SCL、GND和VCC四根线就可以实现数据显示,还可以挂其他I2C设备。



     用四根杜邦线,把1602LCD后面的I2C接口四个引脚与Xbee传感器扩展板V5的I2C专用端口连接起来,就可以实现Arduino控制器与LCD1602液晶的I2C硬件联系,如文章的第一张图所示。这个集成了I2C接口的1602LCD好用,不仅体现在硬件连线方便,而且您使用专门为这个LCD液晶写的库文件LiquidCrystal_I2C,编写程序也特别简单。


详细内容见博客网址:http://www.eefocus.com/zhang700309/blog/12-04/246048_dfa49.html

良青年

  • Newbie
  • *
  • 帖子: 4
Re: 夏普GP2D12红外线测距传感器与LCD1602液晶
« 回复 #1 于: 四月 08, 2012, 04:40:33 下午 »
帅气啊! 考虑有什么机会创作一下

Tags: