Skip to content

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

License

Notifications You must be signed in to change notification settings

mcauser/microbit-my9221

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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.

About

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

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Languages