AD変換を利用した温度計

AD変換機能を利用して、温度センサLM35の出力電圧を読み取り、文字LCDにAD変換値と温度を表示するプログラムを示します。文字LCDの利用法に関しては、「文字LCDの利用」、AD変換の基本に関しては「AD変換の利用」を参照してください。

PIC24F-MOD-GA002Uの接続コネクタCN6は、温度センサLM35のTO-92パッケージを直接接続できるピン配置になっています。接続コネクタCN6に温度センサLM35を取り付けると、その出力電圧は、アナログポートAN10で読み取ることができます。

温度センサLM35の出力は、1度あたり10mVリニアに増加する仕様となっており、電圧から温度への変換は単純な計算で行うことができます。

温度を正確に得るためには、温度センサLM35の出力電圧値を正確に読み取る必要があります。ここでは、PIC24F-MOD-GA002Uに搭載可能な電圧リファレンスMCP1525を基準電圧として参照し、温度センサLM35の出力電圧値を正確に読み取れるようにしてみました。

adctemp.c: AD変換を利用した温度計



#include "picsys24.h" void setup() { CLCD_init(RB(4), RB(5), RB(0), RB(1), RB(2), RB(3)) ; analogReference(EXTERNAL) ; // 電圧リファレンスMCP1525を利用 } unsigned int v ; char buf[20] ; void loop() { delayMilliseconds(500) ; /* 温度センサの出力電圧のAD変換値の読み取り1行目に表示 */ v = analogRead(AN(10)) ; ltos(buf, v, 10) ; CLCD_pos(0, 0) ; CLCD_puts(" ") ; CLCD_pos(0, 0) ; CLCD_puts(buf) ; /* AD変換値を温度に変換し2行目に表示 */ v = v * 250 / 1023 ; ltos(buf, v, 10) ; CLCD_pos(1, 0) ; CLCD_puts(" ") ; CLCD_pos(1, 0) ; CLCD_puts(buf) ; }

プログラムを動かしてみると、AD変換の生の出力値は100前後、それから算出された温度は24度と出力されています。

ここで温度センサLM35を指でつまむと、AD変換の出力値はすぐに増加し始め、生の出力値は118前後、温度は28度に変化しました。指先は少し冷えてるんでしょうかね。:-)