soft_pwm_uasyncio.py 666 B

12345678910111213141516171819202122232425262728
  1. # See original soft_pwm.py for detailed comments.
  2. import uasyncio
  3. from hwconfig import LED
  4. async def pwm_cycle(led, duty, cycles):
  5. duty_off = 20 - duty
  6. for i in range(cycles):
  7. if duty:
  8. led.value(1)
  9. await uasyncio.sleep_ms(duty)
  10. if duty_off:
  11. led.value(0)
  12. await uasyncio.sleep_ms(duty_off)
  13. async def fade_in_out(LED):
  14. while True:
  15. # Fade in
  16. for i in range(1, 21):
  17. await pwm_cycle(LED, i, 2)
  18. # Fade out
  19. for i in range(20, 0, -1):
  20. await pwm_cycle(LED, i, 2)
  21. loop = uasyncio.get_event_loop()
  22. loop.run_until_complete(fade_in_out(LED))