(同じ利用者による、間の4版が非表示)
1行目: 1行目:
== 概要 ==
== 概要 ==
ここでは、温度センサとして人気のあるTMP36とNTCサーミスタ(MF52-103)の使用方法を記載する。<br>
ここでは、温度センサとして人気のあるTMP36とNTCサーミスタ(MF52-103)の使用方法を記載する。<br>
また、赤外線温度センサモジュールGY-906についても併せて記載する。<br>
<br><br>
<br><br>


== TMP36の使用方法 ==  
== TMP36 ==  
===== TMP36の概要 =====
===== TMP36の概要 =====
TMP36は、アナログ出力温度測定ICである。<br>
TMP36は、アナログ出力温度測定ICである。<br>
33行目: 34行目:
<br>
<br>
<code>analogRead()</code>関数でTMP36からの電圧を取得して、SC1602に表示するサンプルコードは以下の通りである。<br>
<code>analogRead()</code>関数でTMP36からの電圧を取得して、SC1602に表示するサンプルコードは以下の通りである。<br>
  <source lang="c++">
  <syntaxhighlight lang="c++">
  #include <LiquidCrystal_I2C.h>
  #include <LiquidCrystal_I2C.h>
   
   
67行目: 68行目:
     delay(3000);
     delay(3000);
  }
  }
  </source>
  </syntaxhighlight>
<br><br>
<br><br>


112行目: 113行目:
<br>
<br>
なお、この分圧回路で設定したR1をバランス抵抗という。<br>
なお、この分圧回路で設定したR1をバランス抵抗という。<br>
<br><br>
== 赤外線温度センサ(GY-906) ==
===== GY-906の概要 =====
このセクションでは、非接触の赤外線温度センサモジュールGY-906を使用する方法を記載する。<br>
<br>
GY-906は赤外線温度センサMLX90614を組み込んでいる。<br>
MLX90614には多くのバリエーションが存在するが、ここでは、MLX90614ESF-BAAを使用する。<br>
ESF-BAAの意味は、以下の通りである。<br>
* E
*: 動作温度範囲 -40[℃]〜85[℃]
* SF
*: TO-39パッケージ
* B
*: 動作電圧 3[V]
* A
*: シングルゾーン(サーモパイル)
* A
*: スタンダードパッケージ
<br>
動作電圧については、GY-906では内部電圧レギュレータが搭載されているので、MLX90614 "B"ではあるが、3[V]〜5[V]の範囲で使用できる。<br>
<br><br>
===== GY-906の接続 =====
GY-906のピン配置およびArduino Unoとの接続は、下図のようになる。<br>
TO-39パッケージの突起から反時計回りに、SCL、SDA、VDD、GNDである。<br>
[[ファイル:Arduino GY-906 1.png|フレームなし|中央]]
<br>
GY-906との接続では、I2Cインターフェイス(SCL、SDA)を使用して、10[kΩ]のプルアップ抵抗が必要である。<br>
なお、Arduino Unoでは、SDA、SCLはそれぞれA4、A5が割り当てられている。<br>
<br>
また、温度測定の結果をLCD(1604A)に表示するので、その接続も必要である。<br>
LCDとの接続については、Arduinoを用いてLCDに文字を表示を参照すること。<br>
<br><br>
===== サンプルコード =====
ArduinoからGY-906を使用するため、Adafruit社が提供しているAdafruit MLX90614 Libraryを使用する。<br>
<br>
Arduino IDEのメニューバー[Sketch] - [Include Library] - [Manage Libraries...]を選択する。<br>
[ライブラリの管理]画面が起動するので、検索項目から"Adafruit MLX90614 Library"と入力する。<br>
ライブラリ一覧が表示されるので、Adafruit MLX90614 Libraryを選択して、リスト右側にある[Install]ボタンを押下する。<br>
<br>
温度センサに手をかざすと直ちに温度が上がり、手を離すと元の温度に下がることを確認する。<br>
[[ファイル:Arduino GY-906 2.png|フレームなし|中央]]
<syntaxhighlight lang="c++">
#include <Adafruit_MLX90614.h>
#include <LiquidCrystal.h>
Adafruit_MLX90614 mlx = Adafruit_MLX90614();
LiquidCrystal lcd(4,6,10,11,12,13);
void setup()
{
    mlx.begin();
    lcd.begin(16,2);
    lcd.clear();
}
void loop()
    String line1 = "",
          line2 = "";
    line1 = String(mlx.readObjectTempC(), 1);
    line1 += "[C]";
    line2 = "Ambient: ";
    line2 += String(mlx.readAmbientTempC(), 1);
    line2 += "[C]";
    lcd.clear();
    lcd.setCursor(0,0);
    lcd.print(line1);
    lcd.setCursor(0,1);
    lcd.print(line2);
    delay(3000);
}
</syntaxhighlight>
<br><br>
<br><br>


__FORCETOC__
__FORCETOC__
[[カテゴリ:Arduino]]
[[カテゴリ:Arduino]]