今日、DS2408 と dev NodeMCU を使ってみました。 https://datasheets.maximintegrated.com/en/ds/DS2408.pdf例としてhttps://github.com/queezythegreat/arduino-ds2408/blob/master/DS2408/DS2408.cpp を使用しました。
local pin = 3
local addr = '29-example'
local DS2408_CHANNEL_WRITE_CMD = 0x5A
function set_state(state)
ow.setup(pin)
if (ow.reset(pin) == 1) then
ow.select(pin, addr)
ow.write(pin, DS2408_CHANNEL_WRITE_CMD, 1)
ow.write(pin, state, 1)
ow.write(pin, bit.bnot(state), 1)
if (ow.read(pin) == 0xAA) then
if (ow.read(pin) == state) then
return true
end
end
else
return false
end
end
print(set_state(0x02))
状態の設定は正常に機能します。設定後、One Wire は 0xAA を送信して確認 (動作) し、次のバイトは IO の現在の状態です。ご覧のとおり、コードの 2 番目のバイトを元の状態と比較します。私は常に 2 番目のバイトとして 0x0 を取得します。何が問題なのか...
何が起こっているのか誰にもわかりませんか?
よろしく、マルコ