2012年3月3日土曜日

MSP430 温度計

Texas Instruments MSP430 を使って温度計を作成しました。


LaunchPadで実装されているデモプログラムに手を入ただけのものですが、結構よい暇潰しになりました。
1年前は、デモプログラムの通信機能を中心に色々試してみましたが、今回はADCについて機能を検証しました。

1.ADC10コンフィグレーション
 1)入力レンジの設定
   ・GND~Vcc  0V~3.3V
   ・GND~Vref  0V~(1.5V or 2.5V) ※デモプログラム設定 
   ・その他
 2)チャネル 選択 
   ・A0~A7
   ・Temperature Sensor    ※デモプログラム設定
 3)参照電圧(Vref)選択 Reference-generator voltage
   ・1.5V           ※デフォルト
   ・2.5V
 4)参照電圧生成 Reference-generator
 5)サンプリング周期設定 Sample and hold time
   64xADC10CLKs 
 6)割り込み許可 Interrupt enable
 7)ADC ON

2.ADC分解能
 ADC分解能 = 1500mv ÷ 1024(10bit) = 1.4648mv/div

3.温度計算(内蔵温度センサ)
   MSP430G2x52に内蔵された温度センサを利用した温度計
   (ADC10 チャネル選択で温度センサ指定)
   ・温度センサ仕様  3.55mV/℃

   ADC値(1単位)あたりの温度= 1.4648mv/div ÷ 3.55mV/℃ = 0.41263℃

   0℃でのADC値 = 673

   計測温度 = (ADC値 - 673) × 0.41263

4.温度計算(外装温度センサ LM61BIZ)
  ADC10のチャネル A0に 温度センサを繋げた温度計
   ・温度センサ仕様 0℃での出力電圧 600mV、  10mV/℃

   ADC値(1単位)あたりの温度. = 0.14648 ℃/div.

   0℃でのADC値 = 600mV÷1.46484375mv/div = 409.6

   計測温度(℃)=(ADC10の出力値 - 409.6)×0.14648

5.その他

 ADCの出力値はサンプリング毎に結構ぶれるので、サンプルプログラムでは8回のサンプリングの移動平均をとり、この値から温度計算を行っています。

 今回の温度表示は、MSP430内蔵温度センサと外装温度センサでは、最大で1.5℃のずれがありました。また、部屋にあった寒暖計とも2~5℃ずれていました。

0 件のコメント:

コメントを投稿