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 >>
関連資料・記事
参考サイト
Arduino (Wikipedia)
Arduino技術情報 (Qiita)
Arduino関連情報 (Device Plus)
Arduino記事一覧 (Think IT)
Node.js技術情報 (Qiita)
Johnny-Five技術情報 (Qiita)
エレクトロニクス豆知識 (ROHM)