KS0478 Keyestudio Micro:bit Honeycomb Dot Matrix Module (Black and Eco-friendly)
Description
The keyestudio micro:bit honeycomb dot matrix module is a sensor that is fully compatible with the micro:bit control board. This module uses an HT16K33 chip to drive an 8 * 8 dot matrix and controls dot matrix via I2C communication port of the microcontroller, which greatly saves the microcontroller resources. In the experiment, we connect this module to the keyestudio micro:bit golden finger IO shield via a crocodile clip cable, then insert Micro:bit control board to shield. Therefore, we can control dot matrix to display different patterns by setting the corresponding code on the micro:bit control board.
Technical Parameters
- Working voltage: DC 3.0-3.3V
- Control port: I2C communication port
- Environmental attributes: ROHS
Connection Diagram
Test Code
Special attention: Setting is complicated because the chip drives the dot matrix, so the program is written in Python when setting the code. from microbit import *
class ht16k33:
ADDRESS = 0x70
BLINK_CMD = 0x80
CMD_BRIGHTNESS = 0xE0
def __init__(self):
self.buffer = bytearray([0]*16)
i2c.write(self.ADDRESS, b'\x21')
# 0 to 3
self.blink_rate(0)
# 0 to 15
self.set_brightness(10)
# self.clear()
def set_brightness(self, b):
i2c.write(self.ADDRESS, bytes([self.CMD_BRIGHTNESS | b]))
def blink_rate(self, b):
i2c.write(self.ADDRESS, bytes([self.BLINK_CMD | 1 | (b << 1)]))
def Display(self, num):
if num == 0:
dat = bytearray([0]*5) + bytearray([126]) + bytearray([0]) + \
bytearray([195]) + bytearray([0]) + bytearray([195]) + \
bytearray([0]) + bytearray([126]) + bytearray([0]*4)
elif num == 1:
dat = bytearray([0]*5) + bytearray([1]) + bytearray([0]) + \
bytearray([255]) + bytearray([0]) + bytearray([65]) + \
bytearray([0]*6)
elif num == 2:
dat = bytearray([0]*5) + bytearray([121]) + bytearray([0]) + \
bytearray([201]) + bytearray([0]) + bytearray([201]) + \
bytearray([0]) + bytearray([79]) + bytearray([0]*5)
elif num == 3:
dat = bytearray([0]*5) + bytearray([127]) + bytearray([0]) + \
bytearray([201]) + bytearray([0]) + bytearray([201]) + \
bytearray([0]) + bytearray([73]) + bytearray([0]*5)
elif num == 4:
dat = bytearray([0]*5) + bytearray([24]) + bytearray([0]) + \
bytearray([255]) + bytearray([0]) + bytearray([24]) + \
bytearray([0]) + bytearray([248]) + bytearray([0]*5)
elif num == 5:
dat = bytearray([0]*5) + bytearray([79]) + bytearray([0]) + \
bytearray([201]) + bytearray([0]) + bytearray([201]) + \
bytearray([0]) + bytearray([121]) + bytearray([0]*5)
elif num == 6:
dat = bytearray([0]*5) + bytearray([79]) + bytearray([0]) + \
bytearray([201]) + bytearray([0]) + bytearray([201]) + \
bytearray([0]) + bytearray([127]) + bytearray([0]*5)
elif num == 7:
dat = bytearray([0]*5) + bytearray([127]) + bytearray([0]) + \
bytearray([192]) + bytearray([0]) + bytearray([192]) + \
bytearray([0]) + bytearray([64]) + bytearray([0]*5)
elif num == 8:
dat = bytearray([0]*5) + bytearray([127]) + bytearray([0]) + \
bytearray([201]) + bytearray([0]) + bytearray([201]) + \
bytearray([0]) + bytearray([127]) + bytearray([0]*5)
elif num == 9:
dat = bytearray([0]*5) + bytearray([127]) + bytearray([0]) + \
bytearray([201]) + bytearray([0]) + bytearray([201]) + \
bytearray([0]) + bytearray([121]) + bytearray([0]*5)
else:
return
i2c.write(self.ADDRESS, dat)
def test(self):
data = bytearray([0]) + bytearray([255]*16)
i2c.write(self.ADDRESS, data)
self.blink_rate(1)
sleep(3000)
data = bytearray([0]) + bytearray([0]*16)
i2c.write(self.ADDRESS, data)
self.blink_rate(0)
def clear(self):
self.buffer = bytearray([0]*16)
i2c.write(self.ADDRESS, self.buffer)
# declare an instance
keyes = ht16k33()
keyes.test()
while True:
for a in range(0, 10):
keyes.Display(a)
sleep(1000)
Test Result
Wire according to connection diagram, upload the test code successfully, and after power- on, the dot matrix on the keyestudio micro:bit honeycomb dot matrix module will display 0-9 10 digital patterns in a loop.
Resource
Test Code:
https://fs.keyestudio.com/KS0478
Buy from
- [ Official Website]
- [ Shop on Aliexpress ]