Koshianのレッスンゴレライ4(温度センサー)

今夜はi2c通信のレッスンです。
以前RaspberryPiに繋いだ温度センサーADT7410を使用します。

秋月電子で購入したモジュールです。
ADT7410とプルアップ抵抗が載っているだけです。
Koshianのi2cに接続する時は、J1とJ2を半田でショートし、SCLとSDAのプルアップ抵抗を有効にしておきます。











テストコード

k.i2cMode(k.KONASHI_I2C_ENABLE_400K);

 iPhoneとKonashiの通信が確立したら、まずはi2c通信を有効にします。注)通信レートは100Kbpsと400Kbpsのいずれかを、接続するデバイスに合わせて選択します。

timer_hdl = setInterval(function () {
     k.i2cStartCondition();
     k.i2cWrite(1, 0x00, adr_adt7410);   //アドレス指定
     k.i2cRestartCondition();
     k.i2cReadRequest(2, adr_adt7410);   //測定値読み出し要求
     $("#message").html(count);
     count = count + 1;
 }, 1000);

 setIntervalにて1秒周期で、ADT7410から2バイトの測定値読み出しを要求しています。注)スレーブアドレスは接続するデバイスに合わせます。

k.completeReadI2c(function () {
    "use strict";
    k.i2cStopCondition();
    k.i2cRead(2, function (data) {
        var readdata = 0, temp = 0;
     
        readdata = (data[0] * 256) + data[1];
        $("#readdata").html("ADT7410 read " + readdata);
        temp = readdata / 8;
        if (temp >= 4096) {
            temp = temp - 8192;
        }
        $("#temperature").html("temperature " + temp * 0.0625 + "℃");
    });
});

 読み出し要求に対してKonashiからiPhoneに読み出し値が返ってきたら、ストップコンディションを送ってi2c通信を終了させた後、ADT7410の仕様に従って温度値に変換して表示しています。

本来はビット演算の方が判りやすいのですが、javascriptのコードチェッカーとして使用しているJSLintがビット演算禁止!と怒るので上記のようなコードになっています。 Brackets組み込みのJSLintのオプション設定変更の方法が不明なんですわ。


















次回はi2cに気圧センサーを繋ぎます。

コメント

このブログの人気の投稿

ARM用クロスコンパイラのビルド(Windows8+Cygwin)

Raspberry Pi のsleep時間測定

Cygwin+Emacs Problem