Термистор не работает
Подключение всего, как показано на рисунке, термистор показывает, что я сгорю:
Код прост:
#define analogPin A0 //термистор подключается к
#define beta 4090
#define resistance 10
void setup()
{
Serial.begin(9600);
}
void loop()
{
//считываем значение термистора
long a =analogRead(analogPin);
//формула расчета температуры
float tempC = beta /(log((1025.0 * 10 / a - 10) / 10) + beta / 298.0) - 273.0;
float tempF = 1.8*tempC + 32.0;
Serial.print("Temp: ");
Serial.print(tempC);
Serial.print(" C");
Serial.print("Fahr: ");
Serial.print(tempF);
Serial.print(" F");
delay(200); //ждем 100 миллисекунд
}
У меня неправильный термистор или неправильный код?
@Ver Nick, 👍1
Обсуждение1 ответ
Лучший ответ:
▲ 3
Последовательное сопротивление составляет 220 Ом (красный, красный, коричневый).
Вам также необходимо учесть сопротивление термистора при 25 °C. Предположим, что оно составляет 10 кОм. Следовательно, выбор последовательного сопротивления 10 кОм облегчит расчеты.
int THERMISTORNOMINAL = 10000;
int SERIESRESISTOR = 10000;
int TEMPERATURENOMINAL = 25;
a = 1023 / a - 1;
a = SERIESRESISTOR / a;
tempC = a / THERMISTORNOMINAL; // (R/Ro)
tempC = log(tempC); // Ин(Р/Ро)
tempC /= Beta; // 1/B * ln(R/Ro)
tempC += 1.0 / (TEMPERATURENOMINAL + 273.15); // + (1/To)
tempC = 1.0 / steinhart; // Инвертировать
tempC -= 273.15; // конвертировать в C
,
@Jonathan Pereira
Не могли бы вы сделать полностью рабочий набросок? Этот фрагмент кода сбивает с толку, поскольку не показывает, являются ли переменные числом с плавающей точкой или целым числом. Добавьте также ссылку на источник для вашего расчета., @Jot
Я использовал 10К. Изображение неверное., @Ver Nick
Смотрите также:
- Вывод данных , ds18b20 , lcd1602 , yl-69, dht11
- Как устранить сообщение об ошибке "assignment of function 'void digitalWrite (uint8_t, uint_8)"?
- Получить массив символов с помощью модуля SIM900
- Считывание данных нескольких датчиков из текстового файла, расположенного на SD-карте в Arduino/ESP32
- Чтение двоичного файла на SD-карте
- Проблемы с Serial.read()
- Как запрограммировать 2 ультразвуковых датчика, один на серводвигателе и один прикрепленный на передней стороне автомобиля?
- Занимают ли комментарии место в скомпилированном скетче C++? Ардуино / узел микроконтроллера
Волшебников тут нет. Какую модель/тип термистора вы подключили? Каковы параметры термистора?, @smajli