Как я могу измерить, есть ли батарея?

С помощью моего Arduino я хочу измерить, находятся ли одна / две батареи AAA в их одинарном / двойном держателе батареи.

Когда Arduino работает, подключен к другому источнику питания и батареи на месте, все в порядке: я получаю свои измерения около 1,5 В / 3 В на аналоговом выводе, к которому подключена батарея (- батареи и Arduino). GND, конечно, тоже подключены).

Проблемы возникают, когда я либо

a) вытащите батарейки: Аналоговый контакт остается плавающим. Не хорошо. Могу ли я перевести пин в режим INPUT_PULLUP? Достаточно ли большой внутренний резистор? Или подключенные 5 В повредят мои батареи, когда они вернутся в держатель?

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

На самом деле меня не волнует фактическое напряжение батареи - я просто хочу знать, находятся ли батареи в держателе или нет. И я хочу оставить там батарейки, даже несмотря на то, что Arduino не запитан. Я бы даже рассмотрел что-то вроде "кнопка нажата, когда батарейка в держателе" или любые другие (простые) творческие идеи.

Возможно ли это? Как?

, 👍0

Обсуждение

Вы хотите использовать батареи в качестве [резервного] источника питания или нет? если нет (и вы не подключили + батарей к линии питания Arduino), почему Arduino питается от них, когда вы отключаете основной источник питания в разделе b вашего вопроса?, @Tirdad Sadri Nejad

@Tirdad Sadri Nejad Это паразитный ток через входной контакт. Не подходит для микроконтроллера., @chrisl


2 ответа


Лучший ответ:

0

Я вижу 1 основную проблему: держать батареи изолированными, чтобы между ними и Arduino не протекал ток (особенно паразитный ток на входной контакт выключенного Arduino), при этом считывая уровень напряжения (ВЫСОКИЙ или НИЗКИЙ). ).

Я бы предложил использовать подходящий N-канальный полевой МОП-транзистор. Подключите минусовой контакт батарей к земле, а плюсовой контакт к затвору полевого МОП-транзистора. Затем исток и сток MOSFET на землю и цифровой контакт Arduino соответственно. Включите внутренний подтягивающий резистор. Добавьте подтягивающий резистор между затвором и землей.

Теперь, без батарей, затвор находится на уровне земли, поэтому полевой МОП-транзистор не проводит. Уровень на входном контакте будет высоким. Если батареи вставлены, их напряжение активирует МОП-транзистор, который притягивает входной контакт Arduino к земле, таким образом, уровень НИЗКИЙ. Поскольку МОП-транзистор чем-то похож на конденсатор между затвором и остальными элементами, здесь почти не будет протекать ток (достаточный только для загрузки небольшой емкости). Хотя я не уверен, я думаю, что ток не будет течь и в случае обесточивания Arduino.

Теперь задача состоит в том, чтобы найти подходящий полевой МОП-транзистор, который входит в режим насыщения при напряжении 1,5 В.

Конечно, вы также можете использовать микропереключатель, который отключается батареями. Это проще с точки зрения электроники, но, возможно, сложнее с точки зрения механики.

,

Звучит разумно, спасибо! Я попытался нарисовать схему из вашей инструкции: https://i.ibb.co/pW7n4D6/sch.png Это то, о чем вы подумали? Теперь я найду MOSFET и попробую :-), @Tetopia

Почти. Я намеревался подключиться к цифровому пину вместо аналогового, так как вам нужна только информация, есть батарейки или нет. Выполнение этого с помощью электричества также означает, что разряженные батареи — это как отсутствие батарей., @chrisl

Я построил эту схему с «ZVN3310A», 560k Pulldown и внутренней подтяжкой. Кажется, работает :-) Однако для версии с одной батареей мне пришлось измерить аналоговое значение, потому что транзистор, который я получил, имеет VGS (th) от 0,8 до 2,4 В, а 1,5 В одной батареи было недостаточно, чтобы сделать транзистор полностью проводящим. (Другого транзистора у меня не было). Но его проводимости достаточно, чтобы получить аналоговое значение от примерно 1000 (без батареи) до примерно 700 (батарея 1,5 В). Все светодиоды остаются выключенными даже с батареей 3 В, когда питание не подключено, поэтому я предполагаю, что (значительный) паразитный ток отсутствует., @Tetopia

Да, я предположил транзистор, который уже будет полностью проводящим для 1,5 В, но если у вас нет лучшего транзистора, использование аналогового входа также подойдет., @chrisl


0

Вы можете добавить вниз к аналоговому контакту. Если АЦП считывает значение ниже ef 10, вы можете считать это состоянием, когда нет батарей.

С точки зрения сигнала подтяжка была бы лучше, потому что без батарей вы бы прочитали 5 В, что однозначно, поскольку они не могут быть обеспечены самими батареями. Но в целом я не думаю, что применение более высокого напряжения к батареям является хорошей практикой, даже если вы можете ограничить ток с помощью достаточно высокого резистора.

,