1

今日、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 を取得します。何が問題なのか...

何が起こっているのか誰にもわかりませんか?

よろしく、マルコ

4

0 に答える 0