news 2026/10/20 8:33:54

PWM调光实战:从LED亮度调节到呼吸灯实现!

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
PWM调光实战:从LED亮度调节到呼吸灯实现!

脉宽调制(PWM)技术是嵌入式系统中实现模拟输出的常用手段,尤其在LED亮度控制方面表现突出。下面将从PWM的基本原理入手,通过实际案例演示如何利用PWM实现LED的平滑调光,并进一步进阶实现呼吸灯效果,帮助开发者掌握这一经典应用。

本文特别分享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。

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

二、PWM应用示例

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


2.1 PWM输出示例

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


示例效果如下:


2.2 PWM呼吸灯

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

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


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

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/19 22:30:06

【计算机网络】 SSL/TLS协议

目录 一、SSL/TLS协议概述 二、SSL/TLS协议基本特点 三、SSL/TLS协议代码实现 3.1 SSL/TLS协议python实现 3.2 SSL/TLS协议JAVA实现 3.3 SSL/TLS协议C实现 四、SSL/TLS协议发展趋势一、SSL/TLS协议概述SSL/TLS协议是用于在互联网上提供安全通信的协议。SSL代表安全套接层&#…

作者头像 李华
网站建设 2026/10/19 10:54:58

28、深入探索 Linux 内核与外设管理

深入探索 Linux 内核与外设管理 1. 内核启动软盘的创建与使用 在 Linux 系统中,当需要恢复没有活动内核的系统时,从软盘启动内核是一种可行的方法。创建启动软盘的步骤如下: 1. 将新格式化的软盘放入驱动器。 2. 进入内核源代码目录。 3. 运行以下命令: make bzdisk…

作者头像 李华
网站建设 2026/10/19 18:07:43

34、Linux 文件共享与网络传输全攻略

Linux 文件共享与网络传输全攻略 在现代的 Linux 系统使用中,文件共享和网络传输是非常重要的功能。下面将详细介绍如何使用 Samba 进行文件和打印机共享,以及如何利用 rsync 进行网络文件传输。 1. Samba 服务器的使用 1.1 启动 Samba 服务器 在添加用户和密码后,需要启…

作者头像 李华
网站建设 2026/10/20 11:45:42

7、线程同步与延迟执行技术详解

线程同步与延迟执行技术详解 1. 读写锁(Reader/Writer Locks) 读写锁本质上是具有 sx 锁语义的互斥锁。线程可以以读者(共享持有)或写者(独占持有)的身份持有读写锁。和互斥锁一样,读写锁支持优先级传播,并且线程在睡眠时不能持有读写锁(否则内核会崩溃)。读写锁…

作者头像 李华
网站建设 2026/10/20 8:37:28

13、并行端口打印机驱动与资源管理使用详解

并行端口打印机驱动与资源管理使用详解 1. 并行端口打印机驱动函数分析 在并行端口打印机驱动中,有多个关键函数负责不同的任务,下面为大家详细介绍这些函数的功能和实现。 1.1 lpt_timeout 函数 该函数是 lpt(4) 的回调函数,主要用于处理丢失或未处理的中断。其代码如…

作者头像 李华
网站建设 2026/10/19 1:24:59

11、使用 iptables 进行网络数据包处理与七层过滤

使用 iptables 进行网络数据包处理与七层过滤 1. 使用 iptables 进行数据包修改 “数据包修改(Packet Mangling)”这个术语可能会让人误以为它带有恶意性质,但实际上并非如此。数据包修改指的是在路由过程前后,有意改变 IP 数据包头部数据的过程。不过,并非 IP 数据包头…

作者头像 李华