Arduino 資料一覧

Node.jsでタクトスイッチの状態を読み取る

2017/01/12更新

対応バージョン: Node.js 4.2.6, Johnny-Five 0.9.58

Node.jsでArduino Unoにつないだタクトスイッチの状態を読み取って内蔵LEDを点灯・点滅させる。

Node.jsを動かす母艦はUbuntu 16.04とする。

結線

結線は以下の通りで、タクトスイッチとGNDの間に10kΩのプルダウン抵抗を挟む。タクトスイッチの状態はデジタル2ピンを使って取得し、スイッチの状態によって内蔵LEDを制御する。

押した状態(press)

LED点灯

離した状態(release)

LED消灯

押しっ放し(hold)

LED点滅

ソース

以下のようなコードを書きNode.jsで実行する。タクトスイッチを離した時の処理としてstop(点滅を点灯に変更)とoff(消灯)を両方指定する必要があることに注意する。

button.js
var five = require("johnny-five");
var board = new five.Board();

board.on("ready", function() {
  var button = new five.Button(2);      // スイッチ状態
  var led    = new five.Led(13);        // LED

  // 押す
  button.on("press", function() {
    led.on();
  });

  // 離す
  button.on("release", function() {
    led.stop();         // for strobe()
    led.off();          // for on()
  });

  // 長押し
  button.on("hold", function() {
    led.strobe(500);
  });

});
実行
% node button.js
1484147909373 Device(s) /dev/ttyACM0  
1484147909404 Connected /dev/ttyACM0  
1484147912650 Repl Initialized  
>>

関連資料・記事

参考サイト