from machine import Pin, Timer
import random
from utime import sleep
led_pins = [
{'red': Pin(0, Pin.OUT), 'blue': Pin(1, Pin.OUT)},
{'red': Pin(2, Pin.OUT), 'blue': Pin(3, Pin.OUT)},
{'red': Pin(4, Pin.OUT), 'blue': Pin(5, Pin.OUT)},
{'red': Pin(6, Pin.OUT), 'blue': Pin(7, Pin.OUT)},
{'red': Pin(8, Pin.OUT), 'blue': Pin(9, Pin.OUT)},
]
def display_binary_leds(number):
binary = "{:05b}".format(number) # 5-bit binary string
print(f"Number: {number} -> Binary: {binary}")
for i in range(5):
bit = binary[i]
if bit == '1':
led_pins[i]['red'].value(1)
led_pins[i]['blue'].value(0)
else:
led_pins[i]['red'].value(0)
led_pins[i]['blue'].value(1)
def clear_leds():
for led in led_pins:
led['red'].value(0)
led['blue'].value(0)
def fn(t):
rand_num = random.randint(0, 31)
display_binary_leds(rand_num)
sleep(2)
clear_leds()
tim = Timer(mode=Timer.PERIODIC, period=2000, callback=fn)