由于模拟电压相对连续的特性,所以对于使用其控制的驱动电路输出也相对平滑。具体体现为pwm调光会存在与pwm频率相同的明暗条纹,而模拟调光可以做到调光无频闪的调光效果
模拟电平调光有几种实现方法:
- 直接输入模拟电压。如通过电位器对一个直流电平进行分压调节,产生一个可变的模拟电平,输入ADIM 管脚。
- 对 PWM 信号进行 RC 低通滤波,产生一个模拟电压, 输入ADIM 管脚。
- 使用DAC,数字电阻等
调光曲线:
曲线数据提取:
如上图所示,曲线是非线性的,手工读图误差较大,所以本文介绍了使用MATLAB来分析图像曲线,并导出256级PWM与亮度对应的查找表。
- 首先,读入截图(没有截标识),选择红色通道赋值给Y
X = imread('dimm.bmp');
Y=X(:,:,2);
- 切除边缘并滤除网格线,这里使用二值法,以128为分界线
for i=1:1:nxmax
for j=1:1:nymax
if(Y(j+ymin,i+xmin)>128)
Z(j,i)=255;
else
Z(j,i)=0;
end
end
end
- 中值滤波,找到极左点和极右点,求得中间坐标点
for j=1:1:nymax
for i=1:1:nxmax
if(Z(j,i)==0)
P(nymax-j+1)=i;
break
end
end
for i=nxmax:-1:1
if(Z(j,i)==0)
P(nymax-j+1)=round((i+P(nymax-j+1))/2);
break
end
end
end
plot(P,1:1:nymax)
- 横坐标映射为电压值
P=P/nxmax*(Vmax-Vmin)+Vmin;
- 纵坐标映射为1~256级PWM值
Vres=(3.3/(11+10.2)*11); %分压系数由电路决定
for i=1:1:256
P256(i)=round(P(round(i*nymax/256))/Vres*255);
end
至此,只需要传入需要的亮度值即可查到应输出的PWM值。