記事一覧

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

Johnny-Fiveでマイコン制御18 - 温度センサー

○Thermometerオブジェクトを作成する

 温度センサーの測定値を取得するには、Thermometerオブジェクトを使います。Thermometerオブジェクトは、物理的なボード上に接続されている温度センサーを表すオブジェクトです。Thermometerオブジェクトを作成するには、Thermometerクラスのコンストラクタを使います。

温度センサーIC(LM35TMP36)を使用するためのThermometerオブジェクトを作成するには、「controller」プロパティに使用する温度センサーICの名前を、「pin」プロパティに温度センサーの出力を接続するアナログ入力ピンの名前を指定します。

new five.Thermometer({

  controller:  温度センサーの名前,

  pin: ピン番号

}

 

たとえば、LM35を使用するためのThermometerオブジェクトを作成するには、次のように書きます。

new five.Thermometer({

  controller: "LM35",

  pin: "A0"

});;

 

・配線図

 2016080506.png

I2Cインターフェイスの温度センサー・モジュールの場合は、「controller」プロパティに使用する温度センサーの名前を指定します。たとえば、MPU6050を使用するためのThermometerオブジェクトを作成するには、次のように書きます。

new five.Thermometer({

  controller: "MPU6050"

});

 

・配線図

 2016080507.png

 

温度センサーのデータを取得する

 温度センサーのデータを取得するには、イベントハンドラを使います。イベントハンドラは、「on」メソッドを使って書きます。イベントにはイベント名を、ハンドラにはイベント発生時に実行する処理(コールバック関数)を指定します。

on("イベント", ハンドラ)

 

 Thermometerオブジェクトで発生するイベントは、次のとおりです。

イベント

説明

change

温度センサーの入力データが変化したときに発生する

data

25ミリ秒(freq」プロパティで変更可)間隔で発生する

 

取得した値は、次のプロパティで参照することができます。

プロパティ

説明

celsiusC

摂氏温度

fahrenheitF

華氏温度

kelvinK

ケルビン温度

 

たとえば、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」プロパティを使います。これは、LM35TMP36以外の温度センサー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

                     }

                   })

 

スポンサーサイト

コメント

コメントの投稿

非公開コメント

ads

プロフィール

Author:部員3号
FC2ブログへようこそ!

kindle本

最新コメント

温度計

ads

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。