单片机知识:了解PWM调光

我们不是针对谁,无论是LCD,是OLED,还是灯管,任何使用低频PWM调光的显示和照明设备,都是我们的谴责对象。

DC直流调光和高频的PWM设备,都是我们的盟友。但现在满街跑的三星AMOLED、中低端笔记本和桌面显示器、以及数目稀少但也是在闪的LG p-OLED屏幕(Pixel 2 XL:黑人问号?),都是我们“反低频PWM联盟”的反对对象。
讲真,如果你平时连续玩手机、看显示器的时间在1小时以内,而且还是非敏感体质,那低频PWM调光对你的影响就不会太大了。但手机电脑这种东西的使用时间太长了,每天用几个小时,甚至10几个小时的用户都有。对于重度用户,屏幕的调光方式就是很有必要考虑的因素了。

一、难受的频闪

这次的故事起点放高一点,直接从显示器出现之前开始说。而这篇科普的核心是“频闪”二字。

“人工照明的历史,就是闪烁的历史”,这个真的一点都不夸张。从特斯拉的交流电,打败爱迪生直流电的那一瞬间,仿佛就决定了人类照明的闪烁史。因为,所有在交流电源下工作的光源都会闪烁……

1891年开始,人类开始大规模使用多相交流发电机,最后50Hz(我国正在用的频率)和60Hz交流电占领了市场。交流电的频率,决定了从古董的钨丝灯,到现在大部分家用日光灯(荧光灯)的闪烁频率都是100Hz,即每秒闪动100次(50Hz的正弦交流电,每秒有50次波峰和波谷,并经过零点100次)。

图1、50Hz的交流电
而曾经被寄予厚望的LED光源,因为厂家的驱动电路不同,有非常复杂的频闪形态。如果加上调光功能,其频闪种类就更加多,更加复杂了。当然,好的产品是可以做到不闪或者闪动极其轻微的。但LED产品价格暴跌之后,不少厂家都用简单的驱动电路,导致频闪状况恶化。
在这里插入图片描述
图 2 .不同LED产品的频闪
这下明白为什么室内拍的慢动作视频,画面会闪了吧。因为是真的在闪啊……除了被人类有意无意的看到闪烁之外,甚至连超市的扫描枪都会受灯光闪烁而影响识别率。
根据国际照明协会技术报告CIE TN006-2016定义,闪烁可以分为“闪烁、闪烁效应和幻影效应”3种,后两者分别指观察物体和观察者移动时的物理效应。为了简化说明,下面统一称为闪烁和频闪。

部分不同人类对频闪的敏感度很大的差异,甚至有“闪动敏感体质”的说法。人类最敏感的频率是8.8Hz,随后不停下降。大部分人在80Hz之后就看不出闪烁了,但即便如此,仍有部分人会因此觉得眼睛累、眼睛痛。

2015年的电气和电子工程师协会文档IEEE Std 1789-2015指出,照明闪烁会产生潜在不利影响:
光敏性癫痫或闪烁光诱导的癫痫发作(0.1%人口)
偏头痛或严重的头痛,常伴恶心、视觉紊乱
增加自闭症人的反复行为
视力衰弱包括:眼过劳、疲倦、视力模糊
在这里插入图片描述

二、显示器发展历程

历史上每次显示设备转变都出过坑。如果你的年纪够大,想必你还会记得以前那些又大又重的CRT(阴极射线管)电视和显示器。以前除了阴极射线管扫描速度导致的一些画面闪动外,印象中的它们,是不是画面特别通透?特别绚丽?
在这里插入图片描述
后来出现的LCD显示器,除了体积外,都是被CRT按在地上全方位地摩擦的货。早期的桌面LCD因背光不行,导致色域覆盖不行,可视角度更加是个大坑。更可怕的是,当时LCD还更贵,但无奈它体积小,帅啊(当时人类的态度,就像现在看真·全面屏的手机一样。帅,真的可以为所欲为)。

等了5、6年,主流LCD的背光追上来、IPS面板的大规模使用,画质表现才勉强追了上来。期间桌面LCD屏幕经历了画面比例调整和分辨率的增长。画面比例从5:4、4:3到16:10,最后定型在16:9。分辨率则从12801024到1400900,最后定型在1920*1080。

在2010年上下,LCD显示器的背光源经历了从CCFL(冷阴极荧光灯管)到LED的转变。CCFL因功耗、环保等多种因素,在随后的2、3年被多个国家和地区明令禁止生产。然后,人类第一次感受到被“LED+低频PWM调光”统治的恐怖,大量用户发现新显示器看着更加伤眼、累眼,甚至出现囤CCFL显示器过日子的梗。

如果你的年纪够大,应该还会记得国内曾经流行过用“挥手、铅笔和风扇”看频闪的测试方法。已经掉进历史垃圾桶的CCFL背光显示器,它们的PWM调光频率几乎都是175Hz,但它们有明显的余晖效应(PWM控制熄灭的时间里,它们仍然在发光),大幅减缓了频闪的效果。
在这里插入图片描述
而后来出现的LED背光显示器,沿用了低频PWM调光,频率通常在180-420Hz之间。但因为LED这种光源的响应速度很快,余晖效应接近于0,其频闪严重到已经可以产生“频闪效应”了(即能够像高速摄影一样定格移动物体的画面)。
在这里插入图片描述
部分显示器厂商抓住了商机,用“不闪屏”作为推广手段,并开始大规模使用DC调光或DC+高频PWM调光。时至今日,很大一部分显示器依旧在用不闪屏做为宣传。

而笔记本领域被夹在桌面和手机之间,向来被喷没有好面板,而且背光也是个坑。笔记本市场有大量用低频PWM调光的产品,有些是低亮度才会PWM,有些全程都在PWM。一大波笔记本厂商的很多新品,甚至高端产品,仍然在用低频的PWM调光(机佬表示强烈谴责)。

非常幸运地,手机的LCD屏幕几乎没有受到过低频PWM调光的困扰。即便部分手机LCD屏幕的亮度会有波动,但和现在OLED的低频闪动,完全不是一个层次。不过,就像当年桌面显示器大规模使用PWM调光那样,三星和LG,这些OLED厂商使用的低频PWM调光,又让人类回想起被PWM支配的恐怖……

三、PWM是什么?

回到我们的主角PWM调光。PWM,全称Pulse Width Modulation,翻译过来就是脉冲宽度调制,说到底,就是种把模拟信号调制成脉波的技术。它已经是应用非常广泛的显示器/光源的亮度控制方案,此外,还有我们之后会提到的DC直流调光(LED领域的CCR恒流调光,为方便表示,本系列科普统一用DC调光代称)。

在这里插入图片描述
进入正题前得科普一下信号的两大分类:
模拟信号,可以在0-100%之间有一系列值(接近无级变速)。
数字信号,特征就是“0和1”。这两个是很Geek的数字,毕竟人类整个IT体系,都是建立在逻辑电路“0和1”的控制之上的。

数字信号控制虽然成本低,但它最尴尬的地方是,无论是用高低电平做标识、还是光源的断电和通电,都只对应“0和1”两种状态。针对这次说到的调光问题,数字信号的控制,只能生成“开和关”两种状态,亮度要么是0,要么是100%。也就注定做不到模拟信号那样的无级亮度调节了。

那为什么我们的屏幕能无级调节亮度呢?因为聪明的人类发现肉眼反应速度有限,且有脑补作用。只要光源“明灭”切换速度够快,肉眼就察觉不出来了。PWM调光就这样粉墨登场了…… 通过闪烁来形成“载波”,然后控制“明和灭”的时间比值(占空比)就能达到控制亮度的效果:
在这里插入图片描述
在每秒超过N次的闪烁中,如果需要的亮度低,那就让灭掉的时间占比提升。例如,如果要把亮度调到10%,只要让亮的时间占比达到10%即可。虽然听起来有点鸡贼,但PWM调光的优点还挺多的,结构简单、精度高、控制“亮度变化”不会导致明显偏色之外,还省电、发热低。人类乃至地球上的大部分生物的眼睛,都是在连续的自然光下演化而来了,用闪烁这种视觉欺骗的方式调节亮度,会不会翻车呢?
虽然上面提到,大部分人无法察觉超过80Hz的闪烁,但余光部分其实可以检测到更高频率的闪烁,神经系统和大脑皮层可以检测到160Hz的刺激,视网膜更加敏感,可以对200Hz的闪烁做出反应。这些都曾被证实可以造成头痛、偏头痛和疲劳。

四、小实验自己制作PWM调光

为了让大家能够深入了解并利用PWM,现在使用shineblink core 开发板开发,几行代码即可实现PWM控制小灯功能。
在这里插入图片描述
官网 shineblink.com有详细代码,直接复制就行啦,如下:

--配置D0口为PWM功能,参数10000表示PWM的周期为10000us,参数0表示低电平有效
LIB_PwmConfig1(10000,0)
--更新D0口的PWM输出占空比为0
LIB_PwmUpdate1(0)
cnt = 0
while(GC(1) == true)
do
	LIB_DelayMs(10)
	cnt = cnt + 50
    --10毫秒更新一次PWM占空值
	LIB_PwmUpdate1(cnt)
	if cnt >= 10000 then
		cnt = 0
	end
end

观看其实验现象,可明显看出LED灯的光亮变化,实现PWM调光(一般这种叫呼吸灯)的效果。

Guess you like

Origin blog.csdn.net/x19823369540/article/details/110259061