PWM经典应用:LED亮度控制及呼吸灯实战

PWM脉冲宽度调制(Pulse Width Modulation,也称为脉宽调制)——是利用微处理器的数字输出对模拟电路进行控制的一种非常有效的技术,广泛应用于测量、通信、功率控制与变换等诸多领域。

日常开发中比较典型的应用场景:

  • 电机控制:
    通过调节电机供电的PWM信号,控制电机转速和扭矩。

  • 灯光调光:
    用于调节LED灯的亮度,改变状态的快慢来实现不同亮度效果。

  • 音频信号生成:
    在音频电子设备中生成不同的声音频率和音量。

  • 加热控制:
    在加热元件中使用PWM来调整输出功率,从而实现精确的温度控制。

本文特别分享PWM相关基础知识,并以Air8000核心板为例,演示LuatOS开发中如何使用PWM功能实现LED亮度控制及呼吸灯效果,帮助开发者快速上手。

一、PWM相关基础知识

PWM具有高效、控制精度高及实现简便等优点,但PWM信号可能产生高频噪声,需要滤波以减小干扰。另外,某些应用需要特定的硬件支持,如支持PWM输入的微控制器或电路。

要想使用PWM,还需先了解PWM的相关参数和原理。

1.1  PWM参数

  • PWM的频率:
    是指1秒钟内信号从高电平到低电平再回到高电平的次数(一个周期),也就是说一秒钟PWM有多少个周期。 单位:Hz。

  • PWM的周期:
    T=1/f周期=1/频率 

    例如:
    如果频率为50Hz,T=1/50=0.02s,
    也就是说一个周期是20ms;

    1s=1000ms,那么一秒钟就有50次PWM周期。

  • PWM的占空比:
    是一个脉冲周期内,高电平的时间占整个周期时间的比例。单位:% (0%-100%)

    例如:
    一个周期10ms,高电平占8ms,
    那么此占空比就是8/10=80%。

1.2  PWM原理

    单片机的IO引脚输出的是数字信号,且只能输出1和0,那如果 TTL电平中,高电平为5V,低电平为0V,但是我们想要输出不同的模拟电压,比如输出3.75V应该怎么操作?

    此时要用到PWM,通过改变IO口输出方波的占空比,得到不同的模拟电压。 

    3.75/5=0.75,也就是高电平时间占整个周期的75%,即占空比为75%,可得到模拟电压3.75V。

    01.gif

    注意上图中蓝线,代表着输出的模拟电压,占空比越大,则模拟电压也越大。

    二、PWM应用示例

    Air8000相关管脚具有复用功能,结合原理图引脚指示可知板载红色LED由PIN24 GPIO21控制。本示例demo中已有配置好的pins_Air8000.json文件,测试demo时一并烧录进Air8000核心板。

    原理图.png

    2.1 PWM输出示例

    本例使用Air8000核心板上的NetLed(网络状态灯),pwm通道id=4,打开pwm4通道的pwm输出,设置不同的占空比,小灯会有不同的亮度。

    D01NEW.png

    示例效果如下:

    2.2 PWM呼吸灯

    本例使用Air8000核心板上的NetLed(网络状态灯),pwm通道id=4来查看呼吸灯效果。呼吸灯效果就是小灯由亮到暗逐渐变化,很有节奏感地一起一伏,好像人在呼吸的感觉。

    我们可以通过不断调高占空比让小灯一点点亮起,再不断调低占空比让小灯一点点熄灭从而达到此效果。

    D02NEW.png

    示例效果如下:

    评论
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

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

    抵扣说明:

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

    余额充值