-- 先設定這顆 IC 的 slave 位址，之後才能用 i2c.* 存取（見「I2C 讀寫」頁）。
i2c.addr(0x58)

-- I2C 讀取、寫入、讀回比對；ic.name()／ic.addr() 只驗證型別與範圍，不印出
-- 實際值——那個值來自你自己的掛載設定，範例不該假裝知道它是什麼。
check(type(ic.name()) == "string", "ic.name() returns a string")
check(ic.addr() >= 0 and ic.addr() <= 0x7F, "ic.addr() is a 7-bit address")

i2c.write(0x10, 0xA5)
local v = i2c.read(0x10)
check(v == 0xA5, "readback at 0x10 equals 0xA5")

i2c.write(0x20, {1, 2, 3, 4})
local t = i2c.read(0x20, 4)
check(t[1] == 1 and t[2] == 2 and t[3] == 3 and t[4] == 4, "4-byte readback matches")

log("info", "i2c_rw done")
