Oymyacon 0 15 августа, 2020 Опубликовано 15 августа, 2020 (изменено) · Жалоба On 8/15/2020 at 12:18 AM, Сергей Борщ said: Вы принципиально не читаете ответы на свои вопросы ... Я так думаю, что ничего страшного нет. Ну поставит он делитель, потом уберёт. Изменено 16 августа, 2020 пользователем Oymyacon Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
zombi 0 16 августа, 2020 Опубликовано 16 августа, 2020 · Жалоба On 8/13/2020 at 9:32 AM, jenya7 said: Мне нужно измерять состояние батарейки. Тоже давно такой вопрос был и у меня. Вот тема Xmega ADC , там в конце ILYAUL дал мне ценный совет. Может и Вам подойдёт... 9 лет прошло! О ужас! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Oymyacon 0 16 августа, 2020 Опубликовано 16 августа, 2020 · Жалоба Полезно бы было ещё и среднюю точку между батарейками измерять. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 69 16 августа, 2020 Опубликовано 16 августа, 2020 · Жалоба 1 hour ago, Oymyacon said: Полезно бы было ещё и среднюю точку между батарейками измерять. Любопытно, но бесполезно: батарейки все равно менять. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jenya7 0 16 августа, 2020 Опубликовано 16 августа, 2020 (изменено) · Жалоба я что то не совсем понимаю. по документации Quote 0 dB attenuation (ADC_ATTEN_DB_0) gives full-scale voltage 1.1 V 2.5 dB attenuation (ADC_ATTEN_DB_2_5) gives full-scale voltage 1.5 V 6 dB attenuation (ADC_ATTEN_DB_6) gives full-scale voltage 2.2 V 11 dB attenuation (ADC_ATTEN_DB_11) gives full-scale voltage 3.9 V (see note below) если я выбираю ADC_ATTEN_DB_11 я буду мерять full-scale voltage то есть VCC. Но в таком случае я всегда получу 4096(12-бит) на аналоговом входе так как референс всегда будет равняться VCC. то есть мне надо выбрать скажем ADC_ATTEN_DB_6 и подать на аналоговый вход через делитель. я как то не вижу другого способа. погуглив эту тему я вижу все ставят делитель. и на ESP32 форуме сказали нужен делитель. не знаю что Сережа так разнервничался. Изменено 16 августа, 2020 пользователем jenya7 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 69 16 августа, 2020 Опубликовано 16 августа, 2020 · Жалоба 21 minutes ago, jenya7 said: погуглив эту тему я вижу все ставят делитель. и на ESP32 форуме сказали нужен делитель. не знаю что Сережа так разнервничался. В этом-то и проблема. Надо было не гуглить, а узнать из документации, можно ли измерить напряжение внутреннего ИОН с питанием в качестве опоры. Вы же принципиально нагугливаете готовые решения разной степени корявости. На картинке как раз такое - запредельно корявое. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jenya7 0 16 августа, 2020 Опубликовано 16 августа, 2020 (изменено) · Жалоба 1 hour ago, aaarrr said: В этом-то и проблема. Надо было не гуглить, а узнать из документации, можно ли измерить напряжение внутреннего ИОН с питанием в качестве опоры. Вы же принципиально нагугливаете готовые решения разной степени корявости. На картинке как раз такое - запредельно корявое. у ESP32 нет внешнего референса, только внутренний который выбирается ADC_ATTEN_DB_0 - ADC_ATTEN_DB_11. вы не можете померять напряжение большее чем референс. или как? это их решение Изменено 16 августа, 2020 пользователем jenya7 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 69 16 августа, 2020 Опубликовано 16 августа, 2020 · Жалоба Quote ESP32 integrates two 12-bit SAR ADCs. They are managed by five SAR ADC controllers, and are able to measure signals from one to 18 analog pads. It is also possible to measure internal signals, such as vdd33. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Plain 194 16 августа, 2020 Опубликовано 16 августа, 2020 · Жалоба 48 минут назад, jenya7 сказал: референс всегда будет равняться VCC Откуда такие фантазии? Опорное там 1,1 В и никакое другое, а "аттенюатор" — это переключаемый делитель на входе АЦП. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jenya7 0 16 августа, 2020 Опубликовано 16 августа, 2020 (изменено) · Жалоба 1 hour ago, Plain said: Откуда такие фантазии? Опорное там 1,1 В и никакое другое, а "аттенюатор" — это переключаемый делитель на входе АЦП. аааа....а я понял это по другому. то есть мне нужно учитывать этот делитель в вычислениях? adc_reading = adc1_get_raw((adc1_channel_t)channel); результат нужно умножать на делитель? Изменено 16 августа, 2020 пользователем jenya7 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
haker_fox 61 16 августа, 2020 Опубликовано 16 августа, 2020 · Жалоба 31 minutes ago, jenya7 said: результат нужно умножать на делитель? Ну вы, блин, даёте) Итак: 1. Вы не можете померить с помощью АЦП напряжение больше, чем его опорное. В идеале, лучше, чтобы максимальная амплитуда измеряемого напряжения была на 10 - 20% ниже, чем напряжение опорное. 2. Вы понижаете амплитуду измеряемого напряжения (вашей батарейки) согласно пункту 1. Делаете с помощью резистивного делителя (два резистора). 3. Измеренное напряжение в кодах АЦП вы можете преобразовать, зная опорное и количество разрядов, в напряжение в вольтах. 4. Результат из п. 4 вы умножаете на величину, обратную коэффициенту делителя. Делитель ведь делит, т.е. уменьшает. А вам нужно результат математически увеличить до исходного, того. который мы поделили. Пример. 1. Пусть опорное у АЦП (это просто пример, конкретное значение вычитываете в документации, обычно оно называется reference voltage) будет 2.7 В. Его разрядность 14 бит. 2. Ваша батарейка, если хорошо зарядилась (один li-po) элемент может иметь напряжение 4.2 В. Это больше почти в полтора раза, чем 2.7 В. Нужен делитель. Берём верхний резистор делителя 10 кОм, нижний 12 кОм. Такой делитель даст на выходе 2,3 В из 4.2 В. Т.е. его коэффициент передачи 0,54. У нас остаётся запас по шкале АЦП примерно 15%. 3. Допустим, после измерения мы получили код 8544, а 16383 это будет максимальный код, когда входное напряжение равно опорному. Здесь, конечно не всё так идеально, ведь у АЦП есть погрешности смещения, полной шкалы и т.п. Но пусть для простоты примера это будет так. Полученный код преобразуем в напряжение 1,4 В. 4. Но ведь перед АЦП у нас делитель, поэтому реальное входное будет 2,6 (оно может быть и близко к опорному и даже больше него). Надеюсь, что поможет. Ну и не забываем, что любой измерительный канал нужно калибровать, иначе его измерения будут показывать фазу Луны на Марсе. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jenya7 0 16 августа, 2020 Опубликовано 16 августа, 2020 (изменено) · Жалоба 3 hours ago, haker_fox said: 2. Вы понижаете амплитуду измеряемого напряжения (вашей батарейки) согласно пункту 1. Делаете с помощью резистивного делителя (два резистора). я так понял что делитель у этого камня внутрений. как писал Plain Quote Откуда такие фантазии? Опорное там 1,1 В и никакое другое, а "аттенюатор" — это переключаемый делитель на входе АЦП. и потом я покопался в документации Quote ADC attenuation parameter. Different parameters determine the range of the ADC. See adc1_config_channel_atten. Values: ADC_ATTEN_DB_0 = 0 The input voltage of ADC will be reduced to about 1/1 ADC_ATTEN_DB_2_5 = 1 The input voltage of ADC will be reduced to about 1/1.34 ADC_ATTEN_DB_6 = 2 The input voltage of ADC will be reduced to about 1/2 ADC_ATTEN_DB_11 = 3 The input voltage of ADC will be reduced to about 1/3.6 так шо, я делитель на PCB не ставлю? Изменено 16 августа, 2020 пользователем jenya7 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Oymyacon 0 16 августа, 2020 Опубликовано 16 августа, 2020 · Жалоба 5 hours ago, aaarrr said: Любопытно, но бесполезно: батарейки все равно менять. Да нет, всё-таки кое-какая польза может быть, т.к. 1,5-Вольтовые батарейки имеют разброс по напряжению и заряду, который будет тем заметнее, чем ближе батарейки к издыханию. Но упор делать на это конечно же не стоит. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
haker_fox 61 16 августа, 2020 Опубликовано 16 августа, 2020 · Жалоба 4 hours ago, jenya7 said: так шо, я делитель на PCB не ставлю? Вы документацией не пользуетесь? Что говорит datasheet на аналоговый пин? На него можно подать напряжение больше Vref и понизить? Если да, то попробуйте. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jenya7 0 16 августа, 2020 Опубликовано 16 августа, 2020 · Жалоба 1 hour ago, haker_fox said: Вы документацией не пользуетесь? Что говорит datasheet на аналоговый пин? На него можно подать напряжение больше Vref и понизить? Если да, то попробуйте. в этом то и суть attenuation. если я правильно понял. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться