类 PWM – 脉冲宽度调制

脉冲宽度调制(PWM)是一种通过数字方式获取模拟结果的技术。

构建对象

class machine.PWM(pin, freq, duty)

创建与设定引脚关联的PWM对象。这样您就可以写该引脚上的模拟值。

  • pin 支持PWM的引脚 GPIO0GPIO2GPIO4GPIO5GPIO10GPIO12~19GPIO21GPIO22GPIO23GPIO25~27。详见 ESP32引脚功能表.

  • freq 频率,0 < freq <= 78125 Hz

  • duty 占空比, 0 ≤ duty ≤ 0x03FF (十进制:0 ≤ duty ≤ 1023)

Important

PWM可在所有输出引脚上启用。但其存在局限:须全部为同一频率,且仅有8个通道。

示例:

from machine import PWM, Pin

pwm = PWM (Pin(2), freq=1000,  duty=1023)    # create an PWM object

方法

PWM.init(freq, duty)

初始化PWM,freq、duty如上所述。

示例:

pwm.init(1000, 500)
PWM.freq([freq_val])

当没有参数时,函数获得并返回PWM频率。当设置参数时,函数用来设置PWM频率,无返回值。

  • freq_val PWM频率,0 < freq ≤ 0x0001312D(十进制:0 < freq ≤ 78125 Hz)

示例:

print(pwm.freq())
print(pwm.freq(2000)
PWM.duty([duty_val])

没有参数时,函数获得并返回PWM占空比。有参数时,函数用来设置PWM占空比。

  • duty_val 占空比, 0 ≤ duty ≤ 0x03FF(十进制:0 ≤ duty_val ≤ 1023)

示例:

>>> print(pwm.duty())
50
>>> print(pwm.duty(500))
None
PWM.deinit()

关闭PWM。PWM使用完了之后,需要注销 deinit()