from machine import Pin, PWM
from utime import sleep
# functions to convert duty sycle between percentage & int16
def dutytoPercent(duty16):
return 100 * duty16 / (2**16-1)
def dutyfromPercent(duty):
return int((2**16-1)*duty/100)
# Duty cycle in percent
duty = 50.0
# create PWM
led = PWM(Pin(9), freq=50, duty_u16=dutyfromPercent(duty))
while True:
try:
print(f"PWM Frequency: {led.freq()}Hz & Duty cycle: {dutytoPercent(led.duty_u16()):.2f}% on {led}")
sleep(1) # sleep 1sec
except KeyboardInterrupt:
break
# at end stop PWM and turn LED off
led.deinit()
Pin(9, Pin.OUT, value=0)
print("Finished.")