local digit = {} local function write(data) i2c.start(0) i2c.address(0, 0x70, i2c.TRANSMITTER) i2c.write(0, data) i2c.stop(0) end -- -a- -- f b -- -g- -- e c -- -d- p local function chr(x) local c = { [' '] = 0, [':'] = 2, ['-'] = 0x40, ['0'] = 0x3f, ['1'] = 0x06, ['2'] = 0x5b, ['3'] = 0x4f, ['4'] = 0x66, ['5'] = 0x6d, ['6'] = 0x7d, ['7'] = 0x07, ['8'] = 0x7f, ['9'] = 0x6f, } return c[x] or c[' '] end function digit.init() i2c.setup(0, 2, 1, i2c.SLOW) write(0x21) digit.on(true) digit.brightness(1) digit.output('00:00') end function digit.on(flag) write(flag and 0x81 or 0x80) end function digit.brightness(val) write(0xe0 + val) end function digit.blink(flag) write(flag and 0x85 or 0x81) end function digit.output(txt) write{ 0, chr(txt:sub(1, 1)), 0, chr(txt:sub(2, 2)), 0, chr(txt:sub(3, 3)), 0, chr(txt:sub(4, 4)), 0, chr(txt:sub(5, 5)) } end return digit