io

io.output(io, boolean)

IOのHigh/Lowを切り替えます。起動時はHi-z状態のIOからプッシュプルの出力が開始されます。

以下はIO1,IO2にLEDを繋いだ場合交互に点滅する例です

local tick = 0
local flag = false

os.log(" - Lua PowerOn");
io.retain(1, true);
io.retain(2, true);

function on_offline_loop()
  loop()
end

function on_online_loop()
  loop()
end

function loop()
  if tick + 300 < os.getTick() then
    tick = os.getTick()
    io.output(1, flag);
    io.output(2, not flag);
    flag = not flag
  end
end

io.input(io)

IOのLHigh/Lowを読み取ります。

outputを行ったあとにinputすることでIOをHi-z状態にすることができます。

以下はIO2の入力をIO1から出力する例です。

function on_offline_loop()
  loop()
end

function on_online_loop()
  loop()
end

function loop()
  io.output(1, io.input(2));
end

os.log(" - Lua Start");
io.retain(1, true);
io.retain(2, true);