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 输出的当前脉冲宽度,以纳秒为单位。

不带参数返回以纳秒为单位的脉冲宽度。

使用单个值参数,脉冲宽度设置为该值。