Air780EPM_LuatOS_API_PWM
新版PWM函数及其相关说明
-
Air780EPM SDK:V2005版本及其后续版本开始支持;
-
旧版PWM函数仍然兼容支持;
-
新版PWM函数在使用上更加符合"直觉操作",用户体验更好;
pwm.setup(id, freq, duty, number, precision)
PWM初始化函数,id为PWM通道,freq为PWM频率,duty为PWM占空比,number为PWM输出次数,precision为PWM输出精度;
其中,id freq duty是必填项,number precision是可选填项;
Air780EPM 共有 4 路 PWM,id分别是 0,1,2,4
freq 是 PWM 信号的频率,单位:HZ
duty 是 PWM 信号的占空比,单位:百分比
number(可选):PWM 输出次数(默认值为 0;0 为持续输出, 1 为输出1次, N为指定PWM输出N次数)
precision(可选):PWM 分频精度(默认值为 100;可选值有 100/256/1000)
pwm.start(id)
按照pwm.setup()的初始化设置,开始PWM输出;
pwm.setDuty(id, duty)
在pwm.setup()和pwm.start()之后引用,可以实时更改相应ID PWM的占空比;
pwm.setFreq(id, freq)
在pwm.setup()和pwm.start()之后引用,可以实时更改相应ID PWM的频率;
pwm.stop(id)
关闭pwm,释放系统资源;
代码示例
-- 初始化PWM
pwm.setup(4, 1000, 50) -- 频率1kHz,初始占空比50%
pwm.start(4) -- 开始PWM
-- 调整亮度
pwm.setDuty(4, 75) -- 占空比调整为75%
pwm.setFreq(4, 500) -- 频率调整为500Hz
sys.wait(2000)
pwm.stop(4) -- 停止PWM
旧版PWM函数及其相关说明
1. PWM 概述
PWM(Pulse Width Modulation,脉宽调制)是一种通过控制信号的占空比来调节输出功率的技术。在嵌入式系统中,PWM 常用于控制电机转速、LED 亮度、伺服电机位置等场景。
在合宙 Air780EPM 模组中,PWM 功能通过 pwm
模块实现,支持开启和关闭 PWM 信号。
2. PWM 信号的生成
2.1 函数:pwm.open
功能:开启指定的 PWM 通道,并配置信号的频率和占空比。
语法:
pwm.open(channel, period, pulse, pnum, precision)
参数:
channel
:PWM 通道编号(Air780EPM 共有 4 路 PWM,分别是 0,1,2,4)。period
:PWM 信号的频率(单位:HZ)。pulse
:PWM 信号的占空比(单位:百分比)。pnum
(可选):PWM 输出周期(默认值为 0;0 为持续输出, 1 为单次输出, 其他为指定脉冲数输出)。precision
(可选):PWM 分频精度(默认值为 100;可选值有 100/256/1000)。
返回值:boolean,处理结果,成功返回 true,失败返回 false。
使用场景:
- 控制电机转速。
- 调节 LED 亮度。
- 驱动伺服电机。
示例代码:
-- 示例 1:开启 PWM4,频率 1kHz,占空比 50%
pwm.open(4, 1000, 50)
-- 示例 2:开启 PWM4,频率 10kHz,分频为 31/256
pwm.open(4, 10000, 31, 0, 256)
注意事项:
- 如果需要更高的精度,可以调整
precision
参数。 pnum
和precision
的组合可以实现更复杂的频率控制。
3. PWM 信号的关闭
3.1 函数:pwm.close
功能:关闭指定的 PWM 通道。
语法:
pwm.close(channel)
参数:
channel
:需要关闭的 PWM 通道编号,Air780EPM 共有 4 路 PWM,分别是 0,1,2,4。
返回值:无。
使用场景:
- 停止 PWM 信号输出。
- 释放 PWM 通道资源。
示例代码:
-- 关闭 PWM4
pwm.close(4)
4. 总结
- PWM 信号生成:通过
pwm.open
和pwm.close
控制 PWM 信号的输出。 - 应用场景:适用于电机控制、LED 调光、伺服电机驱动等。
5. 注意事项
-
资源管理:使用完 PWM 通道后,务必调用
pwm.close
释放资源。 -
精度控制:通过调整
pnum
和precision
参数可以提高信号的精度。