「マイコンで気象観測」其の1 温度値をシリアル通信で送る

 温度、湿度、大気圧の中で、マイコンで一番簡単に得られるのが温度です。取り敢えず、温度値をシリアル通信で開発環境のパソコンで表示させるまでを行います。
 温度センサーで最も手軽で安いのは、センサーの電圧出力をマイコンのアナログ入力でA/D変換する方法です。使用したのはLM61BIZという\200/4個なセンサーです。電源、GND、電圧出力に線を繋ぎ、電圧出力はA0ポートに入れてます。


 プログラム部分が以下。必要なのは、14番(A0)ポートのモード指定と補正計算。LM61BIZは温度=(センサー電圧出力(mV)-600)/10という式で電圧値を温度に変換します。analogRead(14)は3300mVで1023になる(10bit分解能)ので、先ずはanalogRead(14)の値を電圧値にする必要があります。此処ではmap関数で0-1023の範囲を、0-3300mVの範囲に変換しています。delay関数で1000mSec止めることで、1秒毎にシリアル出力を行っています。
void setup() {
Serial.begin(9600);
pinMode(14,INPUT);
analogReference(DEFAULT);
}
void loop() {
Serial.println(analogRead(14));
int tv;
tv=map(analogRead(14),0,1023,0,3300);
Serial.println((tv-600)/10);
delay(1000);
} 

 こちらがパソコンでのシリアル受信。274がanalogRead(14)の値で、28が温度値です。