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);
io.drive(io, mode)
ピンの出力方式を選びます。
OS7.1.0以降
引数
| 引数 | 型 | 説明 |
|---|---|---|
io |
number | 操作するIOの番号です。 |
mode |
string | 出力方式です(下表を参照)。 |
| モード | 説明 |
|---|---|
"3v" |
3Vのプッシュプル出力です。既定値です。 |
"5v" |
5Vのプッシュプル出力です。 |
"open-drain" |
オープンドレイン出力です。 |
注意:
"5v"はobniz Boardでのみ利用できます。ESP32系のIOは3Vで動作します。
io.drive(1, "open-drain"); -- IO1をオープンドレインで駆動する
io.output(1, true);
io.pull(io, mode)
ピンに与えるプル抵抗を選びます。
OS7.1.0以降
引数
| 引数 | 型 | 説明 |
|---|---|---|
io |
number | 操作するIOの番号です。 |
mode |
string | プルの設定です(下表を参照)。 |
| モード | 説明 |
|---|---|
null |
プル抵抗なし(フローティング)です。既定値です。 |
"5v" |
5Vへプルアップします。 |
"3v" |
3Vへプルアップします。 |
"0v" |
0Vへプルダウンします。 |
注意:
"5v"はobniz Boardでのみ利用できます。ESP32系のIOは3Vで動作します。
io.pull(2, "3v"); -- IO2を3Vへプルアップする
local val = io.input(2);
io.pull(2, nil); -- フローティング(プル抵抗なし)へ戻す