目次8章.機能が豊富なPICを使う(PIC16F88)>(4)温度センサ(LM35D)を使う

温度センサ(LM35D)を使う

更新日2008.3.9

LM35Dと言う、温度に比例した電圧を出力する温度センサを使って見ます。

LM35Dについて
LM35Dは、温度に比例した電圧を出力する温度センサICです。

今回使用したTO-92パッケージ。
小信号トランジスタと同じ形状です。

摂氏0度から100度までを測定でき、下のグラフのように温度に比例した電圧を出力します。
mV単位の電圧計で測った電圧を1/10すれば温度を知ることができます。

今回は手元にあったLM35Dを使いましたが、LM35シリーズには以下の種類があります。

種類測定温度
LM35,LM35A−55〜150度C
LM35C,LM35CA−40〜110度C
LM35D0〜100度C

実験回路
RA4(AD4)をアナログ入力とし、温度センサ(LM35D)を接続して電圧を測定します。

RA3はA/D変換の基準電圧(Vref+)とし、可変抵抗で1.023〜1.024Vとなるように調整します。
この方法は簡易的で、電源電圧が変動する場合には使えません。
後のページでチャンとした基準電圧の作り方に触れる予定です。

PORTBの8ピンとRA0−2には7セグメントLEDを接続します。
7セグメントLEDの使い方については、こちらを参考にして下さい。

クロックは、内部クロックの8MHzを使用、OSC1/2はI/Oとして使用できるようにしました。
同様に、MCLRもI/Oとして使用できるようにプログラムで設定します。

ブレッドボードに組み込んだ状態

プログラムの仕様

RA4(AN4)に接続したLM35Dの電圧をA/D変換し、結果を3個の7セグメントLEDに16進数で表示させます。

前のページ(A/D変換を使う)とほとんど同じですので説明は省略します。

変更点は、以下の通りです。
・A/D変換の入力をAN3からAN4に変更
・A/D変換の基準電圧(+)をVddからRA3/Vref+に変更
・A/D変換の結果を平均化するように変更
・クロックを20MHzの外部クロックから内部の8MHzに変更
・OSC1/2はI/Oとして使用できるようにした
・MCLRもI/Oとして使用できるようにした
プログラム全体
プログラムはこちらです。
メモ帳などのテキストエディタに取り込んで、MPLABでアセンブル&PICライタでPICに書き込んで動かしてみて下さい。

7セグメントLEDに16進表示された結果を10進変換して1/10するとその時の温度になります。

(14×16+8)/10=23.2

この温度は23.2度です。

こんな面倒な変換はしたくない、と言う方のために次のページで「温度計」に仕立てようと思います。