1. 环境光干扰的本质
做光电传感器这么多年,我经常被问到同一个问题:「为什么传感器白天好好的,一到傍晚就乱跳?」
其实答案很简单——环境光在捣乱。但要说清楚它怎么捣乱,我们得先回到光电传感器最基础的工作原理上。
1.1 光电传感器工作原理回顾
光电传感器的核心,说白了就是一个「光→电」的转换器。光照射到敏感元件上,产生电信号,然后我们通过这个电信号的大小来判断有没有物体、距离多远、颜色深浅等等。
常见的几种光电传感器包括:
- 光电二极管:光越强,反向电流越大。响应快,但输出信号弱。
- 光电三极管:相当于把光电二极管的信号放大了一下。我早期做红外避障小车时用的就是这种。
- 光敏电阻:阻值随光照变化。便宜,但慢得要命,响应时间能到几十毫秒。
- 环境光传感器:专门测可见光强度,常用于屏幕亮度自动调节。
不管哪种类型,它们都有一个共同点:对光敏感,但不挑食。只要是光,不管是信号光还是干扰光,它都照单全收。
核心要点:光电传感器本质上是一个「光强度检测器」,它无法区分「有用的光」和「没用的光」。
1.2 环境光如何影响传感器输出
嗯,这里要注意。环境光对传感器的影响不是简单的「加个直流分量」就完事了。
我拿一个实际案例来说吧。之前做一款工业光电开关,用来检测传送带上的纸箱。白天测试一切正常,到了下午太阳西晒,传感器就开始误触发。查了半天,发现是太阳光中的红外成分干扰了传感器的接收端。
环境光干扰的几种典型表现:
- 直流偏置偏移:环境光叠加在信号光上,导致输出基线抬高。你想想看,本来检测到物体时输出是2V,现在环境光一照,没物体时输出就1.5V了,阈值怎么设?
- 信噪比恶化:环境光本身有噪声(尤其是日光灯,100Hz的频闪),这些噪声会叠加到信号上。
- 饱和失真:强光直射时,传感器直接饱和,输出卡死在最大值。这时候别说检测了,传感器基本「瞎」了。
- 动态范围压缩:为了适应强环境光,你不得不降低增益,结果有用的信号也变小了。
我的经验:判断环境光干扰是否严重,有个土办法——用手挡住传感器镜头,看输出值变化了多少。变化越大,说明环境光影响越严重。
1.3 常见环境光类型及其光谱特性
不同的环境光,光谱分布完全不同。我习惯把它们分成三类来讨论。
太阳光
太阳光的光谱很宽,从紫外线到红外线都有。峰值在550nm左右(绿光区域),但红外成分也很强。我做过实测,正午阳光下,红外波段(850nm附近)的辐照度能达到几百W/m²。
这意味着什么?如果你用的是红外光电传感器,太阳光就是最大的干扰源。我在户外项目中吃过这个亏,后来学乖了,要么加遮光罩,要么用调制光。
室内照明
室内光源就复杂了。我列个表,大家看得清楚些:
| 光源类型 | 光谱特征 | 干扰特点 |
|---|---|---|
| 白炽灯 | 连续光谱,红外成分多 | 发热大,红外干扰严重 |
| 荧光灯 | 线状光谱,有100Hz频闪 | 低频噪声,容易耦合进电路 |
| LED灯 | 窄带光谱,蓝光+荧光粉 | 高频PWM调光,产生高频干扰 |
| 节能灯 | 类似荧光灯,但更复杂 | 谐波成分多,难滤除 |
你想想看,一个LED灯用PWM调光,频率可能是1kHz。如果传感器的采样频率刚好和它接近,那输出就会跟着一起「闪烁」。我遇到过好几次这种问题,最后靠调整采样时序才解决。
红外辐射
这里说的红外辐射,主要指热辐射。任何温度高于绝对零度的物体都在辐射红外线。人体、机器、甚至墙壁都在往外辐射。
红外辐射的峰值波长由维恩位移定律决定:λ_max = 2898 / T(T是开尔文温度)。人体温度37°C(310K),峰值波长在9.3μm左右。而常用的红外传感器(比如光电三极管)响应波段在0.8-1.1μm,其实对热辐射不敏感。
但要注意的是,太阳光中的红外成分(0.8-2.5μm)正好落在这个波段内。所以户外使用时,太阳光才是红外传感器最大的敌人。
避坑提醒:我曾经在做一个红外测距项目时,忽略了室内暖气片的热辐射干扰。结果传感器在暖气片附近读数异常。后来加了热屏蔽罩才解决。所以,别只盯着「光」,热辐射也是环境光的一种。
1.4 知识体系总览
为了让大家对本章内容有个整体印象,我画了一张图:
这张图把本章的三个核心内容串起来了。从左到右看:先理解传感器怎么工作,再搞清楚环境光怎么影响它,最后认识不同的干扰源。有了这个基础,后面章节讲的各种抑制方法,你才能理解为什么这么做、什么时候该用哪种方法。
我个人习惯,每次做新项目前都会先画这么一张图。把干扰源、传感器类型、应用场景列清楚,后面设计电路和写代码时心里就有底了。
公众号:蓝海资料掘金营,微信deep3321