○Thermometerオブジェクトを作成する
温度センサーの測定値を取得するには、Thermometerオブジェクトを使います。Thermometerオブジェクトは、物理的なボード上に接続されている温度センサーを表すオブジェクトです。Thermometerオブジェクトを作成するには、Thermometerクラスのコンストラクタを使います。
温度センサーIC(LM35、TMP36)を使用するためのThermometerオブジェクトを作成するには、「controller」プロパティに使用する温度センサーICの名前を、「pin」プロパティに温度センサーの出力を接続するアナログ入力ピンの名前を指定します。
new five.Thermometer({
controller: 温度センサーの名前,
pin: ピン番号
}
|
たとえば、LM35を使用するためのThermometerオブジェクトを作成するには、次のように書きます。
new five.Thermometer({
controller: "LM35",
pin: "A0"
});;
|
・配線図
I2Cインターフェイスの温度センサー・モジュールの場合は、「controller」プロパティに使用する温度センサーの名前を指定します。たとえば、MPU6050を使用するためのThermometerオブジェクトを作成するには、次のように書きます。
new five.Thermometer({
controller: "MPU6050"
});
|
・配線図
○温度センサーのデータを取得する
温度センサーのデータを取得するには、イベントハンドラを使います。イベントハンドラは、「on」メソッドを使って書きます。イベントにはイベント名を、ハンドラにはイベント発生時に実行する処理(コールバック関数)を指定します。
on("イベント", ハンドラ)
|
Thermometerオブジェクトで発生するイベントは、次のとおりです。
イベント
|
説明
|
change
|
温度センサーの入力データが変化したときに発生する
|
data
|
25ミリ秒(「freq」プロパティで変更可)間隔で発生する
|
取得した値は、次のプロパティで参照することができます。
プロパティ
|
説明
|
celsius、C
|
摂氏温度
|
fahrenheit、F
|
華氏温度
|
kelvin、K
|
ケルビン温度
|
たとえば、LM35の温度データを「change」イベントで取得し、摂氏、華氏、ケルビン温度で表示するには、次のように書きます。
var five = require("johnny-five");
var board = new five.Board();
board.on("ready", function()
{
// Thermometerオブジェクトを作成
// 使用温度センサーIC LM35
// データ入力端子 A0
var
temperature = new five.Thermometer({
controller: "LM35",
pin: "A0"
});
// データを取得
temperature.on("data", function()
{
console.log("celsius: %d", this.celsius);
console.log("fahrenheit: %d", this.fahrenheit);
console.log("kelvin: %d", this.kelvin);
/* または
console.log("celsius: %d", this.C);
console.log("fahrenheit: %d", this.F);
console.log("kelvin: %d", this.K);
*/
});
});
|
○温度センサー・データの読み取り間隔を設定する
温度センサーのデータの読み取り間隔(「data」イベントの間隔)を設定するには、オプションの「freq」プロパティを使います。値にはミリ秒単位の時間を指定します。たとえば、100ミリ秒間隔でデータを読み取るには、次のように書きます。
var five = require("johnny-five");
var board = new five.Board();
board.on("ready", function()
{
// Thermometerオブジェクトを作成
// 使用温度センサーIC LM35、データ入力端子 A0
// 読み取り間隔を100ミリ秒に設定
var
temperature = new five.Thermometer({
controller: "LM35",
pin: "A0",
freq: 100
});
// データを取得
temperature.on("data", function()
{
console.log(this.celsius + "°C", this.fahrenheit + "°F");
});
});
|
○温度の計算式を指定する
温度(摂氏)の計算式(関数)を指定するには、オプションの「toCelsius」プロパティを使います。これは、LM35やTMP36以外の温度センサーICを使用する場合に使います。
new five.Thermometer({
pin: "A0",
toCelsius: function(raw) { ((raw * sensivity)-offset)*100}
});
|
raw
|
ADコンバータ値
|
sensivity
|
温度センサーICの電源電圧 / ADC分解能
|
offset
|
温度センサーICのオフセット電圧
|
※Arduinoの場合、ADC分解能は「1024」
たとえば、LM35(5V使用時)の温度計算式は「(raw * 5 / 1024) *100」になります。
var
temperature = new five.Thermometer({
pin: "A0",
toCelsius: function(raw) {
return
(raw * 5 / 1024) *100
}
})
|
TMP36(5V使用時)の温度計算式は「((raw * 5 / 1024)-0.5) *100」になります。
var
temperature = new five.Thermometer({
pin: "A0",
toCelsius: function(raw) {
return
((raw * 5 / 1024)-0.5)
*100
}
})
|
0 件のコメント:
コメントを投稿