// Настройки
const int thermistorPin = A0; // Аналоговый пин для терморезистора
const float SERIES_RESISTOR = 200000.0; // Номинальное сопротивление резистора (200 кОм)
const float NOMINAL_RESISTANCE = 200000.0; // Номинальное сопротивление термистора при 25°C (200 кОм)
const float NOMINAL_TEMPERATURE = 25.0; // Температура при номинальном сопротивлении (25°C)
const float BETA_COEFFICIENT = 3950.0; // Бета-коэффициент термистора
const float ADC_MAX = 1023.0; // Максимальное значение АЦП Arduino
void setup() {
Serial.begin(9600); // Инициализация последовательного порта
Serial.println("Измерение температуры начато...");
}
void loop() {
int analogValue = analogRead(thermistorPin); // Чтение значения с АЦП
float voltage = (analogValue / ADC_MAX) * 5.0; // Преобразование в напряжение
// Вычисление сопротивления термистора
float thermistorResistance = SERIES_RESISTOR / ((5.0 / voltage) - 1.0);
// Применение уравнения Штейнгарта-Харта
float steinhart;
steinhart = thermistorResistance / NOMINAL_RESISTANCE; // R / R25
steinhart = log(steinhart); // ln(R / R25)
steinhart /= BETA_COEFFICIENT; // 1/B * ln(R / R25)
steinhart += 1.0 / (NOMINAL_TEMPERATURE + 273.15); // + (1 / T25)
steinhart = 1.0 / steinhart; // Инвертируем
steinhart -= 273.15; // Перевод в Цельсии
// Вывод температуры в последовательный монитор
Serial.print("Температура: ");
Serial.print(steinhart);
Serial.println(" °C");
delay(1000); // Задержка 1 секунда между измерениями
}