import uasyncio as asyncio import machine import neopixel WHITE = (140,70,255) YELLOW = (127,0,255) BLUE = (0,255,0) class LEDs(): def __init__(self, pin): self.neop = neopixel.NeoPixel(machine.Pin(pin, machine.Pin.OUT),5) self.rate = 0 self.clear() 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 fill(self,color): self.neop.fill(color) self.neop[0] = (0,0,0) self.neop.write() def clear(self): self.fill((0,0,0)) def lower(self,color): self.neop[1] = color self.neop.write() def right(self,color): self.neop[2] = color self.neop.write() def upper(self,color): self.neop[3] = color self.neop.write() def left(self,color): self.neop[4] = color self.neop.write() def set(self,colors): self.neop[0] = (0,0,0) for i,c in enumerate(colors): self.neop[i+1] = c self.neop.write()