跳转至

Air780EPM_LuatOS_API_PWM

新版PWM函数及其相关说明

  1. Air780EPM SDK:V2005版本及其后续版本开始支持;

  2. 旧版PWM函数仍然兼容支持;

  3. 新版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 参数。
  • pnumprecision 的组合可以实现更复杂的频率控制。

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.openpwm.close 控制 PWM 信号的输出。
  • 应用场景:适用于电机控制、LED 调光、伺服电机驱动等。

5. 注意事项

  • 资源管理:使用完 PWM 通道后,务必调用 pwm.close 释放资源。

  • 精度控制:通过调整 pnumprecision 参数可以提高信号的精度。