STM32应用实例十四:利用光敏二极管实现光度测量
最近我们在开发臭氧发生器时,需要监测生成的臭氧的浓度,于是想到使用光度计来测量。因为不同浓度的臭氧对管的吸收作用是不相同的,于是检测光照强度的变化就可以得到相应的浓度数据。
1、硬件设计
此次光照度检测我们选用了S1336-5BQ光电点二极管,其光谱响应范围为:190~1100nm范围。而我们的光源波长则在254nm最显著,包括其它600nm以内的光波,这个好处于测量范围之内。
根据相关的资料,光电点二极管S1336-5BQ的每100lx的光照对应有5μA的电流。于是我们可以据此设计一个电路,将电流的变化改变为电压变化,具体原理图设计如下:

上图中我们采用5V电源,为了检测方便调零,我们将基准电压上抬到2.5V(图中的Vmid)。这样我们根据测量范围的要求将R5的值更换为精确的值就好了,让输出范围在2.5V到5V之间。这样我们就可以将其作为输入信号接入到ADC中。在ADC前端加一些必要的保护就可以了,具体如下图所示:

上图知识对输入信号做了保护,如果需要也可以放大缩小等处理,从而符合ADC输入的要求。
2、软件设计
前面我们描述了硬件电路,该电路在要求不高时是非常方便的。接下来我们根据上述电路来分析并设计软件。根据上面的电炉我们可以得出输出电压的变化公式为:Vout=Isc*R5+Vmid。
而Vmid正好为Vcc的一半,Vout可以通过ADC测量出来,于是公式就可以变化为:Isc=(Vout-Vcc/2)/R5。
而对于该光电二极管的特性是5μA/100lx,于是计算得到光照强度,公式可修改为:光照强度lux=((Vout-Vcc/2)/R5)*2*107。据此公式来编写软件就非常容易了。
欢迎关注:

STM32应用实例十四:利用光敏二极管实现光度测量的更多相关文章
- C语言库函数大全及应用实例十四
原文:C语言库函数大全及应用实例十四 [编程资料]C语言库函数大全及应用实例十四 函数名: strset 功 能: 将一个串 ...
- 【转】机器学习教程 十四-利用tensorflow做手写数字识别
模式识别领域应用机器学习的场景非常多,手写识别就是其中一种,最简单的数字识别是一个多类分类问题,我们借这个多类分类问题来介绍一下google最新开源的tensorflow框架,后面深度学习的内容都会基 ...
- STM32应用实例十:简析STM32 I2C通讯死锁问题
I2C接口是一种使用非常普遍的MCU与外部设备的接口方式,在STM32中也集成了I2C接口,我们也常常使用它来与外围的传感器等设备通讯. 最近在我们使用STM32F1VET6读取压力和温湿度传感器数据 ...
- STM32应用实例十五:STM32的ADC通道间干扰的问题
最近我们在开发一个项目时,用到了MCU自带的ADC,在调试过程中发现通道之间村在相互干扰的问题.以前其实也用过好几次,但要求都不高所以没有太关注,此次因为物理量的量程较大,所以看到了变化. 首先来说明 ...
- python3.4学习笔记(十四) 网络爬虫实例代码,抓取新浪爱彩双色球开奖数据实例
python3.4学习笔记(十四) 网络爬虫实例代码,抓取新浪爱彩双色球开奖数据实例 新浪爱彩双色球开奖数据URL:http://zst.aicai.com/ssq/openInfo/ 最终输出结果格 ...
- 风炫安全WEB安全学习第二十四节课 利用XSS钓鱼攻击
风炫安全WEB安全学习第二十四节课 利用XSS钓鱼攻击 XSS钓鱼攻击 HTTP Basic Authentication认证 大家在登录网站的时候,大部分时候是通过一个表单提交登录信息. 但是有时候 ...
- J2EE进阶(十四)超详细的Java后台开发面试题之Spring IOC与AOP
J2EE进阶(十四)超详细的Java后台开发面试题之Spring IOC与AOP 前言 搜狐畅游笔试题中有一道问答题涉及到回答谈谈对Spring IOC与AOP的理解.特将相关内容进行整理. ...
- 从壹开始前后端分离 [ Vue2.0+.NET Core2.1] 十四 ║ VUE 计划书 & 我的前后端开发简史
---新内容开始--- 番外 大家周一好呀,又是元气满满的一个周一呀!感谢大家在周一这个着急改Bug的黄金时期,抽出时间来看我的博文哈哈哈,时间真快,已经到第十四篇博文了,也很顺顺(跌跌)利利 (撞撞 ...
- 只需十四步:从零开始掌握 Python 机器学习(附资源)
分享一篇来自机器之心的文章.关于机器学习的起步,讲的还是很清楚的.原文链接在:只需十四步:从零开始掌握Python机器学习(附资源) Python 可以说是现在最流行的机器学习语言,而且你也能在网上找 ...
随机推荐
- luogu 1550 [Usaco2008 Oct]打井 最小生成树+小技巧
此题似乎显然最小生成树,小技巧需要注意: 在每个点出井水,需要花费,实际上可以把井水视作所有井下统一的一点,需要走路径到达此点,新图上再最小生成树 将点化作边处理 还有题目写的数据范围一般不可信,开大 ...
- IHTMLDocument2类的使用
class Program { static void Main(string[] args) { SHDocVw.ShellWindows s ...
- transition的属性变化
链接:https://www.cnblogs.com/yehui-mmd/p/5934157.html css3——transition属性和opacity属性 [transition-durat ...
- ArrayList的底层实现
package zy809; public class myArrayList { /** 存放元素 */ private Object[] data;// 创建一个数组引用. /** 元素的个数 * ...
- C#Windows 服务的安装说明
安装/卸载的步骤: 1 . .点击 开始,运行中输入cmd,获取命令提示符win7需要已管理员的身份启动,否则无法安装 2. 输入 : cd C:\Windows\Microsoft.NET\Fram ...
- python购物车作业
# -*- coding:utf8 -*- # Author:Wang Yao goods = [{"name": "电脑", "price" ...
- day 3 - 2 数据类型练习
1.有变量 name = " aleX leNB " 完成如下操作 name = " aleX leNB " # 1) 移除两端空格n1 = name.stri ...
- A - Brackets POJ - 2955 (区间DP模板题)
题目链接:https://cn.vjudge.net/contest/276243#problem/A 题目大意:给你一个字符串,让你求出字符串的最长匹配子串. 具体思路:三个for循环暴力,对于一个 ...
- include指令和<jsp:include>动作标识区别:--不明觉厉 先收藏
<jsp:include> 会通过转发的形式,分别编译被包含的文件,所以不怕重命名:而 include 是将多个被包含的原封不动合并后再一起编译一次,所以不可以重命名. ========= ...
- cxf方式实现webservice接口笔记
1.配置cxf的jar包依赖: 因maven中央仓库会自带cxf的相关依赖jar,故去maven官网搜索并获取pom配置到本地pom.xml文件即可,maven中央仓库搜索引擎地址:http://se ...