0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

LuatOS中PWM实现LED亮度调节与呼吸灯的实战教程

合宙LuatOS 2025-11-11 19:05 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

PWM在LED亮度调节和呼吸灯效果实现方面有着广泛应用。在LuatOS环境中,如何高效运用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。

wKgZO2kTEhqAbgEZAAA1znzbzrs044.png

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

二、PWM应用示例

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

wKgZPGkTEnmAUzrrAAXThxvj5AA747.png

wKgZPGkTEo-AAm89AAOQxc7AVK0629.png

Air8000系列应用示例持续更新中,本示例最新资料详见下方链接。

最新示例源码:https://gitee.com/openLuat/LuatOS/tree/master/module/Air8000/demo/pwm

实操教程详见:https://docs.openluat.com/air8000/luatos/app/driver/pwm/

2.1 PWM输出示例

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

wKgZO2kTEuOAGkEPAAOA-RAmdXg850.png

示例效果如下:

wKgZO2kTEzmALTe2AAg5Ns8V3eE985.png

2.2 PWM呼吸灯

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

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

wKgZO2kTE3WAEaXeAAL8awOgpCc570.png

示例效果如下:

wKgZO2kTE-uANDYeAAe3e2dWqhE606.png

今天的内容就分享到这里了~

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    6078

    文章

    45589

    浏览量

    673882
  • PWM
    PWM
    +关注

    关注

    116

    文章

    5894

    浏览量

    226676
  • 呼吸灯
    +关注

    关注

    10

    文章

    117

    浏览量

    44247
  • 嵌入式硬件
    +关注

    关注

    1

    文章

    1012

    浏览量

    9332
  • LuatOS
    +关注

    关注

    0

    文章

    173

    浏览量

    2751
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    PWM驱动LED实现呼吸效果

    C51 利用pwm 驱动LED 实现呼吸效果
    的头像 发表于 04-24 15:29 6013次阅读
    <b class='flag-5'>PWM</b>驱动<b class='flag-5'>LED</b><b class='flag-5'>实现</b><b class='flag-5'>呼吸</b><b class='flag-5'>灯</b>效果

    【瑞萨RA2L1入门学习】01. PWM 呼吸

    占空比的调节就是实现呼吸效果的关键。通过控制PWM信号的占空比,可以实现
    发表于 03-07 11:43

    PWM实现呼吸效果

    ){ analogWrite(11,a); delay(8);//当前亮度的维持的时间,单位毫秒 }delay(800);//完成一个循环后等待的时间,单位毫秒}很简单很简单的几句代码就能实现呼吸
    发表于 07-20 15:03

    51单片机基于C语言I/O口模拟PWM输出实现呼吸功能

    :PWM_Flag=1; break;为了简单明了,直接在主函数的状态机呼吸功能标志位置1,即呼吸
    发表于 09-15 13:56

    使用PWM控制LED实现呼吸的效果

    LED就会显示不同的亮度,通过不断地调节方波的占空比,从而实现LED
    发表于 01-06 17:43

    使用PWM控制LED实现呼吸的效果

    本文主要讲解使用PWM控制LED实现呼吸的效果。
    发表于 01-26 07:36

    如何用LED实现呼吸的功能

    一、概述玩过单片机的基本都做过用LED实现呼吸的功能,但是只要认真观察,会发现LED
    发表于 01-21 08:09

    PWM实现呼吸的应用

    stm32实现PWM最简单方法前言一、PWM概念二、PWM应用输出比较功能框图三、PWM呼吸
    发表于 01-21 13:18

    充电式LED调节亮度的方法

    可以调节亮度的充电式LED调节亮度一般有两种方法:一是采用简单的电阻
    的头像 发表于 02-12 15:52 1.7w次阅读
    充电式<b class='flag-5'>LED</b><b class='flag-5'>灯</b><b class='flag-5'>调节</b><b class='flag-5'>亮度</b>的方法

     巧妙利用pwm原理,PWM控制LED实现呼吸

    实验目标 利用STM32定时器产生PWM信号; 利用PWM信号实现呼吸。 什么是PWM信号呢?
    的头像 发表于 10-14 18:26 4.5w次阅读
     巧妙利用<b class='flag-5'>pwm</b>原理,<b class='flag-5'>PWM</b>控制<b class='flag-5'>LED</b><b class='flag-5'>实现</b><b class='flag-5'>呼吸</b><b class='flag-5'>灯</b>

    使用PWM控制LED实现呼吸的效果

    本文主要讲解使用PWM控制LED实现呼吸的效果。
    的头像 发表于 02-08 17:50 1.6w次阅读
    使用<b class='flag-5'>PWM</b>控制<b class='flag-5'>LED</b><b class='flag-5'>实现</b><b class='flag-5'>呼吸</b><b class='flag-5'>灯</b>的效果

    51单片机呼吸频率怎么调节

    PWM 是一种通过调整脉冲信号的占空比来控制电子设备的过程。对于呼吸来说,我们使用 PWM 来控制 LED
    的头像 发表于 12-19 10:39 6162次阅读

    PWM调制技术在LED亮度调节的使用

    随着科技的发展,LED(发光二极管)因其高亮度、低能耗、长寿命等优点,在照明领域得到了广泛的应用。LED亮度调节是其应用
    的头像 发表于 11-18 15:28 4460次阅读

    基于PWMLED调光技术与呼吸实现方法!

    分享PWM相关基础知识,并以Air8000核心板为例,演示LuatOS开发如何使用PWM功能实现LED
    的头像 发表于 12-15 13:03 685次阅读
    基于<b class='flag-5'>PWM</b>的<b class='flag-5'>LED</b>调光技术与<b class='flag-5'>呼吸</b><b class='flag-5'>灯</b><b class='flag-5'>实现</b>方法!

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

    信号生成: 加热控制: 本文特别分享PWM相关基础知识,并以Air8000核心板为例,演示LuatOS开发如何使用PWM功能实现
    的头像 发表于 01-05 20:50 446次阅读
    <b class='flag-5'>PWM</b>经典应用:<b class='flag-5'>LED</b><b class='flag-5'>亮度</b>控制及<b class='flag-5'>呼吸</b><b class='flag-5'>灯</b><b class='flag-5'>实战</b>