From be56618ace9e23dc37f3dad215a166f5a9ab332a Mon Sep 17 00:00:00 2001 From: s-hadinger <49731213+s-hadinger@users.noreply.github.com> Date: Tue, 7 Mar 2023 20:04:35 +0200 Subject: [PATCH] Add I2C example for M5Stack DigiClock (#18132) --- tasmota/berry/drivers/M5Stack_DigiClock.be | 38 ++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 tasmota/berry/drivers/M5Stack_DigiClock.be diff --git a/tasmota/berry/drivers/M5Stack_DigiClock.be b/tasmota/berry/drivers/M5Stack_DigiClock.be new file mode 100644 index 000000000..9f72bdbbe --- /dev/null +++ b/tasmota/berry/drivers/M5Stack_DigiClock.be @@ -0,0 +1,38 @@ +# Simple driver for M5Stack DigiClock I2C 7 segments LED +# +# https://docs.m5stack.com/en/unit/digi_clock + +class M5Stack_DigiClock + static var I2C_ADDR = 0x30 # default I2C address is 0x30 + var led + var addr + + def init(addr) + if !addr addr = self.I2C_ADDR end + + self.addr = addr + self.led = tasmota.wire_scan(addr) + + if self.led == nil raise "configuration_error", "Could not find DigiClock I2C device" end + end + + def set_brightness(b) + if b < 0 b = 0 end + if b > 8 b = 8 end + self.led.write(self.addr, 0x30, b, 1) + end + + def set_text(t) + self.led.write_bytes(0x30, 0x20, bytes().fromstring(str(t))) + end +end + +return M5Stack_DigiClock + +#- + +var led = M5Stack_DigiClock() +led.set_brightness(1) +led.set_text("1234") + +-#