简易照度计设计报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程设计报告
学生姓名:学号:
学院:电气工程学院
班级:
题目: 简易照度计的设计
指导教师:职称:
年月日
简易照度计设计报告
一、原理方案设计
1、传感器原理
光电二极管是一种光生伏特器件,在反偏置电压状态下,PN 节接受光子形成电子空穴对,从而形成光电流。光电二极管的光生电流为:
e d e hc
q I Φ-=-Φ)1(αλ
η 又因为光电二极管和普通二极管的伏安特性曲线相同,那么在一般状态下的电流方程为:
)1(-=kT
qU D e
I I
因为光电流方向是与正向偏置电流方向相反的,则光电二极管的全电流方程为:
)1()1(-+Φ--
=-kT
qU D e d e
I e hc
q I αλ
η
光电二极管灵敏度为:
)1(d i e hc
q S αλη--=
因为光电二极管灵敏度与二极管本身性质有关,而且光电二极管的暗电流很小,可以忽略不计,则可以得出光电二极管电流与辐照度的关系:
e Si I Φ-=*
又辐照度与辐通量的关系为:
dA dE /=Φ
在平均平面可认为:
A E /=Φ
则综上所述,可把光电流和光照度的关系定为: A E S I i **-= (A 为光电二极管受光面积)
2、光电变换电路
根据光电二极管光电流随光照强度变化而变化和光电二极管与环境温度相关的原理,设计出具有温度补偿功能的光电变换电路。如图1-1
图中D0为测光光电二极管,D1为温度补偿光电二极管,由R0、R1和两个光电二极管及差分运算放大器减法电路组成光电变换电路。在背景光照下可调整可变电阻R1使运放输出端为0,当测光光电二极管光敏面上的光照度发生变化时,D0的光电流变化,运放输入正极的电压因而变化,从而实现光电变换。
补偿光电二极管D1被遮蔽(不能接受被测光)并与测光光变二极管D0一同放入相同温度环境下,且要求D1、D0的特性相同。这样温度变化使两个光电二
极管的温度漂移相同,产生的漂移电压经过减法电路就得出被补偿过的测感电压。
通过差分式集成运放减法电路实现抑制温度的零点漂移。
图1-1
若以R0端电压为V0,另一端是V1,那么输出电压是:
)
10(*0V V R
Rf U -= 其中
R R R Rf R R ====3254
1
0*1121*0120I R V I R V -=-=
将上式带入输出电压方程得到:
)
*0*1(*010I R I R R
Rf U -= 式中1I 为补偿管的光电流,0I 为测光管的光电流。将上一部分推导得出的光电流和光照度的关系代人上式,得:
)
*0*1(***010E R E R A S R
Rf U i -= 其中i S 是光电二极管灵敏度,A 是光电管的受光面积。
上式得出了光照强度和输出电压的特性关系式,程序算法的编写就是以它为
根据的。
对照标准线形图进行测试。标准光照度与光电流关系图如图1-2。
图1-2
3、单片机AD转换与显示
利用单片机实现控制电路,用AD转换器实现模拟信号与数字信号的转换。将感测电压U0信号接到单片机的每个AD输入端,用过采样的方法对接受到的数据进行数字滤波,经过滤波得到的AD转换经过运算将结果用数码管表示。
二、结构框图设计
1、原理框图
原理框图如图2-1所示。
图2-1
2、程序设计流程图
程序设计流程图如图2-2所示。
图2-2
3、整体原理电路图
整体电路原理图如图2-3所示。
图2-3
三、光强测量方法
1、测室内光线:
a 、将D1和D0一起置于室内,调节R1使读数为0;
b 、用黑色罩将D1屏蔽,然后读取示数,所读示数即为室内光强。 2、测普通光线:
a 、将D1和D0一起置于室内,调节R1使读数为0;
b 、将D1屏蔽(与被测光线隔绝),用被测光线照射D0,然后读取示数,所读示数即为室内光强。
四、可靠性与误差分析
1、准确度
经过推导式:
)*0*1(***010E R E R A Si R
Rf U -=
得出的照度基度和高级照度计校准,能达到普通照度计精准程度。 2、误差
在测试过程中,为了减少随机误差和系统误差,在程序设计过程中应用了数字滤波中的中位值滤波法和平均值滤波法,消除了大的随机误差和系统误差。
五、软件程序代码
/******************************************************/ Display.h
/*******************************************************/ #ifndef_DISPLAY_H #define_DISPLAY_H
#define uchar unsigned char #define uint unsigned int
#define"STC12C56xx.h"
extern void displar(unit dat); extern void myDelay(uint dat);
#endif
/********************************************************/ Digital_LED_display.c
/********************************************************/ #include
const uchar table1[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7b,0x07,0x7f,0x6f};