www.kn34pc.com
https://www.kn34pc.com/forums/

вътрешен температурен датчик
https://www.kn34pc.com/forums/viewtopic.php?f=74&t=1238
Страница 1 от 1

Автор:  LZ2WSG [ 28 Дек 2025, 13:00 ]
Заглавие:  вътрешен температурен датчик

Запазил съм си кода като тест.
Измерването дава "криви" стойности – температурата зависи от натоварването на микроконтролера и самозагряването.
Приложение: напр. за анализ на състоянието на устройството "под капака" или друго не прецизно измерване.

offset: разлика между измерената стойност и температура от калибриран термометър, да се въведе напр. след 5-10 минути работа
Ако float не бива да се използва, напр. умножаваме по 100, с целочислени променливи и константи.

Код за потвърждение:
void setup() {
  Serial.begin(9600);

  ADMUX = (1 << REFS1) | (1 << REFS0) | (1 << MUX3);
  ADCSRA |= (1 << ADEN);
}

void loop() {
  ADCSRA |= (1 << ADSC);
  while (ADCSRA & (1 << ADSC));

  int raw = ADCW;

  float temperature = (raw - 324.31) / 1.22;

  float offset = 4.9;
  temperature = temperature + offset;

  Serial.print("Raw ADC: ");
  Serial.print(raw);
  Serial.print("  Temp: ");
  Serial.print(temperature);
  Serial.println(" oC");

  delay(1000);
}

Страница 1 от 1 Часовете са според зоната UTC + 2 часа [ DST ]
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/