import uasyncio as asyncio import machine class LED(): def __init__(self, pin): self.pin = machine.Pin(pin,machine.Pin.OUT) self.rate = 0 loop = asyncio.get_event_loop() loop.create_task(self._update_async()) async def _update_async(self): while True: if self.rate <= 0: await asyncio.sleep_ms(200) else: self.toggle() await asyncio.sleep_ms(int(500 / self.rate)) def toggle(self): self.pin.value(not self.pin.value()) def flash(self, rate): """rate:\t flashing speed in Herz""" self.rate = rate def on(self,overwriteFlashing=True): self.pin.on() if overwriteFlashing: self.rate = 0 def off(self,overwriteFlashing=True): self.pin.off() if overwriteFlashing: self.rate = 0 def value(self,value=None): if value!=None: self.pin.value(value) return self.pin.value()