示例三、光照度测试仪

简介: 示例三、光照度测试仪

通过以下几个示例来具体展开学习,了解常用的集成温度传感器基本原理、性能与应用,学习光敏电阻的光照特性和伏安特性:

示例三、光照度测试仪

一、基本原理:在光线的作用下,电子吸收光子的能量从键合状态过渡到自由状态,引起电导率的变化,这种现象称为光电导效应。光电导效应是半导体材料的一种体效应。光照愈强,器件自身的电阻愈小。基于这种效应的光电器件称光敏电阻。光敏电阻无极性,其工作特性与入射光光强、波长和外加电压有关。实验原理图如图。

1、光照度测试仪的系统结构

为简化系统设计,光照度测试仪系统采用光敏电阻感测环境光照度,在不同的光照强度环境下,光敏电阻的阻值会发生改变,从而将光信号转换为电信号。然后进行A-D转换得到对应的数字电压值,再由单片机根据电压与光照强度的换算关系计算出光照度,送数码管显示。其系统构成如图所示。

2、光照度测试仪的硬件设计

光照度测试仪选用AT89C51单片机,价格便宜,型号丰富。光敏电阻选用硫化镉光敏电阻,具有灵敏度高,光谱响应范围宽,体积小、重量轻、机械强度高,耐冲击、耐振动、寿命长等优点。但其光照特性是非线性的,需要进行调理。AD转换器选用AD083,其时序如图4-61(a)所示。具有体积小,功耗低等优点。显示电路选用共明极数码管,简化了软件设计。其系统电路如图所示

3、光照度测试仪的软件设计

系统启动后,首先进行初始化。然后启动ADC0831进行A-D转换,单片机读取转换数据,对数据进行判断,根据数据范围,进行指定的调理。最后送数码管显示。其流程如图所示。

4、光照度测试仪的数据处理

由于光敏电阻的光照一电阻特性是非线性的,所以光敏电阻分压以后的输出电压也是非线性的,如图所示。曲线变化没有规律,需要对其分段调理。

首先将该曲线分成若干小线段,将这些小线段近似看成线性曲线,计算出补偿规律。由于每一个小线段的变化规律都不同,所以,每个小线段的补偿方法也不同。如光照较弱时,曲线如图所示;如光照适中时,曲线如图所示;如光照较强时,曲线如图所示。

根据光敏电阻的输出电压,将曲线分为下列区间,分别进行补偿:

5、源程序

date=Read_ADC0831()*100;//保留两位小数点后有效数字
date=date/51;           //AD转换得到的电压数值与本来电压保持一致
               //当ADC转换5V电压时,对应255即date=255*100/51=500
  if(date>461 && date<=494)
  {
   date=date*(-3.1818);
   date=date+1576.35;
   date=date/10;
  }
  else if(date>438 && date<=461)
  {
   date=date*(-3.6364);
   date=date+1782.74;
   date=date/10;
  }

二、数据记录及及分析:

光照度传感器实验数据记录1

光照度传感器实验数据记录2

光照度传感器实验数据记录3

1、绘制光敏电阻输出电压与光照度的关系曲线(三段)

2、绘制ADCO831模数转换器时序图(CLK、CS、D0三个信号的时序图)

六、思考题:

1、光敏电阻输出电压与光照度为什么要分三段绘制曲线?如何保证光照度计整个量程显示的值与照度成线性关系?

光敏电阻随入射光线的强弱其对应的阻值变化不是线性的,也就不能用它作光电的线性变换。

当的光辐射时,所产生的光电信号,首先经过I/V变换,然后经过运算放大器A放大,最后在显示器上显示出相应的信号定标后就是照度值。

2、比较模数转换器ADC0832和ADC0831时序图波形的不同之处?

ADC0831和ADC0832是 8位串行 I/O A/D 转换器。ADC0831是单通道,有参考电源REF,只有串行数据输出DO。 ADC0832是双通道,有通道CH0和CH1,参考电压REF接VCC,有串行数据输入DI和串行数据输出DO。


目录
相关文章
|
7月前
|
网络协议 安全 测试技术
性能工具之emqtt-bench BenchMark 测试示例
【4月更文挑战第19天】在前面两篇文章中介绍了emqtt-bench工具和MQTT的入门压测,本文示例 emqtt_bench 对 MQTT Broker 做 Beachmark 测试,让大家对 MQTT消息中间 BenchMark 测试有个整体了解,方便平常在压测工作查阅。
536 7
性能工具之emqtt-bench BenchMark 测试示例
|
7月前
|
JSON 数据可视化 测试技术
性能测试之Artillery(示例及指标)
性能测试之Artillery(示例及指标)
100 2
|
4月前
|
关系型数据库 MySQL OLTP
性能工具之 MySQL OLTP Sysbench BenchMark 测试示例
【8月更文挑战第6天】使用 pt-query-digest 工具分析 MySQL 慢日志性能工具之 MySQL OLTP Sysbench BenchMark 测试示例
317 0
性能工具之 MySQL OLTP Sysbench BenchMark 测试示例
|
5月前
|
测试技术 PHP 开发者
原生php单元测试示例
通过上面的示例,我们可以看到,即使在缺乏专门测试框架的情况下,使用原生PHP代码进行基本的单元测试也是完全可行的。当然,对于更复杂的项目,利用像PHPUnit这样的专业工具将带来更多的便利和高级功能。不过,理解单元测试的基本概念和能够手工编写测试是每个PHP开发者的宝贵技能。
39 4
|
5月前
|
测试技术 PHP 开发者
原生php单元测试示例
通过上面的示例,我们可以看到,即使在缺乏专门测试框架的情况下,使用原生PHP代码进行基本的单元测试也是完全可行的。当然,对于更复杂的项目,利用像PHPUnit这样的专业工具将带来更多的便利和高级功能。不过,理解单元测试的基本概念和能够手工编写测试是每个PHP开发者的宝贵技能。
24 1
|
7月前
|
消息中间件 监控 固态存储
性能工具之 Kafka 快速 BenchMark 测试示例
【5月更文挑战第24天】性能工具之 Kafka 快速 BenchMark 测试示例
464 1
性能工具之 Kafka 快速 BenchMark 测试示例
|
5月前
|
测试技术 PHP 开发者
原生php单元测试示例
通过上面的示例,我们可以看到,即使在缺乏专门测试框架的情况下,使用原生PHP代码进行基本的单元测试也是完全可行的。当然,对于更复杂的项目,利用像PHPUnit这样的专业工具将带来更多的便利和高级功能。不过,理解单元测试的基本概念和能够手工编写测试是每个PHP开发者的宝贵技能。
28 0
|
7月前
|
SQL 测试技术 网络安全
Python之SQLMap:自动SQL注入和渗透测试工具示例详解
Python之SQLMap:自动SQL注入和渗透测试工具示例详解
743 0
软件测试|深入理解SQL FULL JOIN:语法、用法及示例解析
软件测试|深入理解SQL FULL JOIN:语法、用法及示例解析
|
SQL 数据挖掘 测试技术
软件测试|深入理解SQL RIGHT JOIN:语法、用法及示例解析
软件测试|深入理解SQL RIGHT JOIN:语法、用法及示例解析