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をかけると、摂氏になります。

前へ

Arduino MKR WiFi 1010をデータ入力に使う⑥アナログ入力

次へ

Arduino MKR WiFi 1010をデータ入力に使う⑧I2C温湿度センサHTS221