PWM 类 – 脉宽调制¶
此类提供脉宽调制输出。
用法示例:
from machine import PWM
pwm = PWM(pin) # create a PWM object on a pin
pwm.duty_u16(32768) # set duty to 50%
# reinitialise with a period of 200us, duty of 5us
pwm.init(freq=5000, duty_ns=5000)
pwm.duty_ns(3000) # set pulse width to 3us
pwm.deinit()
构造函数¶
-
class
machine.
PWM
(dest, \*, freq, duty_u16, duty_ns)¶ 使用以下参数构造并返回一个新的 PWM 对象:
dest是输出 PWM 的实体,通常是 machine.Pin 对象,但端口可能允许其他值,如整数。
freq应该是一个整数,用于设置 PWM 周期的频率(以 Hz 为单位)。
duty_u16将占空比设置为 ratio 。
duty_u16 / 65535
.duty_ns以纳秒为单位设置脉冲宽度。
如果对象共享相同的底层 PWM 发生器(这是硬件特定的),则设置freq可能会影响其他 PWM 对象。一次只能指定duty_u16和duty_ns之一。
方法¶
-
PWM.
init
(\*, freq, duty_u16, duty_ns)¶ 修改 PWM 对象的设置。有关参数的详细信息,请参阅上面的构造函数。
-
PWM.
deinit
()¶ 禁用 PWM 输出。
-
PWM.
freq
([value])¶ 获取或设置 PWM 输出的当前频率。
不带参数返回以 Hz 为单位的频率。
使用单个值参数将频率设置为该值(以 Hz 为单位)。
ValueError
如果频率超出有效范围,该方法可能会引发 a 。
-
PWM.
duty_u16
([value])¶ 获取或设置 PWM 输出的当前占空比,作为 0 到 65535 范围内的无符号 16 位值。
没有参数返回占空比。
使用单个值参数,占空比设置为该值,以比率测量。
value / 65535
.
-
PWM.
duty_ns
([value])¶ 获取或设置 PWM 输出的当前脉冲宽度,以纳秒为单位。
不带参数返回以纳秒为单位的脉冲宽度。
使用单个值参数,脉冲宽度设置为该值。