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.