Skip to content

脉宽调制(PWM)

PWM(Pulse Width Modulation)简称脉宽调制,是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术,广泛应用在测量、通信、工控等方面

在 Wokwi 上选择 MicroPython with ESP32,打开开发网页。

同时查看ESP32 的官方文档关于PWM的描述:

https://docs.micropython.org/en/latest/esp32/quickref.html#pwm-pulse-width-modulation

python
# 脉宽调制例子
# 通过滑动电位器产生不同的ADC值来调节LED灯的占空比
# 使LED产生不同的亮度
from machine import Pin, ADC, PWM
from time import sleep_ms

adc = ADC(Pin(5))  # 定义ADC在端口34
led = PWM(Pin(4))  # 定义PWM在端口25

while 1:
    value = adc.read()
    print(value)  # 打印 PWM 波的占空比

    # PWM 的的占空比不能超过 1023,否则跑出异常 duty must be from 0 to 1023
    led.duty(int(value / 4))  # 设置 PWM 波的占空比
    sleep_ms(500)

https://wokwi.com/projects/406344996385327105

呼吸灯

python
from machine import Pin, PWM
from time import sleep_ms

led = Pin(4)
pwm_led = PWM(led)

while 1:
    for i in range(1023, -1, -1):
        pwm_led.duty(i)
        sleep_ms(1)
    for i in range(1024):
        pwm_led.duty(i)
        sleep_ms(1)