2026年1月25日日曜日

2ch温度ロガーの製作(11;校正)

校正というのか、温度を無理やりオフセットして手元にあるシンワの温度計と同じになるようにしました。写真はすべて同じ19.4℃を表示していますが偶々です。0.1~0.2℃位は動きます。そもそも単純にオフセットしてよいものなのか? 温度によって変わりそうな気もするけど。そこまで精度を求めるものでもないので、これで完了とします。


センサを繋いだポートのAD変換、キャリブレーション値による補正変換、無理やりの校正は以下のような感じです。補正変換は100回測定の平均値をとってから1回でよいかも。
float temp_sensing(const int sensor) {
  float offset;

  uint32_t voltage_mV = 0;
  const int N = 100;
  for ( int i = 0 ; i < N ; i++ ) {
    int adcRaw = analogRead(sensor);
    // ADC値 → 電圧(mV)(補正済み)
    voltage_mV += esp_adc_cal_raw_to_voltage(adcRaw, &adc_chars);
  }

  // 電圧 → 温度(℃)
  float temperatureC = ((float)voltage_mV/N - 500.0) / 10.0;

  // 温度センサ毎の校正
  if (sensor==SENSOR_PIN1) offset = -0.9;
  else offset = -1.2;

  return temperatureC + offset;
}

需要があるか不明ですが、回路図とスケッチ全体はコードを少しキレイにしてから公開します。

0 件のコメント:

コメントを投稿