MicroPython TM1637 Quad 7
MicroPython TM1637 Quad 7
class TM1637(object):
"""Library for quad 7-segment LED modules based on the TM1637 LED
driver."""
def __init__(self, clk, dio, brightness=7):
self.clk = clk
self.dio = dio
self.clk.init(Pin.OUT, value=0)
self.dio.init(Pin.OUT, value=0)
sleep_us(TM1637_DELAY)
self._write_data_cmd()
self._write_dsp_ctrl()
def _start(self):
self.dio(0)
sleep_us(TM1637_DELAY)
self.clk(0)
sleep_us(TM1637_DELAY)
def _stop(self):
self.dio(0)
sleep_us(TM1637_DELAY)
self.clk(1)
sleep_us(TM1637_DELAY)
self.dio(1)
def _write_data_cmd(self):
# automatic address increment, normal mode
self._start()
self._write_byte(TM1637_CMD1)
self._stop()
def _write_dsp_ctrl(self):
# display on, set brightness
self._start()
self._write_byte(TM1637_CMD3 | TM1637_DSP_ON | self._brightness)
self._stop()
self._brightness = val
self._write_data_cmd()
self._write_dsp_ctrl()
self._write_byte(TM1637_CMD2 | pos)
for seg in segments:
self._write_byte(seg)
self._stop()
self._write_dsp_ctrl()
class TM1637Decimal(TM1637):
"""Library for quad 7-segment LED modules based on the TM1637 LED
driver.
This class is meant to be used with decimal display modules (modules
that have a decimal point after each 7-segment LED).
"""