Board logo

标题: 夏普GP2D12红外线测距传感器数据采集 [打印本页]

作者: forsuccess    时间: 2013-3-24 23:01     标题: 夏普GP2D12红外线测距传感器数据采集

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

这个实验任务是:把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://bbs.eccn.com/) Powered by Discuz! 7.0.0