stepper-clock/HousingLEDs.py
2020-03-23 11:26:38 +01:00

56 lines
1.2 KiB
Python

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()