Arduino 資料一覧
Johnny-Fiveでサポートされていない温度センサーの値を温度に変換する方法(LM61BIZ編)
2017/01/21更新
対応バージョン: Node.js 4.2.6, Johnny-Five 0.9.58
Johnny-Fiveは様々な温度センサーをサポートしているので対象センサーであれば以下のようにThermometerクラスを使って簡単に温度を取得することができる。
var five = require("johnny-five"); var board = new five.Board(); board.on("ready", function() { var temp = new five.Thermometer({ controller: "LM35", pin: "A0" }); temp.on("change", function() { console.log(this.celsius + "°C", this.fahrenheit + "°F"); }); });
しかしJohnny-Fiveでサポートされていない温度センサーの値を温度に変換するにはそのセンサーのデータシートを見てThermometerクラスのtoCelsiusオプションで計算式を定義する必要がある。
ここではLM61BIZを使用する場合の計算式を示す。
LM61BIZ 温度センサIC (スイッチサイエンス)
上記ページからデータシートを参照すると出力電圧のオフセット値が0.6Vであることが分かる。
これを以下の式に当てはめれば温度が計算できる。
((センサー値 * 電源電圧 / 1024) - 出力電圧のオフセット値) * 100 = ((センサー値 * 5 / 1024) - 0.6) * 100
この計算式をThermometerクラスのtoCelsiusオプションに定義してデフォルト定義をオーバーライドすればよい。
結線


ソース
lm61.js
var five = require("johnny-five"); var board = new five.Board(); board.on("ready", function() { var temp = new five.Thermometer({ pin: "A0", toCelsius: function(raw) { var val = ((raw * 5 / 1024) - 0.6) * 100; // 温度計算 return Math.round(val * 10) / 10; // 小数点第2位以下四捨五入 } }); temp.on("change", function() { console.log(this.celsius + "°C"); }); });
実行
% node lm61.js 1485009719195 Device(s) /dev/ttyACM0 1485009719202 Connected /dev/ttyACM0 1485009722449 Repl Initialized >> 19.6 19.1 19.6 19.1 19.6 19.1 :
関連資料・記事
参考サイト
Arduino (Wikipedia)
Arduino技術情報 (Qiita)
Arduino関連情報 (Device Plus)
Arduino記事一覧 (Think IT)
Node.js技術情報 (Qiita)
Johnny-Five技術情報 (Qiita)
エレクトロニクス豆知識 (ROHM)