A MicroPython library for 10 segment LED bar graph modules using the MY9221 LED driver.
For example, the Grove - LED Bar module
Copy the file to your device, using ampy, webrepl or compiling and deploying. eg.
$ ampy put my9221.py
Basic usage
from my9221 import MY9221
from machine import Pin
ledbar = MY9221(di=Pin(4), dcki=Pin(5))
# 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 my9221_test.py
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)
- WeMos D1 Mini $3.50 USD
- Grove LED Bar $3.90 USD
- Grove Male Jumper Cable $2.90 USD
WeMos D1 Mini | Grove LED Bar |
---|---|
D2 (GPIO4) | DI (yellow) |
D1 (GPIO5) | DCKI (white) |
3V3 (or 5V) | VCC (red) |
G | GND (black) |
- WeMos D1 Mini
- micropython.org
- MY9221 datasheet
- My Semi MY9221 product page
- BBC micro:bit version
- Adafruit Ampy
- micropython-my9221 on pypi
Licensed under the MIT License.