PWM实现线性调光

文章详细解释了PWM调光的基本原理,通过调整方波占空比来改变光源亮度。线性变化描述了亮度平滑过渡的重要性,以避免视觉不适。通过控制红绿蓝三种LED的亮度混合,可以实现色彩的任意调节。文中还介绍了计算步径的算法和使用中断服务函数实现LED亮度的线性变化,确保在规定时间内平缓完成颜色变换。
摘要由CSDN通过智能技术生成

1.PWM调光原理

PWM全称为脉宽调制技术,是通过高精度的计数器对方波的占空比进行编码。

就是这个东西,其实很好理解,高电平的时候才会做功,低电平的时候肯定不亮啊,PWM就是调制高电平的占比。(其实一般是低电平才有效,因为会外接一个12V的电源,这么说是方便理解)

2. 线性变化描述

举个例子,假如你洗澡要用1吨水,你不可能1秒钟把这一吨水全部倒下来把。光变化也是这样,一下子变过来你眼睛受不了。所以要在规定时间内,尽量均匀的变化,保证在规定时间内完成变化,又要保证变化的过程尽量平缓,斜率尽量固定或者变化不大。

3. 光调制原理

知道彩虹不,这世界其实只有三种颜色,红绿蓝,学美术的应该知道,这三种颜色可以组合出各种不同的颜色。所以通过控制R(红色),G(绿色),B(蓝色)(red,green,blue的缩写)这三种LED的亮度就可以产生理论上你想要的任何颜色。

有个类似这种的表,网上能查到

4. 线性变化算法描述

设置过渡时间的信号从LIN总线过来,值的范围是0~255(8位数据,相当于unsigned char),单位是20ms,我把这个值设为 time。

LIN总线上还会传入需要设置的R,G,B三种颜色的值,也是8位的,我用到的PWM寄存器的大小也是八位。设置需要变化的大小为val。分析以下几种情况:

  1. time >val ; 也就是说单位时间变化1个值就可以在规定时间完成。多余的时间无所谓的

  1. time < val; 就是说单位时间需要变化多个值。我们把单位时间需要变化的值叫做步径,如果变化1个值其实就是步径为1,设步径为step

  1. 2*time>val; 步径为2

  1. 。。。

  1. step*time>val;步径为step ,这个过程可以用for循环来实现。

我们可以设置一个20ms的中断,在中断中让PWM的值增加步径,就可以完成LED灯的线性变化啦。

5. 代码

5.1 计算步径
5.2 中断函数
线性控制PWM实现方法是通过非线性控制算法将输入信号转换为PWM信号来实现对电机或其他执行机构的控制。 PWM(Pulse Width Modulation,脉宽调制)技术是一种通过改变信号的占空比来控制电平的方法。在非线性控制中,通常需要将控制信号进行非线性转换,以更好地适应系统的非线性特性。 实现线性控制PWM的方法可以分为以下几步: 1. 选择适当的非线性函数:根据系统的非线性特性和控制需求,选择适合的非线性函数,如sigmoid函数、tanh函数等。 2. 设计反馈控制系统:根据系统的特性和性能要求,设计反馈控制系统,包括传感器、比例、积分、微分(PID)控制器等。 3. 根据所选的非线性函数,将输入信号进行非线性转换:将输入信号经过非线性函数进行转换,得到非线性控制的输入信号。 4. 根据非线性控制输入信号生成PWM信号:根据非线性控制的输入信号,将其转换为PWM信号。可以通过改变PWM信号的占空比和频率来实现对电机或其他执行机构的控制。 5. 调试和优化:根据实际控制效果进行调试和优化,不断调整非线性函数和其他控制参数,以达到更好的控制效果和性能。 非线性控制PWM实现方法能够更好地适应系统的非线性特性,提高控制精度和性能。通过合适的非线性函数和反馈控制系统的设计,可以实现对电机或其他执行机构的精确控制。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值