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
Installation
- Install MicroPython for micro:bit by either compiling from source or using one of my precompiled firmwares
- Install ufs to upload .py scripts
- Copy
my9221.py
and one of the examplemain.py
scripts to the micro:bit - Reset to run
main.py
on boot.
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
- BBC micro:bit $24.95 AUD
- Edge Connector Breakout Board $11.95 AUD
- Grove LED Bar $3.90 USD
- Grove Male Jumper Cable $2.90 USD
Connections
micro:bit | Grove LED Bar |
---|---|
Pin 1 | DI (yellow) |
Pin 2 | DCKI (white) |
3V3 | VCC (red) |
GND | GND (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
- BBC micro:bit
- MicroPython for the BBC micro:bit
- Kitronik Edge Connector Breakout Board
- Grove LED Bar Wiki Page
- micropython.org
- micro:bit on the MicroPython forum
- microfs
- MY9221 datasheet
- My Semi MY9221 product page
- MicroPython MY9221
License
Licensed under the MIT License.