目次
温度測定を簡単に実現できる温度センサIC
温度を検出する電子部品には様々なものがありますが、今回使用するセンサーは「温度センサIC」です。
センサなのにIC?と思うかもしれません。ほとんどのセンサ類は抵抗やコンデンサをセンサに応用したものなので、受動部品的な特性を持ちますが、温度センサICはサーミスタなどが持つ「クセ」をICとしてワンパッケージにしたことで扱いやすくなっています。
下の表は温度センサICの主な特徴や特性です。
- 温度と出力が線型(リニア)の特性を持つ
- スケーリングや補正抵抗が不要
- トランジスタと共通のパッケージで使いやすい
直接繋げて、すぐに使える温度センサIC
早速、温度センサICを使って温度を測定してみます。
今回、マイコンボードはArduino Unoで、温度センサにはLM35DZを使用します。どちらもお手軽に使用できる電子部品で温度センサICのLM35DZは秋月電子での購入できます。
温度センサICの良い所は、センサ装着に必要な部品がパッケージ化されているのでマイコンに直接つないですぐに動かせる点です。
センサIC以外のセンサを使う場合には、抵抗やコンデンサだオペアンプなどゴテゴテと回路を足していく必要があるんですが、センサICではそれらが不要で部品点数や接続の手間を減らせる大きなメリットがあります。
温度センサの電圧値から温度を読み取るスケッチ
このスケッチはArduinoのANALOG INのA0ポートに接続したときのスケッチです。ポートを変えたり電圧を5V以外の電源を使う場合は1-2行目の数値を変更してください。
スケッチではanalogReadでA0の値を読み込んでいますが、室温(20℃)を測定しているとしてLM35DZの出力電圧200mVがそのまま”0.2″として変数valに入るわけではありません、Arduinoのアナログポートの分解能は10bitなので、0から1023の整数値が代入されます。
電源が5Vちょうどの場合は、読み取ったアナログポートの値を5倍してから1024で割ると入力電圧の換算値になります。今回使用しているLM35DZは10mV/℃なので、更に100倍すれば測定温度になります。ArduinoをUSB接続で動作させている場合は5V以下になることが多いので、事前にテスターなどで5Vラインの電圧を測定してスケッチを変えた方がいいかもしれません。
もっと細かく測定したい場合はアンプを追加
ArduinoのA/Dコンバータの分解能は1単位が約5mVなので、LM35DZの10mV/℃では0.5℃刻みでしか測定ができません。0.5℃よりも細かく測定したい場合はアンプなどを追加してLM35DZの出力を増幅してやれば小数点以下まで測定できるようになります。
LM35DZの最大測定温度は150℃で、この時の最大出力電圧は1.5Vとなるので、これを5V目いっぱいまで出力できるよう3.33倍のアンプを挟めば、0.15℃刻みまで測定できるようになります。
温度を更に細かく測定する場合は、アンプの増幅率を上げる(5Vを超えると測定温度範囲が狭くなります)、高分解能のADコンバータを使うなどが必要になります。
手軽に使える温度センサICだが、応答性には注意
温度センサICはプラスチックモールド構造のため、温度の変化に対する応答性はあまり良くありません。
摂氏温度に校正されていて、リニア(直線)の 温度変化係数 を持っている温度センサICはとても扱いやすい電子部品ですが、万能な温度センサではありません。使用目的によっては別の温度センサを使う必要があります。
例えば、急激な温度変化が発生するアプリケーションなどには応答時間に優れるサーミスタ、より確度が高い温度測定にはRTDなど、実際に電子回路を構成する場合には適したセンサを活用しましょう。
手軽に使えてソフトで対応しやすい温度センサIC
温度センサICの最大の利点は、接続するだけで使用できる点と、センサICを変更してもほとんどの場合でソフト側で対処ができる点です。
本記事で紹介しているLM35DZは現在も秋月電子で入手可能ですが、残念ながらディスコン(製造終了)となっており、継続入手に難のある部品となってしまいました。そのため、秋月電子で完売した段階で別の温度センサICに変えなければいけません。
温度センサICの出力特性は基本的にリニア(線型)で、スケッチの部分の数式を変えてやれば、比較的簡単に対応する事ができます。これがサーミスタであれば非線形特性を温度換算するためのテーブルや回路の変更なども加わり大きな変更となるので、温度センサICは部品変更しやすいセンサーとも言えます。