MicroPython for micro:bit library for 10 segment LED bar graph modules using the MY9221 LED driver
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
docs
examples
LICENSE.txt
README.md
my9221.py

README.md

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

  • 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 example main.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

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

License

Licensed under the MIT License.