找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2360|回复: 14
收起左侧

单片机AD采集硅光电池光电流与光强不成正比?线性关系

[复制链接]
ID:777603 发表于 2022-4-21 19:45 | 显示全部楼层 |阅读模式
硅光电池,单片机AD采集 要求显示光强值误差在5%
我用的硅光电池输出的光电流咋与光强不成正比,线性关系,人家的咋成?而且在某1个宝买的硅光电池数据显示在100LX会有>20uA的电流,我发现我的也达不到。EXCEL是我自己的板子测的数据,成线性是别人的报告。就我现在的数据有没有什么别的办法写代码让它显示的光强数值在±5%之内啊,现在就是没有思路。请教一下大家!

某一个宝

某一个宝

自己所用的电路

自己所用的电路

自己测的数据

自己测的数据

别人的报告数据

别人的报告数据
回复

使用道具 举报

ID:301191 发表于 2022-4-21 22:08 | 显示全部楼层
顶一下
回复

使用道具 举报

ID:96682 发表于 2022-4-22 05:18 来自手机 | 显示全部楼层
这货是在理想条件下测得的数据,楼主的不成正比应该是受环境和人为因素影响造就的结果吧
回复

使用道具 举报

ID:960157 发表于 2022-4-22 06:45 | 显示全部楼层
查表,线性修正。。。
回复

使用道具 举报

ID:401564 发表于 2022-4-22 11:25 | 显示全部楼层
不用修正什么
因为你电流是很小的,IV转换出来的数据是有一定误差的,而且,你用的是LM324,在小于2uA的电流下,输入失调电压对于整个运算的结果影响是很大的
就算是在最大电流(7.1u)的情况下,IV出来的电压也就0.36V,理论值应该是0.355
这其中就是有误差的,有电阻的误差,ADC的误差,ADC参考电压的误差
当你把电路中所有的参数都按实际值精确的计算,结果也就差不多是这个样子的了
想要更高精度,就要用低输入失调电压的运放,电阻要用高精度的,如果没有,那就先用万用表测量,优先选择接近要求的参数
回复

使用道具 举报

ID:777603 发表于 2022-4-22 19:10 | 显示全部楼层
Y_G_G 发表于 2022-4-22 11:25
不用修正什么
因为你电流是很小的,IV转换出来的数据是有一定误差的,而且,你用的是LM324,在小于2uA的电流下 ...

现在是硬件已经定了,只有一个50K的可调电阻,可以改变I/V转换的放大倍数。现在就是不成线性,不知道怎么去显示光强值了,误差会差很远。
回复

使用道具 举报

ID:777603 发表于 2022-4-22 19:11 | 显示全部楼层
Y_G_G 发表于 2022-4-22 11:25
不用修正什么
因为你电流是很小的,IV转换出来的数据是有一定误差的,而且,你用的是LM324,在小于2uA的电流下 ...

硬件定了,现在有没有软件的方法补救一下,让显示的光强值误差没那么大
回复

使用道具 举报

ID:401564 发表于 2022-4-22 21:11 | 显示全部楼层
黄冬梅 发表于 2022-4-22 19:11
硬件定了,现在有没有软件的方法补救一下,让显示的光强值误差没那么大

光电池的电流在小于2uA的情况下,输出的的电压和实际值就开始有1%以上的误差了
STM32的ADC参数我没有去认真看,但是,5个数字量的误差估计是少不了的,以3.3V的参考电压来计算3.3mV的误差就在这里了
再加上后面一级的放大电路,大概有5mV的误差
能看到的误差整体计算就接近10%了
你的表我看不明白是什么意思,能分析的也就这点了
回复

使用道具 举报

ID:777603 发表于 2022-4-22 21:23 | 显示全部楼层
Y_G_G 发表于 2022-4-22 21:11
光电池的电流在小于2uA的情况下,输出的的电压和实际值就开始有1%以上的误差了
STM32的ADC参数我没有去认 ...

我那表的数据(根据那个电路测的)。就是光强值,AD采集的电压(电路图的AD1节点),然后就是I/V转换后的电压(I-V节点),最后一行就是光电池的光电流。
回复

使用道具 举报

ID:777603 发表于 2022-4-22 21:26 | 显示全部楼层
Y_G_G 发表于 2022-4-22 21:11
光电池的电流在小于2uA的情况下,输出的的电压和实际值就开始有1%以上的误差了
STM32的ADC参数我没有去认 ...

请教一下,你是怎么估计大概的误差的,我咋看不明白……
回复

使用道具 举报

ID:777603 发表于 2022-4-22 21:31 | 显示全部楼层
Y_G_G 发表于 2022-4-22 21:11
光电池的电流在小于2uA的情况下,输出的的电压和实际值就开始有1%以上的误差了
STM32的ADC参数我没有去认 ...

照你这么说,我直接用I/V得到的电压直接送到32的AD采集里,就不用到第二级放大,误差是不是会小很多?
回复

使用道具 举报

ID:883242 发表于 2022-4-22 23:03 | 显示全部楼层
屏幕截图 2022-04-22 230135.png
可以了,我用Excel算了下你的数据的线性相关系数,99.88%,这个线性度已经很不错了。
回复

使用道具 举报

ID:777603 发表于 2022-4-24 12:54 | 显示全部楼层
Hephaestus 发表于 2022-4-22 23:03
可以了,我用Excel算了下你的数据的线性相关系数,99.88%,这个线性度已经很不错了。

好的,谢谢!
回复

使用道具 举报

ID:401564 发表于 2022-4-24 16:22 | 显示全部楼层
黄冬梅 发表于 2022-4-22 21:26
请教一下,你是怎么估计大概的误差的,我咋看不明白……

你的光强值是什么意思?是当前环境的光照强度?还是经过你自己的电路最终计算出来并显示的光强值?
做表格,你要有一个完整的系统的表格,这样才能看到问题所在
至少要有:
1,实际测量的光电电池的电流
2,这个电流下,理论上运放应该输出的电压
3,实际上运放输出的电压
4,当前电压理论的STM32ADC值应该是多少
5,实际STM32ADC值是多少
6,当前环境的光值和你自己设计电路的测量出来的数据
理论数据和实际数据的误差,一般一对比,就能看到问题所在了
误差估算是一个很简单的东西
比如电流在1.699uA时,按照你的电路,输出应该是84.95mV,但你测量的电压是87mV,这误差不是就是87-84.95=2.05mV,这不就是2.4%误差了吗?再加上其它误差,这误差不就大了吗?
STM32的ADC是12位的,它本身也会有一定的误差的,可能也是几mV,这小小的几mV对于你这电路,误差就是大的了
回复

使用道具 举报

ID:777603 发表于 2022-4-28 19:09 | 显示全部楼层
Y_G_G 发表于 2022-4-24 16:22
你的光强值是什么意思?是当前环境的光照强度?还是经过你自己的电路最终计算出来并显示的光强值?
做表格, ...

等我认真看了再请教你。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表