• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Нужна помощь АЦП уплывает вверх

DTsurkov

New member
Всем добрый день!

Собрал на esp12e метеостанцию. Питание от lipo с зарядкой от солнца. Единственный АЦП вход esp12e используется для контроля заряда аккумулятора. Схема работы такая: модуль проснулся из deep sleep, подключился к wi-fi, опросил датчики, передал всё с помощью get запроса мне на сервер и снова уснул на 8 минут. За полгода работы заметил, что значения АЦП начинает сильно уплывать вверх.
У меня стоит делитель, который делит в ~5 раз напряжение акб для входа на АЦП. Для расчёта напряжения использую линейную аппроксимацию (построил по 20 точкам с помощью мультиметра).
Так вот. На старте работы полностью заряженая акб даёт 4.21 вольта. Что отлично измеряет АЦП. Далее я вижу по данным станции что в пасмурную погоду (и ночью) акб разряжается, днём под солнцем опять заряжается — всё хорошо. Но вот спустя несколько месяцев максимальное значение напряжения АЦП уже показывает не 4.21В (что ограничивается специальной схемой, к слову), а 4.8В!

В итоге за полгода работы АЦП стал завышать значение где-то на 0.5В. От чего это может происходить?

Да, код написан в arduino ide.
 

Jury_78

New member
готовый модуль для зарядки на TP4056 с ali за 20р =)

Да и не может всё равно быть 4.8В на батарейке. К тому же, я доставал станцию из за окна, смотрел мультиметром, на батарейке было 4.1...
А делитель проверяли? Как вообще с защитой от влажности?
 

rst

Member
делитель — два резистора. Не думаю, что с ними могло что-то случиться, но проверю вечером.
За полгода что произошло? Точно! - наступила весна! ;)
Ваша метеостанция случайно не на солнечной стороне висит? :eek:
ещё и комплектация с али....
 

pvvx

Активный участник сообщества
За полгода что произошло? Точно! - наступила весна! ;)
Ваша метеостанция случайно не на солнечной стороне висит? :eek:
ещё и комплектация с али....
В Arduino идут не сырые данные с ADC, а с пересчетом. Коэф. записан отдельно и в писаниях Espressif указано, как их откалибровать и где он хранится...
Влажность тоже надо учитывать, но наверно там не совсем всё тяп-ляп и в кислотном флюсе... :)
 

rst

Member
В Arduino идут не сырые данные с ADC, а с пересчетом. Коэф. записан отдельно и в писаниях Espressif указано, как их откалибровать и где он хранится...
Я не о том совсем...
Температурный диапазон использованных компонентов почти наверняка - Commercial, т.е. - верхний температурный предел ==80 градусов (или около того). На солнце, да в закрытом корпусе без вентиляции может быть больше.

Да даже если говорить о температурной компенсации: ну и что что компенсируется АЦП внутри ESP, а внешние цепи (у автора там некий "делитель") кто-нить компенсировал? А температурную характеристику этого делителя - учёл?
А с температурной стабильностью источника опоры для АЦП всё в порядке?
 
Последнее редактирование:

pvvx

Активный участник сообщества
Я не о том совсем...
А как не крутите - разница в процентах выдает, что что-то не то в другом. Более походит на программный сбой/глюк или из-за влажности (отвалилось/окислилось). Уход -22% и +14% - смотря от чего брать %...
Для программного глюка в этом деле (на ESP8266) больше вероятность - Данные в Flash перезаписываются при каждом старте, а сбойнуть в этот момент по питанию или ещё как SDK там может всегда (так оно коряво написано у Espressif). Калибровки переписываются, до дырки...
Далее, если брать вероятности - влажность и реакция с флюсом...
Потом уже остальное.
На +80С, если чип ESP8266 работает - то больше вероятность, что он уже не будет работать никогда. Выход чипа из строя из-за перегрева передатчика там част (судя по статистике форума и экспериментов). Тут есть прямая зависимость от типа модуля и версии SDK (проверка на перегрев вставлена в более поздних SDK, после попытки сертификации его Espressif). Как пример - ESP-01 при помещении в экран выходит на потребление в 1.5Вт. Это данный модуль рассеять от пятна в 5x5 мм не может и при внешних -20С -> температура кристалла уходит за +130С и наступает деградация (примесей)... Ну а при внешке +80С - сразу пробой :)
 
Последнее редактирование:

rst

Member
А как не крутите - разница в процентах выдает, что что-то не то в другом. Более походит на программный сбой/глюк или из-за влажности (отвалилось/окислилось). Уход -22% и +14% - смотря от чего брать %...
Я ничего не утверждаю и не пытаюсь гадать на кофейной гуще. Просто привёл одну из возможных причин автору для изучения.
А программный баг - он всегда возможен и, в зависимости от опыта разработчика, как правило имеет наибольшую вероятность.
И влажность - то же самое. Да что угодно, хоть даже: птички вернулись с зимовки и свили гнёздышко на девайсе автора и перегревают его :D
 

pvvx

Активный участник сообщества
Я ничего не утверждаю и не пытаюсь гадать на кофейной гуще. Просто привёл одну из возможных причин автору для изучения.
Это и есть гадание на кофейной гуще.
А программный баг - он всегда возможен и, в зависимости от опыта разработчика, как правило имеет наибольшую вероятность.
И влажность - то же самое. Да что угодно, хоть даже: птички вернулись с зимовки и свили гнёздышко на девайсе автора и перегревают его :D
У вас всё с весной повязано?
Тут только автор сможет раскрыть сикрет. Ставки будем делать? :)
 

DTsurkov

New member
Наконец нашёл время снять станцию из-за окна. Делителю хоть бы что. Делит верно =) Перезалил скетч — всё стало нормально. Вывод: беда самой платы контроллера. Скорее всего, как писали выше, программная — уплывают константы при постоянных рестартах. Появилась идея взять внешний ацп и через и2ц подключить. Так как датчики с и2ц нормально работают и не сбоят. А все расчёты вести на стороне сервера (куда станция гонит данные).

Внизу фотки платы станции. Делитель — те два резистора возле джампера.
 

Вложения

Nikitos210

New member
Наконец нашёл время снять станцию из-за окна. Делителю хоть бы что. Делит верно =) Перезалил скетч — всё стало нормально. Вывод: беда самой платы контроллера. Скорее всего, как писали выше, программная — уплывают константы при постоянных рестартах. Появилась идея взять внешний ацп и через и2ц подключить. Так как датчики с и2ц нормально работают и не сбоят. А все расчёты вести на стороне сервера (куда станция гонит данные).

Внизу фотки платы станции. Делитель — те два резистора возле джампера.
У esp8266 плавает АЦП и не только
из-за температуры окружающей среды особенно
это подробно описано в даташите
используйте 16 битный i2c ads1115 например
 

enjoynering

Well-known member
Калибровки переписываются, до дырки...
чтоб этого не происходило есть команда:

Код:
  WiFi.persistent(false);   //disable saving wifi config into SDK flash area
 
Последнее редактирование:

nikolz

Well-known member
А у меня совсем глупый вопрос. Зачем измерять напряжение при заряде батареи через TP4056 .
Какой смысл в этом измерении? проверяете исправность TP4056?
Измеряйте внутреннее напряжение питание ESP. ESP работает без проблем в диапазоне от 2.6 до 3.6 вольт (использовал даже до 4.2)
смысл измерения есть если не включать WIFI при низком напряжении питании (это 2.3 вольта)
 
Сверху Снизу