○Switchオブジェクトを作成する
スイッチ(トグルスイッチ、スライドスイッチ、マイクロスイッチなど)の状態を取得するには、Switchオブジェクトを使います。Switchオブジェクトは、物理的なボード上に接続されているスイッチを表すオブジェクトです。Switchオブジェクトを作成するには、Switchクラスのコンストラクタを使います。引数にはスイッチを接続するピンの番号を指定します。
new five.Switch (ピン番号);
|
オプションの「pins」プロパティでピン番号を指定する場合は、次のように書きます。
new five.Switch ({
pin: ピン番号
});
|
スイッチの初期状態には、NO(normally open)とNC(normally closed)の2種類があります。Switchオブジェクトは、既定はNOです。この状態は、オプションの「type」プロパティで指定することはできます。
type
|
説明
|
NO
|
通常は開いていて、押すと(オンで)閉じる
|
NC
|
通常は閉じていて、押すと(オンで)離れる
|
NCのスイッチを使用する場合は、「type」プロパティに「NC」をに指定して、Switchオブジェクトを作成します。
new five.Switch({
pin: ピン番号,
type:
"NC"
});
|
○スイッチの状態を取得する
スイッチの状態を取得するには、イベントハンドラを使います。イベントハンドラは、「on」メソッドを使って書きます。イベントにはイベント名を、ハンドラにはイベント発生時に実行する処理(コールバック関数)を指定します。
on("イベント", ハンドラ)
|
Switchオブジェクトで発生するイベントは、次のとおりです。
イベント
|
説明
|
closed
|
スイッチを閉じたとき(NOの場合は入力がLOW、NCの場合は入力がHIGHになったとき)に発生する
|
open
|
スイッチを解放されたとき(NOの場合は入力がHIGH、NCの場合は入力がLOWになったとき)に発生する
|
たとえば、スイッチの現在の状態を表示するコードは、次のように書きます。
var five = require("johnny-five");
var board = new five.Board();
board.on("ready", function() {
//
Switchオブジェクトを作成(8ピンをトグルスイッチ入力用に設定)
var toggle = new five.Switch(8);
//
「closed」イベント:スイッチを閉じたときに発生
// NO(既定)の場合は入力がLOW、NCの場合は入力がHIGHになったとき
toggle.on("close", function() {
console.log("closed");
});
//
「open」イベント:スイッチを解放されたときに発生(既定)
// NO(既定)の場合は入力がHIGH、NCの場合は入力がLOWになったとき
toggle.on("open", function() {
console.log("open");
});
});
|
・配線図-NO(switch-no.fzz)
・配線図-NC(switch-nc.fzz)
○複数のスイッチをまとめて管理する
複数のスイッチをまとめて管理するには、Switchesオブジェクトを使います。Switchesオブジェクトは、物理的なボード上に接続されている複数のスイッチを表すオブジェクトのコレクションです。Switchesオブジェクトを作成するには、Switchesクラスのコンストラクタを使います。引数には、スイッチを接続するピン番号またはSwitchオブジェクトの配列を指定します。
new five.Switches(配列);
|
たとえば、2、3、4ピンに接続された3つのスイッチを管理するSwitchesオブジェクトを作成するには、次のように書きます。
new
five.Switches([2, 3, 4]);
|
オプションの「pin」プロパティでピン番号を指定する場合は、次のように書きます。
new five.Switches([{pin: 9}, {pin: 10},
{pin: 11}]);
|
○特定のスイッチのイベントを検出する
Switchesオブジェクトの特定のスイッチを参照するには、配列のインデックスを指定します。インデックスは、ピン番号の記述順に0から割り当てられる連番です。たとえば、インデックスが「0」のスイッチの「close」イベントを検出するには、次のように書きます。
toggle[0].on("close", function() {
console.log("closed");
});
|
0 件のコメント:
コメントを投稿