简易照度计设计报告.docx
- 文档编号:2268077
- 上传时间:2022-10-28
- 格式:DOCX
- 页数:11
- 大小:342.58KB
简易照度计设计报告.docx
《简易照度计设计报告.docx》由会员分享,可在线阅读,更多相关《简易照度计设计报告.docx(11页珍藏版)》请在冰豆网上搜索。
简易照度计设计报告
简易照度计设计报告
设计人:
班级:
学号:
院系:
简易照度计设计报告
1、设计目的
1、了解光电二极管的基本特性
2、利用所学知识及查找资料设计简易的照度计
3、提高自身动手和思考能力
2、原理方案设计
1、传感器设计原理
光电二极管是一种光生伏特器件,在反偏置电压状态下,PN节接受光子形成电子空穴对,从而形成光电流。
光电二极管的光生电流为:
又因为光电二极管和普通二极管的伏安特性曲线相同,那么在一般状态下的电流方程为:
因为光电流方向是与正向偏置电流方向相反的,则光电二极管的全电流方程为:
光电二极管灵敏度为:
因为光电二极管灵敏度与二极管本身性质有关,而且光电二极管的暗电流很小,可以忽略不计,则可以得出光电二极管电流与辐照度的关系:
又辐照度与辐通量的关系为:
在平均平面可认为:
则综上所述,可把光电流和光照度的关系定为:
*为何不采用光敏电阻:
受温度影响较大;响应速度不快,在ms到s之间,延迟时间受入射光的光照度影响(光电二极管无此缺点,光电二极管灵敏度比光敏电阻高),所以本设计采用光电二极管。
2、光电变换电路
根据光电二极管光电流随光照强度变化而变化和光电二极管与环境温度相关的原理,设计出具有温度补偿功能的光电变换电路。
如图1-1
图中D0为测光光电二极管,D1为温度补偿光电二极管,由R0、R1和两个光电二极管及差分运算放大器减法电路组成光电变换电路。
在背景光照下可调整可变电阻R1使运放输出端为0,当测光光电二极管光敏面上的光照度发生变化时,D0的光电流变化,运放输入正极的电压因而变化,从而实现光电变换。
补偿光电二极管D1被遮蔽(不能接受被测光)并与测光光变二极管D0一同放入相同温度环境下,且要求D1、D0的特性相同。
这样温度变化使两个光电二极管的温度漂移相同,产生的漂移电压经过减法电路就得出被补偿过的测感电压。
通过差分式集成运放减法电路实现抑制温度的零点漂移。
图1-1
若以R0端电压为V0,另一端是V1,那么输出电压是:
其中
将上式带入输出电压方程得到:
式中1I为补偿管的光电流,0I为测光管的光电流。
将上一部分推导得出的光电流和光照度的关系代人上式,得:
其中iS是光电二极管灵敏度,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、集成运放LM324
LM324是四运放集成电路,它采用14脚双列直插塑料封装,外形如下图1所示。
它的内部包含四组形式完全相同的运算放大器,除电源共用外,四组运放相互独立。
每一组运算放大器可用图1所示的符号来表示,它有5个引出脚,其中“+”、“-”为两个信号输入端,“V+”、“V-”为正、负电源端,“Vo”为输出端。
两个信号输入端中,Vi-(-)为反相输入端,表示运放输出端Vo的信号与该输入端的位相反;Vi+(+)为同相输入端,表示运放输出端Vo的信号与该输入端的相位相同。
LM324的引脚排列见下图2。
图1图2
2、晶振
晶振即晶体振荡器。
是指从一块石英晶体上按一定方位角切下薄片(简称为晶片,石英晶体谐振器,简称为石英晶体或晶体、晶振;而在封装内部添加IC组成振荡电路的晶体元件称为晶体振荡器。
其产品一般用金属外壳封装,也有用玻璃壳、陶瓷或塑料封装的。
3、STC单片机介绍
STC单片机是STC公司生产的STC89C52RC单片机,它是一款性价比非常高的单片机,它完全兼容ATMEL公司的51单片机,除此之外它自身还有很多特点,如:
无法解密、低功耗、高速、高可靠、强抗静电、强抗干扰等。
其次STC公司的单片机内部资源比起ATMEL公司的单片机来要丰富的多,它内部有1280字节的SRAM、8-64K字节的内部程序存储器、2-8K字节的ISP引导码、除P0-P3口外还多P4口(PLCC封装)、片内自带8路8位AD(AD系列),片内自带EEPROM、片机自带看门狗、双数据指针等。
五、光强测量方法
1、测室内光线:
a、将D1和D0一起置于室内,调节R1使读数为0;
b、用黑色罩将D1屏蔽,然后读取示数,所读示数即为室内光强。
2、测普通光线:
a、将D1和D0一起置于室内,调节R1使读数为0;
b、将D1屏蔽(与被测光线隔绝),用被测光线照射D0,然后读取示数,所读示数即为被测光线光强。
六、可靠性与误差分析
1、准确度
经过推导式:
得出的照度基度和高级照度计校准,能达到普通照度计精准程度。
2、误差
在测试过程中,为减少随机误差和系统误差,在程序设计过程中应应用数字滤波中的中位值滤波法和平均值滤波法,用以消除大的随机误差和系统误差。
七、所需元器件
所需元器件如表6-1所示。
元件名称
数量/个
光敏二极管
1
STC单片机
1
集成运放LM324
1
集成数码管
1
22uF电容
2
晶振
1
电阻57M
1
电阻200Ω
6
电阻10K
4
电阻器500M
1
表6-1
八、总结
_在设计之前需要考虑的问题有许多,比如如何选择器件,与实际相结合能否实现其功能,最重要的就是程序的编写。
在查找了好多资料后,我们也成功的解决了这些问题,特别是程序的编写借助了网络上的程序。
并且在此次设计中,我也了解到光电二极管可分为PN型、PIN型、发射键型、雪崩型。
在整个测试过程中,为了减少随机误差和系统误差,在程序设计过程中应用数字滤波中的中位值滤波法和平均值滤波法,消除了大的随机误差和系统误差。
另外,通过这次设计,也使自己明白做事要有耐心更要细心。
总之这次设计让我获得了许多经验和知识,受益匪浅。
九、软件程序代码
/******************************************************/ 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};
void myDelay(unchar ul Time) {
uint i; i=0;
while(ul Time--) {
For(i=0;i<400;i++);
} }
void display(uint dat)
{
P1=table1[dat/1000]; P3=0x04;myDelay
(1);
P1=table1[dat%1000/1000]; P3=0x08;myDelay
(1);
P1=table1[dat%100/10]; P3=0x10;myDelay
(1);
P1=table1[dat%10]; P3=0x20;myDelay
(1); }
/***********************************************/ 中位值滤波.c
/***********************************************/
#define uchar unsigned char
#define uiut unsigned int
/********************************************** **
Function name:
rank
**Descriptions:
软件排序
**input parameters:
无
**output parameters:
无
**Returned value:
dat
*********************************************/
void Rank(uint dat[],uchar k)
{
uint temp; Uchar i,j;
for(j=0;j for(i=0;i { if(*(dat+i)>=*(dat+i+1)) { temp=*(dat+i); *(dat+i)=*(dat+i+1); *(dat+i+1)=temp; } } } /****************************************/ 主函数文件 /*****************************************/ #include #include”display.h” #define uchar unsigned char #define uiut unsigned int uint illumination uint ADC_result[31]; extern void Rank(uint *dat,uint k); void timer0_init() { TR0=0; TMOD=0x01; AUXR|=(3<<6); TH0=(65536-50000)/256; TL0=(65536-50000)%256; EA=1; ET0=1; TR0=1; } void AD_init() { P1M0|=(1<<7); P1M1|=(0<<7); ADC_CONTR|=(1<<7)|(7<<0); //AD端口为P1.7,速度为270个CPU时钟周期 EA=1; EADC_SPI=1; AUXR|=(1<<4); IPH|=(1<<5); IP|=(1<<5); myDelay (2); ADC_CONTR|=(1<<3); } Void main() { timer0_init(); AD_init(); while (1)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 简易 照度计 设计 报告