|
|
@@ -0,0 +1,57 @@
|
|
|
+## 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 设备
|
|
|
+```
|