Arduino MKR WiFi 1010をデータ入力に使う⑦アナログ入力-温度センサLM35/MCP9700
温度センサは、次のようにいろいろなインターフェースを持っています。
LM35DZは、アナログ電圧出力のデバイスです。
●LM35DZのおもなスペック
- 電源電圧;4~20V
- 消費電流;約133uA
- 出力電流;10mA
- 精度(分解能);0.5℃(25℃時)データシートからは、typical値は-50~150℃で±0.2℃の範囲に読み取れる
- 1℃あたり10mV。0℃のときは0V
●接続
Arduino MKR WiFi 1010のI/Oは、0~3.3Vの入力なので、LM35DZの電源は3.3VのVcc端子とGNDにつなぎます。出力VoutはA4につなぎました。
0℃のとき0.0Vで、33℃のときに3.3Vです。つまり、33℃以上は測れません。出力に抵抗で分圧回路で1/2にすれば、66℃まで測れます。
また、零下は、このままでは測れません。
●プログラム
clear
a = arduino('COM15', 'MKR1010');
voltage = readVoltage(a,'A4')
temperature = voltage * 100.0
A4ポートを読んできた電圧に100をかけると、摂氏になります。
●温度センサMCP9700
3.3Vの電源をつなぐだけで、零下も測れるのがMCP9700です。
LM35DZ | MCP9700 | |
---|---|---|
測定温度範囲[℃] | -55~150 | -40~125 |
動作電圧[V] | 4~30 | 2.3~5.5 |
温度係数 | +10.0mV/℃ | +10.0mV/℃ |
確度[℃] | ±0.6 | ±4(室温付近はもっと小さい) |
MCP9700の温度と出力電圧の関係は、次のようになります。0.5Vのオフセットがついていると考えます。
温度[℃] | -20 | 0 | 25 | 50 |
---|---|---|---|---|
電圧[mV] | 300 | 500 | 750 | 1000 |
●接続
MCP9700の電源は3.3VのVcc端子とGNDにつなぎます。出力VoutはA4につなぎました。
●プログラム
clear
a = arduino('COM15', 'MKR1010');
voltage = readVoltage(a,'A4')
temperature = (voltage - 0.5) * 100.0
A4ポートを読んできた電圧から0.5を引き、100をかけると、摂氏になります。