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度に変化しました。指先は少し冷えてるんでしょうかね。:-)