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 >>
関連資料・記事
[Arduino] Node.jsのJohnny-Fiveフレームワークを使ってArduino UnoでLチカ
[Arduino] ArduinoをNode.jsで操作する準備としてArduinoにFirmataプログラムを書き込む際にArduino IDEを使わずコマンドラインで実行する方法(GORT)
参考サイト
Arduino (Wikipedia)
Arduino技術情報 (Qiita)
Arduino関連情報 (Device Plus)
Arduino記事一覧 (Think IT)
Node.js技術情報 (Qiita)
Johnny-Five技術情報 (Qiita)
エレクトロニクス豆知識 (ROHM)