08-machine-PWM.md 2.4 KB

machine.PWM

machine.PWM 类是 machine 模块下的一个硬件类,用于指定 PWM 设备的配置和控制,提供对 PWM 设备的操作方法。

  • PWM (Pulse Width Modulation , 脉冲宽度调制) 是一种对模拟信号电平进行数字编码的方式。
  • PWM 设备通过调节有效电平在一个周期信号的比例时间来操作设备。
  • PWM 设备两个重要的参数:频率(freq)和占空比(duty);
    • 频率:从一个上升沿(下降沿)到下一个上升沿(下降沿)的时间周期,单位为 Hz。
    • 占空比:有效电平(通常为电平)在一个周期内的时间比例;

构造函数

在 RT-Thread MicroPython 中 PWM 对象的构造函数如下:

class machine.PWM(id, channel, freq, duty)

在给定的总线上构建一个 PWM 对象,参数介绍如下:

  • id:使用的 PWM 设备编号,如 id = 1 表示使用设备名为 pwm1 的设备;
  • channel:使用的 PWM 设备通道号,每个 PWM 设备对应多个通道,范围为 [0, 4];
  • freq:初始化频率,范围 [1, 156250];
  • duty:初始化占空比,范围 [0 255];

例如:PWM(1,4,100,100) 表示当前使用 pwm1 设备通道 4,初始化频率为 1000 Hz,占空比为 100。

方法

PWM.init(channel, freq, duty)

根据输入的传输初始化 PWM 设备,参数的说明通上述构造函数参数介绍;

PWM.deinit()

用于关闭 PWM 设备,设备 deinit 之后需要重新 init 才能使用。

PWM.freq(freq)

用于获取或者设置 PWM 设备频率,频率的范围 [1, 156250]。如果无入参,返回当前设备频率值;如果有入参,用于设置当前设备频率;

PWM.duty(duty)

用于获取或者设置 PWM 设备占空比,占空比的范围 [0, 255]。如果无入参,返回当前设备占空比;如果有入参,用于设置当前设备占空比;

示例

>>> from machine import PWM     # 从 machine 导入 PWM 类
>>> pwm = PWM(2,4,1000,100)     # 创建 PWM 设备对象
>>> pwm.init(4,1000,100)        # 初始化 PWM 设备参数
>>> pwm.freq(2000)              # 设置当前设备频率
>>> pwm.freq()                  # 获取当前设备频率
2000
>>> pwm.duty(200)               # 设置当前设备占空比
>>> pwm.duty()                  # 获取当前设备占空比
200
>>> pwm.deinit()                # 关闭 PWM 设备