adafruit-beaglebone-io-python/source/examples/python/i2cmatrix.py
Mark A. Yoder 47bfe24813 Added fade
2017-07-31 16:03:46 -04:00

37 lines
1.1 KiB
Python
Executable file

#!/usr/bin/env python3
# Write an 8x8 Red/Green LED matrix
# https://www.adafruit.com/product/902
import smbus
import time
bus = smbus.SMBus(1)
matrix = 0x70
delay = 1; # Delay between images in s
bus.write_byte_data(matrix, 0x21, 0) # Start oscillator (p10)
bus.write_byte_data(matrix, 0x81, 0) # Disp on, blink off (p11)
bus.write_byte_data(matrix, 0xe7, 0) # Full brightness (page 15)
# The first byte is GREEN, the second is RED.
smile = [0x00, 0x3c, 0x00, 0x42, 0x28, 0x89, 0x04, 0x85,
0x04, 0x85, 0x28, 0x89, 0x00, 0x42, 0x00, 0x3c
]
frown = [0x3c, 0x00, 0x42, 0x00, 0x85, 0x20, 0x89, 0x00,
0x89, 0x00, 0x85, 0x20, 0x42, 0x00, 0x3c, 0x00
]
neutral = [0x3c, 0x3c, 0x42, 0x42, 0xa9, 0xa9, 0x89, 0x89,
0x89, 0x89, 0xa9, 0xa9, 0x42, 0x42, 0x3c, 0x3c
]
bus.write_i2c_block_data(matrix, 0, frown)
for fade in range(0xef, 0xe0, -1):
bus.write_byte_data(matrix, fade, 0)
time.sleep(delay/10)
bus.write_i2c_block_data(matrix, 0, neutral)
for fade in range(0xe0, 0xef, 1):
bus.write_byte_data(matrix, fade, 0)
time.sleep(delay/10)
bus.write_i2c_block_data(matrix, 0, smile)