PWM的调光基本原理

什么是PWM?

PWM信号是PWM,英文名Pulse Width Modulation,是脉冲宽度调制缩写,是一种模拟控制方式,根据相应载荷的变化来调制晶体管基极或MOS管栅极的偏置,来实现晶体管或MOS管导通时间的改变,从而实现开关稳压电源输出的改变。

作用:

能使电源的输出电压在工作条件变化时保持恒定,是利用微处理器的数字信号对模拟电路进行控制的一种非常有效的技术。
 

对于LED的光度调节。

简单的说,比如你有5V电源,要控制一台灯的亮度,有一个传统办法,就是串联一个可调电阻,改变电阻,灯的亮度就会改变。此种调节方式,需要认为的去旋转滑动变阻器也就是可调电阻器。

还有一个办法,就是PWM调节。不用串联电阻,而是串联一个开关。假设在1秒内,有0.5秒的时间开关是打开的,0.5秒关闭,那么灯就亮0.5秒,灭0.5秒。这样持续下去,灯就会闪烁。如果把频率调高一点,比如是1毫秒,0.5毫秒开,0.5毫秒灭,那么灯的闪烁频率就很高。我们知道,闪烁频率超过一定值,人眼就会感觉不到。所以,这时你看不到灯的闪烁,只看到灯的亮度只有原来的一半。

同理,如果1毫秒内,0.1毫秒开,0.9毫秒灭,那么,灯的亮度就只有原来的10分之一。

这样的PWM控制方式,在数字控制电路上应用很方便。因为让电脑去控制一个可调电阻是比较困难的,而且可调电阻还有模拟电路固有的不稳定问题。

如何实现PWM调光?

LED是一个二极管,它可以实现快速开关。它的开关速度可以高达微利以上。是任何发光器件所无法比拟的。因此,只要把电源改成脉冲恒流源,用改变脉冲宽度的方法,就可以改变其亮度。这种方去称为脉宽调制(PWM )调光法。
  图7表示这种脉宽调制的波形。假如脉冲的周期为tpwm,脉冲宽度为ton,那么其工作比D (或称为孔度比)就是ton/tpwm。改变恒流源脉冲的工作比就可以改变LED的亮度。


如何实现PWM调光
  具体实现PWM调光的方法就是在LED的负载中串入一个MOS开关管,这串LED的阳极用一个恒流源供电。


  然后用一个PWM信号加到MOS管的栅极,以快速地开关这串LED。从而实现调光。也有不少恒流芯片本身就带一个PWM的接口。可以直接接受PWM信号,再输出控制MOS开关管。那么这种PWM调光方去有那些优缺点呢?
  脉宽调制调光的优点
  1、不会产生任何色谱偏移。因为LED始终工作在满幅度电流和0之司。
  2、可以有极高的调光精确度。因为脉中波形完全可以控制到很高的精度,所以很容易实现万分之一的精度。
  3、可以和数字控制技术相结合来进行控制。因为任何数字都可以很容易变换成为一个PWM信号。
  4、即使在很大范围内调光,也不会发生闪烁现象。因为不会改变恒流源的工作条件(升压比或降压比),更不可能发生过热等问题。
  脉宽调光要注意的问题
  1、脉冲频率的选择因为LED是处于快速开关状态,假如工作频率很低,人眼就会感到闪烁。为了充分利用人眼的视觉残留现象,它的工作频率应当高于100Hz,最好为200HZ。
  2、消除调光弓起的啸声; 虽然200HZ以上人眼无法察觉,可是一直到20kHz却都是人耳听觉的范围。这时候就有可能会听到丝丝的声音。解决这个问题有两种方去,一是把开关频率提高到20kHz以上,跳出人耳听觉的范围。但是频率过高也会弓起一些问题,因为各种寄生参数的影响,会使脉冲波形(前后沿)产生畸变。
  这就降低了调光的精确度。另一种方去是找出发声的器件而加以处理。实际上,主要的发声器件是输出端的陶瓷电容,因为陶瓷电容通常都是由高介电常数的陶瓷所做成,这类陶瓷都具有压电特性。在200HZ的脉冲作用下就会产生机械振动而发声。解决的方提采用钽电容来代替。对,高耐压的钽电容很得到,而且价钱很贵,会增加一些成本。

### PWM调光的工作原理 PWM(脉冲宽度调制)是一种用于调节信号平均功率的技术,在调光应用中尤为常见。其核心在于保持电压恒定的同时,通过调整高电平持续时间和周期的比例即占空比来改变输出的有效值。 具体到显示屏的PWM调光机制而言,屏幕并非始终处于常亮状态而是按照设定频率快速地在开启和关闭之间切换形成视觉上的明暗变化效果[^1]。当占空比较小时,意味着LED点亮的时间较短而熄灭时间较长,则整体看起来就会更暗;反之如果增大占空比让发光器件更多时候都处在导通状态下那么最终呈现出的画面也会相应变得更明亮一些。 然而值得注意的是这种高频次开关操作可能会引起肉眼难以察觉但却可能影响部分人群健康的屏闪现象。 ### 实现方法 对于硬件层面来说,通常会借助专门设计用来生成可编程方波形电信号发生器或者采用具备内置定时/计数功能单元结构特点MCU(单片机)作为控制器去驱动外部连接着负载比如LED灯串之类的元件完成上述过程中的开闭动作转换任务[^3]。 以Air780E这款低功耗4G模块为例,可以编写程序设置特定寄存器参数从而指定想要得到的目标频率以及对应的高低电平维持时间段长度进而达成渐变式的呼吸灯光效演示目的[^2]: ```c // 假设这是配置PWM输出的相关函数定义片段 void setup_pwm(int pin, int frequency, float duty_cycle){ // 配置引脚为PWM模式... // 设置PWM频率... // 设定初始占空比... } int main(){ const int LED_PIN = 9; // 定义使用的IO口编号 // 初始化PWM并启动 setup_pwm(LED_PIN, 500, 0); while(true){ for(float dc=0 ;dc<=1 ;dc+=0.01){ // 循环增加亮度 set_duty_cycle(LED_PIN, dc); delay(20ms); } for(float dc=1 ;dc>=0 ;-dc-=0.01){ // 减少亮度回到最暗 set_duty_cycle(LED_PIN, dc); delay(20ms); } } } ``` 此代码展示了如何创建一个简单的呼吸灯效果,其中`setup_pwm()`负责初始化PWM通道的各项属性,而在主循环里则是逐步修改占空比使灯具能够缓慢平稳地由暗至亮再返回的过程。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值