work_led.py 942 B

12345678910111213141516171819202122232425262728293031323334353637
  1. from machine import Pin, PWM
  2. import time
  3. from machine import Timer
  4. class WorckLed:
  5. def __init__(self, pin_num) -> None:
  6. self.led = Pin(pin_num, Pin.OUT)
  7. # self.tim = MyTimer(0)
  8. # self.tim.init(0, 1, self.blink)
  9. def on(self):
  10. self.led.value(1)
  11. print('on')
  12. def off(self):
  13. self.led.value(0)
  14. print('off')
  15. def blink(self, tim):
  16. if self.led.value():
  17. self.tim.init(1, 1200, self.blink)
  18. self.off()
  19. else:
  20. self.tim.init(1, 5, self.blink)
  21. self.on()
  22. # 协程的方式
  23. import uasyncio
  24. async def work_led_blink(led=Pin(2, Pin.OUT), on_t=10, off_t=1200):
  25. while True:
  26. led.value(1)
  27. await uasyncio.sleep_ms(on_t)
  28. led.value(0)
  29. await uasyncio.sleep_ms(off_t)
  30. if __name__ == '__main__':
  31. # led = WorckLed(2)
  32. uasyncio.run(work_led_blink(led=Pin(2, Pin.OUT), on_t=10, off_t=1200))