Arduino 資料一覧

Node.jsでタクトスイッチを使ってLEDを操作する(点灯、点滅、フェードイン・アウト)

2017/01/21更新

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

Node.jsでArduino UnoにつないだLEDに対してタクトスイッチを使って点灯、点滅、フェードイン・アウトを繰り返すプログラムを作る。

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

結線

結線は以下の通り。

ソース

以下のようなコードを書きNode.jsで実行する。タクトスイッチを押す毎にLEDが点灯→点滅→フェードイン・アウトに切り替わり、タクトスイッチの長押しで消灯する。

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

cnt = 0;

// LED点灯
function led_on(led) {
  switch(cnt % 3) {
    case 0:
      led.on();                         // 点灯
      break;
    case 1:
      led.strobe(500);                  // 点滅
      break;
    case 2:
      led.pulse(500);                   // フェードイン・アウト
  }

  cnt++;
}

// LED消灯
function led_off(led) {
  led.stop();
  led.off();
}

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

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

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

});
実行
% node led.js
1484147909373 Device(s) /dev/ttyACM0  
1484147909404 Connected /dev/ttyACM0  
>>

関連資料・記事

参考サイト