GyverNTC и ADS1115

selan61

✩✩✩✩✩✩✩
18 Сен 2023
5
1
Добрый день. Подскажите, как можно запустить GyverNTC с внешним АЦП ADS1115. Для него применяю Adafruit_ADS1X15.h. Нужно для подключения к ESP8266. В GyverNTC для расчетов используется 5В. А можно использовать 3.3В?
И в файле "GyverNTC.h библиотеки что за переменная "сигнал АЦП" и почему она float analog?
// сигнал АЦП, (R резистора / R термистора), B термистора, t термистора, разрешение АЦП
float NTC_compute(float analog, float baseDiv, uint16_t B, uint8_t t, uint8_t res) {
 
Изменено:

viktor1703

★★★✩✩✩✩
9 Дек 2021
649
152
что за переменная "сигнал АЦП" и почему она float analog?
Вы с какой целью интересуетесь? Разобраться что да как или не работает что-то? Что бы получить переменную analog вы сначала должны прочитать аналоговый вход, к которому подключен терморезистор, и уже это значение передать в функцию NTC_compute.
как можно запустить GyverNTC с внешним АЦП ADS1115
напрямую никак. Но вы можете сначала измерить аналоговый сигнал с помощью внешнего АЦП, а после проделать действия из предложения выше.
 

selan61

✩✩✩✩✩✩✩
18 Сен 2023
5
1
Вы с какой целью интересуетесь?
Что бы подключить к ESP8266 4 терморезистора NTC 10k 3950. Кроме как через ADS1115 других вариантов нет.
переменную analog вы сначала должны прочитать аналоговый вход
Вопрос в том был, что отсчеты аналогового входа имеют размерность uint16_t , но никак не float. Это и смутило.
. Но вы можете сначала измерить аналоговый сигнал с помощью внешнего АЦП, а после проделать действия из предложения выше.
Я конечно это сделал и успешно через float NTC_compute(float analog, float baseDiv, uint16_t B, uint8_t t, uint8_t res) получил температуру.
Но данный прямой расчет работает только с разрядностью АЦП 10. А ADS1115 имеет 16, или 12 разрядов. Так вот с ними прямой расчет не работает. Выдает NAN. Возникает дополнительный вопрос, зачем в этой формуле разрядность АЦП, если при другой формула не считает.
 

viktor1703

★★★✩✩✩✩
9 Дек 2021
649
152
ADS1115 имеет 16, или 12 разрядов. Так вот с ними прямой расчет не работает. Выдает NAN. Возникает дополнительный вопрос, зачем в этой формуле разрядность АЦП, если при другой формула не считает.
дело в том, что AlexGyver писал библиотеку под 10-ти разрядный АЦП 8-ми битной AtMega. Если вас не устраивает работа данной библиотеки, то у вас есть несколько путей решения:
- Написать автору библиотеки о данной проблеме и попросить внести соответствующие правки;
- Не использовать данную библиотеку, а производить расчеты без неё, тем более, что там нет каких-либо заумных специфических расчетов, обычное уравнение Стейнхарта-Харта;
- написать свою библиотеку под свои нужды.