mcp9700 Linear Active Thermistor

I have tested several thermistors Microchip mcp9700 on mbed. Four mcp9700s are connected to four analog ports and converted to Celsius using the following formula. T = 100 x (3.3 x AnalogIn - 0.5)

Here is the actual readings and moving average of 10 seconds. /media/uploads/xyzsaito/mcp9700_graph.jpg

Following characteristics are noted for future application. (I'm building a battery charger, and Mcp9700 will be used to monitor delta-T.)

1. Readings vary with a lot of noise. You need to take the average to smooth it out.

2. Ambient temperature fluctuates. You can't expect it to be very stable.

3. Each mcp9700 has its own characteristics. Actually, I tossed out one that showed constantly more than 1 degree Celsius higher.

Data are taken by a terminal software in CVS format. The moving averages and the graph are made on Excel.

秋月で買ったサーミスタ mcp9700を試してみました(8本で200円)。グラフは温度を1秒ごとに測定(そのままと、10秒移動平均)したものです。アナログポートの値から換算。T = 100 x (3.3 x AnalogIn - 0.5)

これをニッケル水素充電池の充電器の温度センサーにしようとテストしていたものですが、実際に使う際には以下のようなことに注意が必要と思いました。

1.測定値そのものはノイズが多く、10秒くらい平均を取る必要がある。

2. 室温自体が変動する。同じと仮定できない。

3. 素子のばらつきが結構ある。1つ1度以上ずれているものがあり破棄した。

データはターミナルへCVSで書き出し、移動平均計算とグラフはExcel上で行いました。たったこれだけのことですが、mbed購入わずか2日目、ものの数十分で、最初にLEDを点滅させたのと同じくらいの簡単さであっという間に出来てしまう。mbedは本当に使い易い。

  1. include "mbed.h"

AnalogIn temp1(p15);

AnalogIn temp2(p16);

AnalogIn temp3(p17);

AnalogIn temp4(p18);

int main() {

while (1) {

printf("%f, ", (temp1.read()*3.3-.5)*100);

wait(0.1);

printf("%f, ", (temp2.read()*3.3-.5)*100);

wait(0.1);

printf("%f, ", (temp3.read()*3.3-.5)*100);

wait(0.1);

printf("%f\n", (temp4.read()*3.3-.5)*100);

wait(0.7);

}

}


Please log in to post comments.