Home

Awesome

BBC micro:bit MicroPython MY9221

A micro:bit MicroPython library for 10 segment LED bar graph modules using the MY9221 LED driver.

For example, the Grove - LED Bar module

demo

Installation

Examples

from microbit import *
from my9221 import MY9221
ledbar = MY9221(di=pin1, dcki=pin2, reverse=False)

# all LEDS on, full brightness
ledbar.level(10)

# four LEDS on, half brightness
ledbar.level(4, 0x0F)

# first and last LED on
ledbar.bits(0b1000000001)
ledbar.bits(0x201)
ledbar.bits(513)

# alternating LEDs
ledbar.bits(0b0101010101)
ledbar.bits(0b1010101010)

# fade out LEDs
buf = bytearray([0,1,3,7,15,31,63,127,255,255])
ledbar.bytes(buf)

# reverse orientation, first LED is green
ledbar.reverse(True)
ledbar.level(1)

# normal orientation, first LED is red
ledbar.reverse(False)
ledbar.level(1)

For more detailed examples, see /examples.

Methods

Get or set the orientation. The red LED normally position 1, and when reversed is position 10. Once orientation has been set, all other methods respect the order.

reverse(val=None)

Illuminate a number of LEDs at a specific brightness. A value of 5 would light half of the display.

level(val, brightness=255)

Illuminate LEDs, one bit per LED at a specific brightness. Value can be 0-1023.

bits(val, brightness=255)

Use a bytearray, one byte per LED, to specify individual brightness for each LED.

bytes(buf)

Parts

Connections

micro:bitGrove LED Bar
Pin 1DI (yellow)
Pin 2DCKI (white)
3V3VCC (red)
GNDGND (black)

An edge connector breakout board comes in handy here.

You're welcome to change the data and clock pins to something else - just update MY9221(di=pin1, dcki=pin2) in your main.py

Links

License

Licensed under the MIT License.