from machine import Pin, ADC
from time import sleep
class BusOut:
def __init__(self, *pins):
self.pins = [ Pin(pin, Pin.OUT) for pin in pins ]
self.value = 0
def write(self, value):
self.value = value
for i, pin in enumerate(self.pins):
pin.value((value >> i) & 1)
def read(self):
return self.value
class Potentiometer:
def __init__(self, pin, a = 0, b = 3.3):
self.pin = ADC(Pin(pin, Pin.IN))
self.a = a
self.b = b
def read(self):
return (self.b - self.a) * self.pin.read_u16() / 65535 + self.a
leds = BusOut(4, 5, 6, 7, 8, 9, 10, 11)
seconds = Potentiometer(28, 0.1, 2)
while True:
i = 1
while i != 256:
leds.write(i)
sleep(seconds.read())
i = i * 2
leds.write(255)
sleep(seconds.read())
i = 128
while i != 0:
leds.write(i - 1)
sleep(seconds.read())
i = i // 2
leds.write(0)
sleep(seconds.read())