Скрыть объявление
На нашем форуме недоступен просмотр изображений для неавторизованных пользователей. Если Вы уже зарегистрированы на нашем форуме, то можете войти. Если у Вас еще нет аккаунта, мы будем рады, если Вы к нам присоединитесь. Зарегистрироваться Вы можете здесь.

Работа с ADC esp8266

Тема в разделе "Общие вопросы по esp8266", создана пользователем funny59, 16 мар 2018.

Метки:
  1. funny59

    funny59 Новичок

    Сообщения:
    16
    Симпатии:
    0
    Хочу с помощью ADC измерять заряд батареи. Как работать с ADC на esp в arduino ide? Какие особенности есть у ADC? Я правильно понял, что максимальное входное напряжение один вольт?
     
  2. enjoynering

    enjoynering Авторитетный участник сообщества

    Сообщения:
    445
    Симпатии:
    48
    Да один вольт. Поэтому нужен делитель на входе, иначе спалите порт. У популярных карт аля wimos он уже распаян. Также можно мерять напряжение питание с помощью внутренних цепей чипа (без делителя и не подключая ничего на вход 10-bit adc). Но тут возникает проблема при использовании все тех же wimos - их распаянный делитель вносит искажения в измеряемою величину.

    Команда считывает значение ADC (АЦП) с TOUT:

    Код (Text):
    1. analogRead(A0);
    возвращает значения (0 = 0V, 1023 = 1.0V)

    The ESP can also use the ADC to measure the supply voltage (VCC). To do this, include at the top of your sketch

    Код (Text):
    1. ADC_MODE(ADC_VCC);
    and use

    Код (Text):
    1. ESP.getVcc();
    to actually get the voltage. If you use it to read the supply voltage, you can’t connect anything else to the analog pin!!!
     
    Последнее редактирование: 16 мар 2018
  3. funny59

    funny59 Новичок

    Сообщения:
    16
    Симпатии:
    0
    А что делать со скачущими показаниями?
     
  4. andrik_zp

    andrik_zp Читатель

    Сообщения:
    84
    Симпатии:
    8
    Поставить на вход ацп конденсатор 0.1 мк, так-же можно делать несколько выборок и высчитывать среднее значение.
     
  5. nikolz

    nikolz Гуру

    Сообщения:
    3.870
    Симпатии:
    412
    вот результат измерения напряжения питания ESP через АЦП
    команда: vdd33 = readvdd33();
    это лог сервера на компе , на который ESP отсылаете по UDP свои данные.
    -----------------------------------
    Раскрыть Спойлер

    03/17/18 17:02:26 test;3181;29;39;2/56;0/190_3
    03/17/18 17:02:29 test;3182;29;39;2/55;0/190_3
    03/17/18 17:02:33 test;3181;29;39;2/56;0/189_3
    03/17/18 17:02:35 test;3182;29;39;2/56;0/191_3
    03/17/18 17:02:39 test;3182;29;39;2/57;0/192_3
    03/17/18 17:02:43 test;3181;29;39;2/56;0/189_3
    03/17/18 17:02:47 test;3181;29;39;2/56;0/189_3

    03/17/18 17:03:20 test;3178;29;39;2/56;0/189_3
    03/17/18 17:03:23 test;3178;29;39;2/56;0/189_3
    03/17/18 17:03:27 test;3179;29;39;2/56;0/202_3
    03/17/18 17:03:32 test;3181;29;39;2/54;0/189_3
    03/17/18 17:03:34 test;3181;29;39;2/57;0/189_3
    03/17/18 17:03:36 test;3181;29;39;2/56;0/190_3
    03/17/18 17:03:38 test;3181;29;39;2/56;0/189_3
    03/17/18 17:03:40 test;3182;29;39;2/87;0/189_3

    03/17/18 17:04:20 test;3181;29;39;2/56;0/189_3
    03/17/18 17:04:23 test;3181;29;39;2/56;0/191_3
    03/17/18 17:04:26 test;3182;29;39;2/55;0/191_3
    03/17/18 17:04:29 test;3182;29;39;2/56;0/189_3
    03/17/18 17:04:32 test;3182;29;39;2/56;0/189_3
    03/17/18 17:04:36 test;3182;29;39;2/56;0/190_3
    03/17/18 17:04:40 test;3182;29;39;2/56;0/189_3
    03/17/18 17:04:43 test;3181;29;39;2/55;0/190_3

    03/17/18 17:05:08 test;3182;29;39;2/56;0/197_3
    03/17/18 17:05:11 test;3181;29;39;2/56;0/189_3
    03/17/18 17:05:14 test;3181;29;39;2/56;0/189_3
    03/17/18 17:05:19 test;3178;29;39;2/56;0/189_3

    03/17/18 17:05:54 test;3181;29;39;2/56;0/190_3
    03/17/18 17:05:57 test;3182;29;39;2/56;0/192_3
    03/17/18 17:06:00 test;3182;29;39;2/55;0/189_3
    03/17/18 17:06:03 test;3181;29;39;2/56;0/190_3

    03/17/18 17:07:14 test;3182;29;39;2/137;0/191_3
    03/17/18 17:07:18 test;3181;29;39;2/56;0/190_3

    03/17/18 17:13:28 test;3186;29;39;2/55;0/190_3
    03/17/18 17:13:43 test;3186;29;39;2/55;0/189_3
    03/17/18 17:13:58 test;3185;29;39;2/55;0/189_3
    03/17/18 17:14:12 test;3185;29;39;2/55;0/189_3
    03/17/18 17:14:27 test;3187;29;39;2/59;0/189_3
    03/17/18 17:14:41 test;3186;29;39;2/55;0/190_3

    03/17/18 17:20:01 test;3186;29;39;2/55;0/194_3
    03/17/18 17:20:16 test;3186;29;39;2/55;0/190_3
    03/17/18 17:20:30 test;3187;29;39;2/57;0/190_3
    03/17/18 17:20:45 test;3188;29;39;2/55;0/189_3

    03/17/18 19:59:14 test;3186;29;39;2/59;0/191_3
    03/17/18 19:59:17 test;3187;29;39;2/55;0/189_3
    03/17/18 19:59:20 test;3186;29;39;2/55;0/190_3
    03/17/18 19:59:23 test;3186;29;39;2/55;0/189_3

    03/17/18 20:01:00 test;3187;29;39;2/55;0/189_3
    03/17/18 20:01:02 test;3186;29;39;2/55;0/189_3

    03/17/18 20:01:44 test;3186;29;39;2/56;0/189_3
    03/17/18 20:01:47 test;3187;29;39;2/55;0/189_3
    03/17/18 20:01:50 test;3186;29;39;2/56;0/189_3
    03/17/18 20:01:53 test;3186;29;39;2/56;0/196_3
    03/17/18 20:01:56 test;3186;29;39;2/56;0/191_3

    --------------------------------
    выделено напряжение в мв.
    Видно, что ничего особливо не скачет.
     
    Последнее редактирование: 17 мар 2018
  6. andrik_zp

    andrik_zp Читатель

    Сообщения:
    84
    Симпатии:
    8
    Так вас скачущие миливольты не устраивают? А вы пробовали посмотреть на питание вашего модуля с помощью осциллографа? Округляйте до десятых долей вольта и не заморачивайтесь.
     
  7. funny59

    funny59 Новичок

    Сообщения:
    16
    Симпатии:
    0
    Ну так-то да, не очень важно, но осцилом посмотрю
     
  8. Алексей.

    Алексей. Авторитетный участник сообщества

    Сообщения:
    511
    Симпатии:
    60
    К одному источнику питания подключил два модуля, есп-12 и есп-01, выполнял одновременно замеры напряжения питания, на одном получил 3410-3413, на другом 3508-3511.
    Жестокий разброс в 0.1 В.
    Теперь уж и не знаю как определить когда менять батарейку...
     
  9. nikolz

    nikolz Гуру

    Сообщения:
    3.870
    Симпатии:
    412
    А в чем проблема?
    ESP работает при 2.6 в.
    меняйте когда показывает 2.7
     
  10. Алексей.

    Алексей. Авторитетный участник сообщества

    Сообщения:
    511
    Симпатии:
    60
    Проблема я том, что измеренное значение самим модулем может сильно отличаться от реального значения. Я ещё лабораторным прибром не измерял пока ;)
    Динамику разряда оценить можно, а получить значение напряжения с точностью в 1% нельзя.
    Предположим показывает 2.7 а реальное 2.8, менять рано.
    Батарейка 3.6 В стоит дороже модуля однако.
     
    Последнее редактирование: 10 сен 2018
  11. nikolz

    nikolz Гуру

    Сообщения:
    3.870
    Симпатии:
    412
    А вы измеряйте напряжение внутри ESP.
    А меняйте, когда перестанет работать.
     
  12. Алексей.

    Алексей. Авторитетный участник сообщества

    Сообщения:
    511
    Симпатии:
    60
    Как это внутри? Я вроде и начал с этого
    Куда уж глубже.

    Устройство с автономным питанием в основном спит, очень глубоко, раз в час просыпается (секунд на 5-8) снимает показания, передает их на удаленный сервер (вместе с показаниями передается измеренное напряжение батареи) и засыпает.
    Когда перестает работать это ещё не означает что батарея разряжена, может проблемы со связью или устройство просто украли. В том и другом случае действуют немножко разные регламенты решения инцидента.
     
  13. nikolz

    nikolz Гуру

    Сообщения:
    3.870
    Симпатии:
    412
    я тестировал ESP получилось что перестает работать когда внутри напряжение показывает менее 2 вольт.
    Но и тогда можно еще работать но без WIFI
    Если в основном спит то делайте без батарейки
    солнечная панелька и суперкондер. Полного заряда 1 f хватит на 20 коротких сообщений.
    ---------------------
    Или создайте корректировочную таблицу для напряжения
     
  14. Алексей.

    Алексей. Авторитетный участник сообщества

    Сообщения:
    511
    Симпатии:
    60
    Интересная тема, тем более солнечная панелька 3В 30ма и суперкап на 1f дешевле литиевой батарейки получится, только солнца останется найти.
     
  15. nikolz

    nikolz Гуру

    Сообщения:
    3.870
    Симпатии:
    412
    днем всегда светло да если пасмурно.
    Я делал так.
    При просыпании запускается прошивка без WIFI и измеряется напряжение питания если мало то спать и накапливать При этом можно измерять с датчика и сохранять данные в RAM RTC
    если хватит то рестарт с WIFI и передача
     
  16. Zhenya88

    Zhenya88 Новичок

    Сообщения:
    30
    Симпатии:
    0
    Ребят, поделитесь знаниями.
    Использую ESP8266 Witty Cload.
    Выпаян фоторезистор, и стабилизатор AMS1117, питание напрямую на VCC от аккумулятор (3,7-4,2V). При получении данных через ESP.getVcc() в переменную long получаю значение 65535.
    Если я в начале вставляю "ADC_MODE (ADC_VCC);", то при компиляции получаю ошибку в строке
    "
    Код (Text):
    1. void callback(const MQTT::Publish& pub)
    " (бибилиотека MQTT PubSub), что MQTT не определена (противоречия библиотек?)

    Что я делаю не так?
     
  17. Сергей_Ф

    Сергей_Ф Moderator Команда форума

    Сообщения:
    2.094
    Симпатии:
    225
    Можно вместо фоторезистора впаятт постоянный и мерить аналог. По поводу ошибки - не подскажу.
     
  18. Zhenya88

    Zhenya88 Новичок

    Сообщения:
    30
    Симпатии:
    0
    я никак не пойму почему я значение 65000 получаю, т.е. предел значения long…
    постоянный резистор будет ток жрать, а устройство батарейное с дипслипами.
     
  19. Сергей_Ф

    Сергей_Ф Moderator Команда форума

    Сообщения:
    2.094
    Симпатии:
    225
    @Zhenya88 потому что предел измерения аналогового входа 1 Вольт.
     
  20. nikolz

    nikolz Гуру

    Сообщения:
    3.870
    Симпатии:
    412
    максимальное значение на выходе однополярного АЦП - это число со всеми единицами в разрядах.
    Если взять число размером в байт т е 11111111 (255,0xFF) и преобразовать в short
    то преобразование будет выполнено путем расширения знака т е получим 1111111111111111 или ,в формате unsigned short 65535
    а long - это 4 байта т е в формате unsigned long 4294967295
     

Поделиться этой страницей