## 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]。如果无入参,返回当前设备占空比;如果有入参,用于设置当前设备占空比; ### 示例 ``` python >>> 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 设备 ```