端子に電圧がかかっているかを調べるのがIOの「入力」です。「入力」といっても何かを受け取るわけではなく、かけられている電圧を調べ、その電圧がある電圧より高いかどうかをtrue/falseで判定します。これによりボタンや一部のセンサーなど「ある状態かそうでないか」を電圧で出力する装置をつなぐことで状態を調べることができます。
問い合わせによる電圧確認
以下のようにinput.Wait()を呼び出すことでio0の現在の状態をデバイスに問い合わせbooleanで値を受け取ることができます。
// Javascript Example
var value = await obniz.io0.inputWait();
if (value) {
// io0 is high level
} else {
// io0 is low level
}
常時入力
端子を常時入力に設定すると、「変化があったとき」に知ることができます。いつ変化があるかわからなく、かつその変化を見逃したくない場合に活用できます。
input()関数を使い、変化を受け取る関数を設定することで状態変化を監視し、変化を受け取れるようになります。
// Javascript Example
obniz.io0.input(function(value){
console.log("changed to " + value);
});
状態変化が送られる頻度はネットワークに依存します。大量・高速な変化がある場合に一部だけ届く場合があります。
常時入力の終了
出力と同じくio.end()を呼び出すことでinput()で始めた入力を終了することができます。
// Javascript Example
obniz.io0.input(function(value){
console.log("changed to " + value);
});
obniz.io0.end();
何ボルトでtrueとなるか
true/falseと判定される電圧はデバイスにより異なります。
obniz BoardシリーズであればCMOSレベルとなります。詳しくはデバイスの詳細をご覧ください。