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

9

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

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

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

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

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

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

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

Ответы:

6

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

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

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

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

Vmeasurement=R2×VBATTR1+R2

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

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

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

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

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

а также

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

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

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

Крыло Тан Вонг
источник
3
Вот еще одна статья, в которой обсуждается, как это сделать. Код, который он использует, немного отличается: provideyourown.com/2012/…
ThomasW
@TommasW приятно! Еще одна замечательная статья об использовании запрещенной зоны 1.1v.
Винг Тан Вонг