Измерение напряжения источника питания Arduino с помощью аналогового входа

Я питаю Arduino от батареи 5 В (3,7 В для повышающего модуля), и мне нужно измерить напряжение. Допустим, батарея выдает большой ток. Безопасно ли измерять напряжение через аналоговый вход? Как в этом:

введите описание изображения здесь

Причина, по которой я спрашиваю, заключается в том, что я мало знаю об архитектуре и ограничениях АЦП Arduino. Так что обычно я бы сделал это для безопасности:

введите описание изображения здесь

Безопасны ли соединения на первой схеме для АЦП? Заранее спасибо!

Примечание. Аналогичный вопрос был задан здесь: ( Мониторинг использования постоянного тока ), но он не отвечает на вопрос о сильноточных нагрузках на батарею.

Где ты взял батарейку на 5В?
На самом деле это батарея на 3,7 В, которая входит в схему повышающего стабилизатора напряжения. Я действительно заинтересован в измерении самой батареи 3,7 В, но для примера я просто предположил, что это 5 В, чтобы показать, что Arduino работает.
Ах, но это может изменить ситуацию. Вероятно, нет: arduino не будет заботиться о том, сколько тока потребляет батарея, пока не весь этот ток проходит через вывод ввода-вывода. Но я не уверен, я не знаю ардуино.
Это правда. Меня беспокоит токовый вход на контакт аналогового входа, если я напрямую подключаю его к батарее.

Ответы (2)

Проверьте таблицу данных для входного тока на выводе ввода-вывода. Это зависит от точного типа контроллера на вашем Arduino. Вероятно, он называется входным/выходным выводом тока утечки и будет около 1 мкА .

Вот типичное техническое описание ATmega, используемое в Uno/Duemilanove/... , вы можете найти параметр на странице 304. Точные данные см. в техническое описание вашего конкретного контроллера .

Если вы используете батарею 3,7 В и повышающий преобразователь для подачи 5 В на контроллер, вы можете подключить батарею непосредственно к аналоговому входу контроллера. Однако, когда выходное напряжение повышающего преобразователя падает ниже напряжения батареи (по какой-либо причине), тогда все ваше Arduino будет питаться через аналоговый входной контакт, а это то, чего вы не хотите. Все входные контакты имеют защиту от перенапряжения, которая обеспечивает такое поведение, но диоды не рассчитаны на длительные токи. В заключение: лучше всего включить последовательный резистор между батареей и входным контактом.

Но теперь ваше измерение зависит от точности источника питания 5 В. В зависимости от того, какой именно контроллер у вас есть, доступны различные внутренние опорные напряжения , которые намного более точны, чем напряжение источника питания. Если вы добавите дополнительный резистор к земле (R2), вы можете использовать такой эталон для точного измерения входного напряжения. Это называется (резистивным) делителем напряжения. При заданном соотношении напряжение на входе будет 1В при напряжении батареи 3,7В:

В м е а с ты р е м е н т знак равно р 2 × В Б А Т Т р 1 + р 2

схематический

смоделируйте эту схему - схема, созданная с помощью CircuitLab

Так что, по сути, можно подключить его напрямую к батарее, но НЕ рекомендуется, если 5 В меняется. Даже если 5v регулируемое и постоянное?
Это должно быть безопасно, если 5 В постоянно, но что-то все время идет не так: лучше перестраховаться, чем потом сожалеть. Один-два резистора намного дешевле нового микроконтроллера. Инженерное дело заключается не только в том, чтобы заставить что-то работать, но и в том, чтобы заставить вещи работать так, как требуется.
Еще один вопрос, если позволите: разве одного сопротивления (1 кОм) параллельно аккумулятору недостаточно для предотвращения сильного входного тока? (см. мой второй рисунок)
Нет, он ничего не делает, кроме как вытягивает батарею.

Другим вариантом является использование внутреннего опорного напряжения запрещенной зоны Arduino 1,1 В для определения значения VCC без использования каких-либо дополнительных внешних частей, как подробно описано по этим двум ссылкам:

http://jeelabs.org/2012/05/04/measuring-vcc-via-the-bandgap/

и

http://arduino.cc/forum/index.php?topic=88935.0

Единственная проблема заключается в том, что вам нужно определить значение калибровки по внутренней запрещенной зоне 1,1 В, поскольку она может отличаться на целых 10%.

Но это не потребует дополнительных деталей и позволит вашей атмеге определять напряжение своего источника питания.

Вот еще одна статья, в которой обсуждается, как это сделать. Код, который он использует, немного отличается: Provideyouown.com/2012/…
@ThomasW хорошо! Еще одна отличная статья об использовании запрещенной зоны 1,1 В.