2024/10/27(Sun) [長年日記]
[hard] Autogauge水温センサーの温度係数
本物のAutogauge製かどうか不明だが、Amazonで売られているオートゲージ パーツ 水温計 油温計 交換センサー 348 430 458 548 512 用 【208OWTS】を購入して抵抗係数を求めてみた。参考にしたのは、サーミスタの温度-抵抗変換式。もとは、秋月電子のページにあったものを掲載しているらしいが。
℃での抵抗値がのサーミスタにおける、温度℃の抵抗値は、以下で算出できる。
℃のときの電圧が実測、だったので、あと数点の実測値をもとに、連立方程式として係数、を求めた。また、Vの値を求めるのに、こちらも参考にした。
そして、出てきたarduino版の計算プログラムが以下になる。ADCとして、MCP3004を使って、ch0に入力している。
#include "MCP_ADC.h"
float Vref = 3.82 ;
int THERM_B = 3395;
int THERM_R0 = 9290;
float THERM_T0 = 273.15 + 27.0;
MCP3004 mcp1;
SPISettings settings( 1000000 , MSBFIRST , SPI_MODE0 );
void setup() {
Serial.begin(115200);
SPI.begin();
mcp1.begin(10);
}
void loop(){
uint16_t val = mcp1.read(0);
float volts0 = val * Vref / 1024;
float rr1 = 9320 / volts0 - (float)2000.0;
float t = 1.0 / (log( rr1/(float)THERM_R0 ) / (float)THERM_B + 1.0/(float)THERM_T0 );
float temp = t - 273.15;
Serial.println("volts0 = " + String(volts0, 3) + " V");
Serial.println("rr1 " + String(rr1, 3) + " C");
Serial.println("t " + String(t, 3) + " C");
Serial.println("CH0 " + String(temp, 3) + " C");
Serial.println();
delay(1000);
}
[ツッコミを入れる]


