文档详情

基于 labview光照度检测.doc

发布:2017-05-22约3.92千字共6页下载文档
文本预览下载声明
基于 labview的光照度检测 光在生活中无处不在,因此对人类的生活以及生产活动都产生了各种各样的影响。如实验室中有的实验对光的强度有严格的要求,在某些工业化生产中也需要严格控制光的强度,因此光强的检测在生活中有着非常广泛的应用。我们由此设计了一套可以检测并显示光强的模型,可以实时感知光的强度,并记录数据,实现人机交互,方便实现光的自动化控制。 一、系统方案 设计流程 通过传感器实时测量所处环境的光强度,然后将信号转换成电平信号输入单片机,单片机读取电压的变化将信号输入电脑,电脑通过labview读取信号并将信号显示的记录。 模块选择 光照测量模块 我们采用光敏电阻作为检测光强的传感器,基本特性及其主要参数其电阻会随着光强度的变化而变化,在光敏电阻两端的金属电极之间加上固定电压,其中便有电流通过,受到适当波长的光线照射时,电流就会随光强的增加而变大,从而实现光电转换。 信号转换 采用mega16单片机片内的AD读取电压值,然后单片机将电压信号通过USB线传给电脑 信号显示与记录 电脑上通过labview读取单片机传来的信号值,将其转换成光的强度大小并且实时显示出来,记录相应时间的光强度的变化。 电路设计 电路设计十分简单,给光敏电阻加上5V电压,然后直接与单片机相连,然后利用RS-232转接USB与电脑相连 二、LabView程序设计 数据的获得: 采用VISA接口程序库,程序编写见图Figure 1。因为在LabView中没有将二进制字符串转化为数值的express控件,便编写了一个将二进制字符串调整为十六进制的子Vi。这样通过USB口边可以接收我们需要的数据。 Figure 2 数据显示部分: 采用了两种显示方式:一、直接用数值显示控件;二、用仪表显示数值。 数据提取部分: 并不是所有的情况下,都是有人盯着数据的,于是我们编写了一段数据记录的程序段,将数据存储到了excel表格中,程序如图Figure 3。这一部分花费的时间最长,本来只想将这一部分放入原先的vi程序中,结果有时间刷新的冲突,最后采用全局变量的方法,将数据用另一个程序来存储。 Figure 3 报警部分:将报警部分编成了一个子Vi的形式: 整体的程序框图: 用于仪表显示的数据是经过采样八次求取平均值的方法。 整体界面的设计: 采用了最常规的设计方法,只是将颜色给修改了一下,调节的相对匀称一点。采用了双界面的形式:选项卡1用来设置参数;选项卡二用来显示工作状态,以及我们所观察的对象。 三、总结 最终的测试结果我们都基本满意,可以较准确感知当前光强度的变化,而且可生成excel文件记录数据,方便查询利用。本模型虽然精度没有那么高,只能给出光照强度的相对变化,但是总体结构十分简单,采用的元器件也都很普通,因此成本十分低廉,便于推广利用,为节约生产成本提供了一个简单的选择。 附录:单片机程序的设计: 因为项目主要用的是LabView,所以单片机用到的知识并不是很多。主要是Usart总线和AD转化两个部分。程序内容如下: /***************************************************** File name : 实时测量 Chip type : ATmega16L Program type : Application Clock frequency : 4.000000 MHz Memory model : Small External SRAM size : 0 Data Stack size : 256 *****************************************************/ #include mega16.h #include delay.h #define BAUD 9600 //波特率采用9600bps #define CRYSTAL 4000000 //系统时钟4MHz //计算和定义波特率设置参数 #define BAUD_SETTING (unsigned int)((unsigned long)CRYSTAL/(16*(unsigned long)BAUD)-1) #define BAUD_H (unsigned char)(BAUD_SETTING8) #define BAUD_L (unsigned char)(BAUD_SETTING) // USART控制和状态寄存器的标志位定义 #define RXC 7 // UCSRA位定义 #define TXC 6 #define UDRE 5 #def
显示全部
相似文档