Требуется помощь в подключении термистора NTC к esp 32

Геннадий П

★★★★★★✩
14 Апр 2021
1,844
593
44
@gidiara666, Зачем 4 операционника, когда достаточно одного в режиме дифференциального измерения?
Смысл подобного разового измерения нескольких значений с последующим усреднением в том чтобы увеличить виртуальную разрядность. Т.е. при АЦП в 10 бит, двух замерах значение будет аналогично 11-битному АЦП, при 4 замера - 12-битному, и т.д. Это довольно распространенная практика, если есть время на дополнительные измерения.
 
  • Лойс +1
Реакции: gidiara666

gidiara666

★✩✩✩✩✩✩
5 Май 2023
42
11
Нафига?? Температура- инерционный параметр. В любой промышленной системе измерение температуры проводится в самом критическом случае каждые 5 секунд.
Схема для 4-х проводной системы (4-х, это которая не трехпроводная!). Кстати, никогда за 25 лет работы по автоматизации не встречал 4-х проводную :).
1698603500030.png
 

Геннадий П

★★★★★★✩
14 Апр 2021
1,844
593
44
Схема для 4-х проводной системы
В которой DA1.1 работает в качестве источника тока.
DA1.3 создает на точке 2 и 4 термосопротивления нулевой потенциал.
DA1.4 просто работает в качестве буферного усилителя с регулируемым коэффициентом усиления.
DA1.2 делает основную работу.
В итоге, все это нагромождение нужно только если использовать аналоговое оборудование.
Для цифровой обработки, где с легкостью можно компенсировать значения можно обойтись одним диф.усилителем с одним стабилизированным источником питания (или тока, если нужна бОльшая точность). Или поставить что то типа ADS1220.
 
Изменено:
  • Лойс +1
Реакции: poty

PavelStrike

✩✩✩✩✩✩✩
16 Окт 2023
28
2
Оформи код соответствующим тэгом
Проблему с точностью показаний удалось решить с помощью конденсатора установленного параллельно датчика термистора(Возможно ком-нибудь пригодится инфа), судя по датчику BME 280 неточность составила 0,2градуса при разбросе температуры от 24 гр до 38гр и то думаю решится с помощью более точной настройки по сопротивлению и тд
датчик и резистор на 10 ком
код
#include <GyverNTC.h>
GyverNTC therm(34, 10000, 3950, 23, 10000, 12);

void setup() {
Serial.begin(9600);

}

void loop() {
Serial.println(therm.getTempAverage());

}
 

Вложения