# 脉宽调制例子
# 通过滑动电位器产生不同的ADC值来调节LED灯的占空比
# 使LED产生不同的亮度
from machine import Pin,ADC,PWM
from time import sleep_ms
buzzer = PWM(Pin(14)) #定义蜂鸣器的PWM在端口14
buzzer.duty(512) # 设置蜂鸣器的占空比
led = PWM(Pin(25)) # 定义PWM在端口25
adc = ADC(Pin(34)) # 定义ADC在端口34
# LED灯的亮度不能超过1023,否则跑出异常duty must be from 0 to 1023
adc.width(ADC.WIDTH_10BIT) # 设置ADC的位数为9(0-1023)
while True:
value = adc.read() # 读取端口34的ADC值
led.duty(value) # 设置控制LED亮度的PWM波的占空比
# 此处加1是因为最小频率是1HZ,否则抛出异常freqency must be from 1Hz to 40MHz
buzzer.freq(value + 1 )
print(value) # 打印PWM波的占空比
sleep_ms(300)