| (同じ利用者による、間の4版が非表示) | |||
| 1行目: | 1行目: | ||
== 概要 == | == 概要 == | ||
ここでは、温度センサとして人気のあるTMP36とNTCサーミスタ(MF52-103)の使用方法を記載する。<br> | ここでは、温度センサとして人気のあるTMP36とNTCサーミスタ(MF52-103)の使用方法を記載する。<br> | ||
また、赤外線温度センサモジュールGY-906についても併せて記載する。<br> | |||
<br><br> | <br><br> | ||
== | == 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> | ||
< | <syntaxhighlight lang="c++"> | ||
#include <LiquidCrystal_I2C.h> | #include <LiquidCrystal_I2C.h> | ||
| 67行目: | 68行目: | ||
delay(3000); | delay(3000); | ||
} | } | ||
</ | </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]] | ||