Как сделать индикатор заряда батареи
Перейти к содержимому

Как сделать индикатор заряда батареи

Простой индикатор заряда батареи на двухцветном светодиоде

Вебинар «Решения MORNSUN для промышленных применений: от микросхем до ИП на DIN-рейку» (02.11.2022)

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

Простейший вариант показан на Рисунке 1. Если напряжение на клемме B+ равно 9 В, будет светиться только зеленый светодиод, поскольку напряжение на базе Q1 равно 1.58 В, в то время, как напряжение на эмиттере, равное падению напряжения на светодиоде D1, в типичном случае составляет 1.8 В, и Q1 удерживается в закрытом состоянии. По мере уменьшения заряда батареи напряжение на светодиоде D2 остается практически неизменным, а напряжение на базе уменьшается, и в какой-то момент времени Q1 начнет проводить ток. В результате часть тока станет ответвляться в красный светодиод D1, и эта доля будет увеличиваться до тех пор, пока в красный светодиод не потечет весь ток.

Рисунок 1. Базовая схема монитора напряжения батареи.

Для типичных элементов двухцветного светодиода различие в прямых напряжениях составляет 0.25 В. Именно этим значением определяется область перехода от зеленого цвета свечения к красному. Полная смена цвета свечения, задаваемая соотношением сопротивлений резисторов делителя R1 и R2, происходит в диапазоне напряжений

Середина области перехода от одного цвета к другому определяется разностью напряжений на светодиоде и на переходе база-эмиттер транзистора и равна приблизительно 1.2 В. Таким образом, изменение B+ от 7.1 В до 5.8 В приведет к смене зеленого свечения на красное.

Различия в напряжениях будут зависеть от конкретных комбинаций светодиодов и, возможно, их будет недостаточно для полного переключения цветов. Тем не менее, предлагаемую схему все равно можно использовать, включив диод последовательно с D2.

На Рисунке 2 резистор R1 заменен стабилитроном, в результате чего область перехода становится намного более узкой. Делитель больше не оказывает влияния на схему, и полная смена цвета свечения происходит при изменении напряжения B+ всего на 0.25 В. Напряжение точки перехода будет равно 1.2 В + VZ. (Здесь VZ – напряжение на стабилитроне, в нашем случае равное примерно 7.2 В).

Рисунок 2. Схема на основе стабилитрона.

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

При показанных сопротивлениях резисторов схема потребляет ток порядка 1 мА. Со светодиодами повышенной яркости этого достаточно для использования прибора внутри помещения. Но даже такой небольшой ток весьма значителен для 9-вольтовой батареи, поэтому вам придется выбирать между дополнительным потреблением тока и риском оставить питание включенным, когда необходимости в нем нет. Скорее всего, после первой внеплановой замены батареи вы почувствуете пользу от этого монитора.

Схему можно преобразовать таким образом, чтобы переход от зеленого к красному свечению происходил в случае повышения входного напряжения. Для этого транзистор Q1 надо заменить на NPN и поменять местами эмиттер и коллектор. А с помощью пары NPN и PNP транзисторов можно сделать оконный компаратор.

С учетом довольно большой ширины переходной области, схема на Рисунке 1 лучше всего подходит для 9-вольтовых батарей, в то время как схема на Рисунке 2 может быть адаптирована для других напряжений.

Простой самодельный индикатор уровня заряда аккумулятора

Я поставил цель запилить максимально простой, но в то же время достаточно функциональный индикатор. Для отображения уровня заряда в нем используются 4 светодиода, логика работы проста:

  • Горят 4 светодиода — заряд 100% — 75%, напряжение 4.2В — 3.9В
  • 3 светодиода — 75% — 50%, напряжение 3.9В — 3.7В
  • 2 светодиода — 50% — 25%, напряжение 3.7В — 3.5В
  • 1 светодиод — 25% — 0%, напряжение 3.5В — 3.3В

Настройки и режимы работы

На гитхабе в разделе firmware лежат уже готовые «отполированные» мною бинарники прошивок (файлы all_leds.hex и single_led.hex), они рассчитаны на применение резисторов номиналами 18 кОм и 4.7 кОм в делителе напряжений. Но бывает так, что именно таких резисторов может не оказаться, либо может попасться кривой микроконтроллер (по даташиту у Attiny13A заявлена точность измерений ADC в районе 10%), тогда потребуется самостоятельно модифицировать и пересобрать прошивку для себя, сделать это можно в программе Atmel Studio.
Доступные для изменения настройки в прошивке:

UHI здесь задает порог напряжения, выше которого начинает работать индикация перезаряда, остальные (U100, U75, U50, U25) — пороги для зажигания соответствующих светодиодов. При напряжении ниже U25 срабатывает индикация низкого напряжения. Общая формула для вычисления этих пороговых значений в зависимости от номиналов резисторов и напряжения аккумулятора имеет вид:

Где Ubat — напряжение на входе, R1, R2 — значения сопротивлений резисторов делителя. В случае, если МК подключен через диод Шоттки, в формулу добавляется величина падения на диоде Ud:

Но, как я уже говорил, погрешность АЦП у этого типа МК довольно большая, поэтому занесенные мною в прошивку значения слегка отличаются от теоретических. В идеале можно добиться очень высокой точности, но только методом проб и ошибок на конкретном экземпляре микроконтроллера. Для использования индикатора в качестве простого показомера «заряжено» — «разряжено» подойдут и мои значения.
Помимо пороговых значений изменять можно еще 2 параметра: гистерезис UHYS и режим отображения USE_ALL_LEDS. Первый служит для предотвращения мерцания светодиодов при переходе через пороговые напряжения, чем выше значение — тем меньше вероятность мерцаний. Если никаких неожиданных миганий при работе индикатора вы не наблюдаете — то этот параметр трогать нет необходимости. Второй параметр, USE_ALL_LEDS, задает один из двух способов индикации: в случае наличия строки с этим параметром в индикации будут участвовать все «младшие» светодиоды, если же эту строку закомментировать или вовсе удалить — будет гореть только один светодиод, отвечающий за текущий уровень заряда. Как это выглядит — покажу дальше, а пока предлагаю приступить к сборке модуля.

DIY, DIY, DIY

В случае использования МК в исполнении DIP-8 удобнее всего собирать модуль навесным монтажом. В моем случае МК в SOIC-8, поэтому я буду делать плату буквально на коленке и покажу небольшой лайфхак, как можно легко от руки разводить платы для SMD. Первое, что нам для этого нужно — кусок текстолита, размером примерно 20×10мм:

Его даже не обязательно покупать, можно вырезать из ненужной платы какого-либо устройства, покрытые медью площадки такого маленького размера встречаются довольно часто. Далее шкурим и обезжириваем поверхность, затем примеряем наш МК:

Придерживая пинцетом, с помощью тонкого перманентного маркера наносим на будущую плату риски между контактами контроллера:

Так легко и просто мы получаем практически идеальное посадочное место под пайку, и так можно «обрисовать» практически любой SMD компонент:

Далее просто от руки дорисовываем места под резисторы делителя и выводы на светодиоды:

Осталось протравить нарисованную плату, сделать это легко и просто с помощью валяющихся у каждого дома ингредиентов, записываем рецепт:

  • Пол рюмки перекиси водорода из аптечки
  • Кидаем в нее половину чайной ложки поваренной соли
  • Добавляем чайную ложку лимонной кислоты
  • Перемешиваем до полного растворения компонентов, если плохо растворяется — смесь можно подогреть

Заливаем прошивку

Для заливки прошивок в контроллеры я приспособил Arduino Nano. Прямо в Arduino Studio есть специальный скетч, который заливается в Nano и превращает его в AVRISP программатор:

В коде скетча перед заливкой в Arduino необходимо предварительно раскомментировать строку #define USE_OLD_STYLE_WIRING:

В результате мы получаем удобный ISP программатор, который можно использовать с avrdude. Подключаем ардуину к микроконтроллеру в соответствии со схемой:

SOIC клипса в таких делах очень сильно выручает, но при ее отсутствии можно подпаяться напрямую к контроллеру. Конденсатор между RESET и GND можно не использовать, все должно работать и без него.
После подключения и проверки всех проводов пытаемся запустить прошивку командой, подставив нужное название файла:

В случае успеха на экране будет что-то типа такого:

Если ошибка — то проверяем в первую очередь провода и правильность установки софта/драйверов, правильность выбора COM-порта. По опыту скажу, что сломать Attiny при прошивке очень сложно, они практически не убиваемые. Ни внезапно отвалившаяся в процессе прошивки клипса, ни баги с софтом на компе ему не страшны. Единственное, чем можно запороть этот МК — это неправильными фьюзами.

Проверяем работоспособность

После удачной прошивки модуль должен сразу заработать, потому что на него подается питание через программатор. Для большей уверенности необходимо подключить его к регулируемому источнику питания и прогнать диапазон 3В — 5В и проверить, что все светодиоды и режимы индикации работают. За неимением ЛБП выйти из положения можно с помощью наборов различных элементов питания: при работе от одной CR2032 модуль должен мигать красным светодиодом, сигнализируя о слишком низком напряжении; при питании от 3xAA или 2xCR2032 должен напротив мигать белый светодиод, обозначая превышение допустимого для Li-ion напряжения. Если при проверке на ЛБП выясняются расхождения с заявленными пороговыми напряжениями и индикацией, то для повышения точности можно методом проб и ошибок найти более точные значения UHI, U100, U.

Примеры работы в гифках

Изменение напряжения от 4.2В до 3.3В и обратно:

Индикация превышения допустимого напряжения:

Те же примеры с удаленной из прошивки строкой USE_ALL_LEDS:

Индикация низкого напряжения:

Продолжаем DIY

Модуль прошит, проверен и отлажен, теперь осталось разместить его в напечатанном ранее корпусе. Вставляем плату:


Для надежности внутренности я залил эпоксидной смолой:

Как оказалось, сделал я это зря) Эпоксидка при застывании расширилась и немного повела корпус, для целей фиксации все же лучше использовать герметик или термоклей.
Переднюю часть для красоты шкурим и тем самым матируем:

Итоговый вид:


Разница в яркости немного портит впечатление, но при желании это можно легко решить.

Выводы

По функциональности самодельный модуль ни в чем не уступает покупным, и при этом имеет кучу преимуществ:

Индикатор заряда аккумулятора Li-ion

Усилитель для наушников, который собирался мной в прошлый раз, питается от аккумулятора. А аккумуляторы имеют обыкновение терять свой заряд. Причем, теряют даже тогда, когда к ним ничего не подключено, т.е, саморазряд. И хоть современные аккумуляторы на этот процесс тратят очень немало времени, но это случается. А если они питают какую-то нагрузку, даже не очень большую, то это время сокращается. Ну да это и нормально. Просто их надо заряжать.
Плохо то, что аккумуляторы Li-ion очень не любят глубокий разряд. Чтобы этого не допустить, достаточно лишь не допускать снижение падения напряжения на его клеммах ниже 2.9-3 Вольта. Конечно же, это значение для отдельного элемента. Если батарея из последовательно подключенных элементов — то тут возможны варианты.

Озадачился тем, чтобы оборудовать усилитель каким-нибудь индикатором заряда/разряда. Индикатор разряда для ухоуся был выбран один из самых простых.

Принцип работы очень прост. Когда напряжение на клеммах аккумулятора более 3.25 Вольта, и стабилитрон (Uст=2 Вольта) еще не находится в режиме пробоя, транзистор закрыт, горит зеленый светодиод через ограничительный резистор. Когда напряжение будет подходить близко к 3.25 Вольтам, стабилитрон уйдет в режим пробоя, транзистор откроется и зашунтирует собой зеленый светодиод. При этом ток уже потечет по цепи R1, эмиттер-коллектор, красный светодиод.

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

Но с кажущейся простотой есть и одни проблема. Связана она с настройкой и подбором стабилитрона. У разных экземпляров стабилитронов одной и той же марки будет сильный разброс параметров на границе пробоя:

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

Конкретно моя реализация. Мне не удалось вообще найти стабилитрона на 2 Вольта. Решил заменить цепочкой из 4-х диодов 1N4148 в прямом включении.

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

Вышло так, что индикатор заряда стал играть роль индикатора включенного устройства:

Зеленый свет означает то, что напряжение на аккумуляторе более 3.3 Вольта, и можно особо не суетиться с подзарядкой. Как только появляется красноватые оттенки, можно неспешно думать о том, чтобы подключить USB-шнурок от телефона и подкормить батарейку.

Кормежка осуществляется через популярные контроллеры заряда с Алишки:

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

Простой индикатор заряда и разряда аккумулятора

Данный индикатор заряда аккумулятора основан на регулируемом стабилитроне TL431. С помощью двух резисторов можно установить напряжение пробоя в диапазоне от 2,5 В до 36 В.

Приведу две схемы применения TL431 в качестве индикатора заряда/разряда аккумулятора. Первая схема предназначена для индикатора разрядки, а вторая для индикатора уровня заряда.

Единственная разница — это добавление n-p-n транзистора, который будет включать какой-либо сигнализатор, например, светодиод или зуммер. Ниже приведу способ вычисления сопротивления R1 и примеры на некоторые напряжения.

prostoj-indikator-zaryada-i-razryada-akkumulyatora-min

Схема индикатора разряда аккумулятора

Стабилитрон работает таким образом, что начинает проводить ток при превышении на нем определенного напряжения, порог которого мы можем установить с помощью делителя напряжения на резисторах R1 и R2. В случае индикатора разряда, светодиодный индикатор должен гореть, когда напряжение батареи меньше, чем необходимо. Поэтому в схему добавлен n-p-n транзистор.

Как можно видеть регулируемый стабилитрон регулирует отрицательный потенциал, поэтому в схему добавлен резистор R3, задачей которого является включение транзистора, когда TL431 выключен. Резистор этот на 11k, подобранный методом проб и ошибок. Резистор R4 служит для ограничения тока на светодиоде, его можно вычислить с помощью закона Ома.

Конечно, можно обойтись и без транзистора, но тогда светодиод будет гаснуть, когда напряжение упадет ниже выставленного уровня — схема ниже. Безусловно, такая схема не будет работать при низких напряжениях из-за отсутствия достаточного напряжения и/или тока для питания светодиода. Данная схема имеет один минус, который заключается в постоянном потреблении тока, в районе 10 мА.

Схема индикатора заряда аккумулятора

В данном случае индикатор заряда будет гореть постоянно, когда напряжение больше, чем то, которые мы определили с помощью R1 и R2. Резистор R3 служит для ограничения тока на диод.

Пришло время для того, что всем нравится больше всего — математики

Я уже говорил в начале, что напряжение пробоя может изменяться от 2,5В до 36В посредством входа «Ref». И поэтому, давайте попытаемся кое-что подсчитать. Предположим, что индикатор должен загореться при снижении напряжении аккумулятора ниже 12 вольт.

Сопротивление резистора R2 может быть любого номинала. Однако лучше всего использовать круглые числа (для облегчения подсчета), например 1к (1000 Ом), 10к (10 000 Ом).

Резистор R1 рассчитаем по следующей формуле:

R1=R2*(Vo/2,5В — 1)

Предположим, что наш резистор R2 имеет сопротивление 1к (1000 Ом).

Vo — напряжение, при котором должен произойти пробой (в нашем случае 12В).

R1=1000*((12/2,5) — 1)= 1000(4,8 — 1)= 1000*3,8=3,8к (3800 Ом).

Т. е. сопротивление резисторов для 12В выглядят следующим образом:

А здесь небольшой список для ленивых. Для резистора R2=1к, сопротивление R1 составит:

  • 5В – 1к
  • 7,2В – 1,88к
  • 9В – 2,6к
  • 12В – 3,8к
  • 15В — 5к
  • 18В – 6,2к
  • 20В – 7к
  • 24В – 8,6к

Для низкого напряжения, например, 3,6В резистор R2 должен иметь бОльшее сопротивление, например, 10к поскольку ток потребления схемы при этом будет меньше.

Обновление (29/10/21)

Резистор R3 для схемы с транзистором можно рассчитать по следующей формуле :

  • Umin — минимальное напряжение
  • VREF — 2,5 В
  • Imin — минимальный ток

Однако значение Umin следует принимать ниже предполагаемого. Для 12В возьмем 11,8 В. Необходимо также добавить 2 мА для правильной работы схемы — чтобы при минимальном напряжении (в нашем случае менее 12 В) через резистор протекал ток более 1 мА.

R3 = (11,8 В — 2,5 В) / 0,002 A = 4650 Ом

Резистор R4 можно рассчитать по следующей формуле:

  • Uon — напряжение в рабочем состоянии — включено
  • Imin — минимальное значение тока, протекающего через TL431 — возьмем 1 мА
  • R3 – рассчитан ранее
  • Uled — напряжение на светодиоде
  • Iled — ток, протекающий через светодиод

Предположим: Uon = 12 В, Imin_off = 1 мА, R3 = 4,7 кОм , Uled = 2,4 В, Iled = 10 мА.

R4 = (12 В-0,001 А * 4700 Ом-2,4 В) / 0,010 А = 9,6 В-4,7 / 0,010 А = 4,9 / 0,010 А = 490 Ом

Таким образом, у нас будет полностью функциональная схема. Помните, что эта схема может быть нагружена током максимумом 100 мА (один светодиод примерно 25 мА). По схеме индикатора разряда нужно проверить максимальную нагрузку транзистора (для BC547 она составляет 100 мА). Потребление тока самого TL431 составляет всего 1,5 мкА — практически незаметно.

Минимальный порог напряжения — тот, который еще не повредит аккумулятор, составляет 0,9 В на ячейку. Однако все зависит от того, где вы хотите использовать схему, например, в случае летающих радиомоделей, напряжение на ячейку 0,9 В не является правильным, поскольку сигнализация включится только тогда, когда вертолет уже будет лежать на земле. Поэтому с летающими моделями лучше поставить 1,2 В на ячейку и конечно вместо светодиода лучше использовать зуммер.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *