一、前言
最近做项目,配置了单片机中PWM波形输出,配置单片机中的一个引脚输出PWM波,示波器查看这个波形,做了实践操作,有一些感想,将一些了解过的知识和常识结合,包括pwm、stm32单片机、引脚、手机屏幕调光、OLED特性、相机快门时间....等,串在了一起。
故有感而发,做个记录。
二、pwm、单片机中的pwm
1.pwm:脉宽调制
这个脉宽调制,第一次差的时候真的是读了很多遍也不理解(软工出身 硬件实在是不太懂...咳咳)
2.stm32中的pwm:
第一次了解是学习单片机看野火老师的教程,参考:
具体参考:写的很详细
STM32 PWM基本知识及配置过程_位文杰的博客-CSDN博客_stm32pwm
STM32学习笔记一一PWM 输出_霁风AI-CSDN博客_stm32pwm
当时看完的感觉就是这个pwm能输出波形方波,能控制灯光的亮灭,但原理还是不太懂,毕竟软件工程毕业,硬件的东西不理解。
今天写个自己的理解:
一个LED需要一个有电才能亮,假设为5V,单片机能控制GPIO输出高电平或低电平,逻辑值就是0(低电平)或者1(高电平),1的时候相当于打开开关也就是亮度最亮,0的时候相当于关闭即没有亮度;
那么想让亮度为50%,时间假设为1秒钟的话,那么我就把这1秒分成2000份,让单片机控制GPIO引脚输出01010101...切换不停2000次,其中1000次是高电平,1000次是低电平;高电平占的比例是50%;
那么,这1秒内,灯的亮度不就是50%的亮度吗,50%就是这段PWM波形的占空比,1000就是频率1000Hz ,1/1000s不就是周期嘛。
三、pwm的应用
1.调节LED灯的亮度
(如上解释)
2.调节电机控制风扇的转速
(如上解释),只不过输出口控制的是电机,不是LED灯了。
3.做实验 ,第一次用示波器查看PWM波形输出:
四、手机屏幕的调光
如图,是我用pad拍摄手机在低亮度下的相机界面截图:
可以看到,相机在专业模式下设置的快门时间是1/1000秒,相机看到的屏幕画面是这样的,有的白条有的黑条经常看数码区的同学应该非常清楚,这是OLED屏幕被诟病很多的低频PWM调光,才会导致手机快门在千分之一秒看到这样的画面。
为什么人眼看不出来,因为人眼不是机器,做不到1秒中眨眼1000次啊。
OLED屏幕的背光是由一个个独立控制的LED灯珠组成,LCD是一块整体的背光板提供光源。
结合上面讲过的PWM波形的原理,就可以发现原来道理都是相同的,PWM波形控制屏幕OLED的亮灭的占空比,亮的占空比高那么屏幕就亮,亮的占空比低那么屏幕就暗。
相机在1/1000秒就可以看到有的OLED灯珠亮 ,有的灭;人眼整体看到的效果就是屏幕亮度降低。
所以说低频PWM调光的OLED屏幕闪眼睛。
(上两张截图来自: 「小白测评」你正在用瞎眼屏?DC调光与PWM调光问题 无码加长完整版!_哔哩哔哩_bilibili 自己想明白后找科普看,果然是这样啊哈哈哈 ,看在自己的思路是对的)
五、总结
惭愧惭愧,工作1年才搞懂,真是惭愧,这不应该是大学期间玩过单片机就应该了解的基本常识嘛....
从第一次知道PWM这个词,到今天感觉都整理通顺了,中间经过了1年竟然....
学习这件事,还是要理论结合实践啊。究其原因就是,学的时候只看理论,看的似懂非懂,看的都是网上搜的,没有系统的专业的正版书籍学习。
学习啊 ,学无止境,学海无涯......