О реализации индикатора батареи в устройствах на МК
В портативном устройстве, работающем от аккумулятора, почти обязательным «удобством» является индикатор уровня его заряда. Казалось бы, если оно собрано на основе любого современного микроконтроллера и имеет графический дисплей, ничего сложного в этом нет: нужно лишь регулярно измерять напряжение батарейки с помощью встроенного АЦП и выводить его в виде традиционной батарейки, степень заполнения которой зеленой краской зависит от напряжения. Но если так сделать в лоб, есть риск, что индикатор будет вести себя, как в известном перле «она металась, как стрелка осциллографа». В лучшем случае, он будет время от времени раздражающе подергиваться туда-сюда на один-два пикселя.
В статье описывается простая реализация индикатора разряда, лишенная этого недостатка.
Проблема «дергающейся батарейки»
Типичные разрядные характеристики литий-ионного аккумулятора при различных токах
Причин такой нестабильности показаний индикатора несколько. Для начала, нужно отметить, что напряжение почти полностью заряженного литий-ионного аккумулятора – 4,0 В, а почти полностью разряженного — 3,4-3,5 В. Соответственно, перепад от 0 до 100% соответствует всего 0,5-0,6 В, то есть индикация заряда с шагом 10% требует точности измерения напряжения не хуже 1%. При этом метрологические характеристики «вольтметра», встроенного в устройство, чаще всего достаточно скверные, потому что всерьез к проектированию этого узла относятся достаточно редко. Да и само напряжение, поступающее на устройство, потребление тока которым постоянно меняется в интервале от нескольких до 150-200 миллиампер, с учетом его подключения через невысокого качества китайский разъем типа JST – тоже непостоянно. При непостоянном токе потребления, зависимость разрядной характеристики аккумулятора от тока разряда – самое главное препятствие для точного определения заряженности по напряжению. Поэтому в смартфонах и ноутбуках для этого чаще применяют другой подход – специализированный контроллер подсчитывает кулоны, пошедшие на зарядку батареи и затраченные затем при разряде, а напряжение при этом играет вспомогательную роль.
Но мы не будем забираться в такие дебри. Способ этот дает прекрасные результаты, но он не так прост в реализации: такие контроллеры сложно достать в розницу, трудно паять вручную, и вдобавок их нужно прошивать на требуемые параметры аккумулятора с помощью платной программы и не менее платного программатора. Тем более, что простыми средствами тоже можно достичь неплохих результатов, пусть и не таких точных.
Решение
Черная линия – измеренное напряжение, красная – то, что мы будем использовать для определения уровня заряда.
Предлагаемая идея состоит в том, что раз потребление тока устройством меняется и наибольшая просадка напряжения происходит в моменты наибольшего потребления, нужно фиксировать напряжение именно в такие моменты. Это логично, так разряженный аккумулятор еще может долгое время «тянуть» устройство, пока оно находится в малопотребляющем режиме, но быстро просядет ниже минимально допустимого напряжения, когда потребление подскочит, например, при включении дисплея. При этом очевидно, что когда аккумулятор разряжается, степень его заряженности может только снижаться, но никак не увеличиваться. И наоборот, когда аккумулятор заряжается – степень его заряженности только возрастает, несмотря на то, что измеренное значение напряжения может в какие-то моменты падать из-за помех и т.п. Поэтому давайте будем во время разряда игнорировать поступающие данные об изменениях напряжения, если оно растет, считать этот рост артефактом. Делается это элементарно – путем сравнения каждого следующего значения измеренного напряжения с ранее зафиксированным минимальным, которое обновляется каждый раз, когда измеренное значение окажется ниже него. Во время заряда мы поступим аналогично, но фиксировать будем не минимумы, а максимумы.
Разумеется, нам здесь понадобится некий сигнал от зарядного устройства, информирующий о том, в каком состоянии (заряд или разряд) находится аккумулятор. Обычно контроллеры заряда литиевых аккумуляторов имеют выход на светодиод или пару светодиодов, который несложно завести на GPIO контроллера.
Тут нужно учесть еще и то, что кривые разряда и заряда существенно различаются. Поэтому по смене статуса зарядного контроллера нам нужно сменить не только направление работы индикатора, но и формулу расчета процентов заряженности от напряжения. А также то, что на протяжении этапа CV, на который приходится примерно 25-30% емкости батареи и половина времени заряда, индикатор будет показывать 100%, если мы будем принимать во внимание только напряжение. Можно так и оставить (сделав внятную индикацию, что зарядка еще не окончена), а можно заморочиться и вычислять на этом этапе проценты заряженности, как линейную (или более сложную) функцию от времени.
Нижеприведенный код на Си реализует самый простой вариант описанного алгоритма. Здесь мы считаем, что полностью разряженная батарейка при разряде дает 3,4 В. Чем это обусловлено? Во-первых, тем, что примерно с этого напряжения начинается быстрый спад напряжения, и дальнейший разряд не дает существенно большего времени работы. Во-вторых, если питать МК от аккумулятора через LDO на 3,3 В, при снижении напряжения ниже этого значения начинает падать и напряжение питания МК. В некоторых случаях это не очень желательно, и в частности, в данной задаче пришлось бы задействовать встроенный источник опорного напряжения, чтобы измерить напряжение батареи в 3,3В и ниже. Та же полностью разряженная батарея при включении заряда сразу увеличивает напряжение до 3,65 В, я же взял 3,6 В, так как тогда при том же коэффициенте наклона автоматически выходит нужное напряжение на 100% заряженном аккумуляторе 4,2 В.
Далее мы в удобном месте вызываем функцию batPercent, скажем, раз в секунду, и то, что она вернула, передаем в код, рисующий батарейку.
Вот и все. Теперь никаких ненужных колебаний и шевелений, индикатор аккумулятора стоит, как вкопанный, не забывая, впрочем, убавляться по мере разряда. Данный способ, конечно, не претендует на точность измерения остатка заряда, но это обычно и не требуется. При необходимости, конечно, можно усложнить код, добавив в него учет температуры, использовав вместо линейной интерполяции более сложную и точную.
Простой и точный индикатор заряда-разряда АКБ
Сегодня статья будет с процессом сборки простого индикатора уровня заряда аккумуляторов, но с более высокоточной схемой, которая пригодна для реального использования и может стать отличным дополнением на панели приборов вашего автомобиля.
Индикатор построен на базе микросхемы ELM339, она в свою очередь представляет из себя четыре отдельных компаратора в едином корпусе.
Компаратор имеет два входа и один выход, он просто сравнивает напряжение на входах, исходя из этого на выходе получаем либо логический 0, либо единицу.
Использованный в схеме компаратор можно найти на платах компьютерного блока питания, ориентируйтесь по цифрам 339, буквы могут отличаться в зависимости от производителя.
В качестве индикаторов задействованы 3 миллиметровые светодиоды.
Схема работает очень простым образом, имеем источник опорного напряжения в лице стабилитрона, цепочки из резисторов представляют из себя делители, которые создают на входах компараторов определенное напряжение, назовем их пороговыми.
Компаратор постоянно сравнивает эти напряжения с напряжением, которые образуют делитель на резисторах R5 и R6, этот делитель снижает напряжение тестируемой батареи в три раза, если напряжение на прямом входе компаратора больше чем на инверсном, то на выходе получаем логическую единицу или напряжение питания.
Светодиод светится, если всё наоборот, то на выходе получаем логическую 0 или массу питания, светодиод в данном случае не светится.
Входные делители подобраны в узком диапазоне, поскольку схема предназначена для работы в качестве индикатора заряда 12-вольтовых аккумуляторов.
Маломощный диод 4148 защищает микросхему компаратора от обратной полярности.
Токо-ограничивающие резисторы для светодиодов подбираются с сопротивлением от 1 до 2,2 килом, можно ограничиться всего одним резистором.
Печатная плата довольно компактна, рисовал на скорую руку, но разводка неплохая, кстати её вы можете скачать в конце статьи.
Для проверки этой платы нам нужен лабораторный источник питания на котором нужно выставить напряжение около 13,5 — 14 вольт, имитируя полностью заряженный автомобильный аккумулятор.
Загораются сразу все светодиоды, постепенно снижая напряжение на блоке питания мы можем наблюдать потухание светодиодов при определенных напряжениях.
Горение только красных светодиодов означает, что аккумулятор почти разряжен.
Можно пересчитать входные делители и использовать схему для аккумуляторов с иным напряжением, кстати эту схему можно также применить и в зарядных устройствах.
Схема индикатора заряда аккумулятора на светодиодах
Автомобильный аккумулятор состоит из шести последовательно соединённых аккумуляторных батарей с напряжением питания 2,1 — 2,16В. В норме АКБ должен выдавать 13 — 13,5В. Нельзя допускать значительного разряда аккумуляторной батареи, поскольку при этом падает плотность и, соответственно, повышается температура промерзания электролита.
Чем выше износ аккумулятора, тем меньшее время он удерживает заряд. В тёплое время года это не критично, а вот зимой забытые во включённом состоянии габаритные огни к моменту возвращения способны полностью «убить» аккумулятор, превратив содержимое в кусок льда.
В таблице можно увидеть температуру промерзания электролита, в зависимости от степени заряженности агрегата.
Зависимость температуры промерзания электролита от степени заряда аккумулятора | ||||
---|---|---|---|---|
Плотность электролита, мг/см. куб. | Напряжение, В (без нагрузки) | Напряжение, В (с нагрузкой 100 А) | Степень заряда АКБ, % | Температура замерзания электролита, гр. Цельсия |
1110 | 11,7 | 8,4 | 0,0 | -7 |
1130 | 11,8 | 8,7 | 10,0 | -9 |
1140 | 11,9 | 8,8 | 20,0 | -11 |
1150 | 11,9 | 9,0 | 25,0 | -13 |
1160 | 12,0 | 9,1 | 30,0 | -14 |
1180 | 12,1 | 9,5 | 45,0 | -18 |
1190 | 12,2 | 9,6 | 50,0 | -24 |
1210 | 12,3 | 9,9 | 60,0 | -32 |
1220 | 12,4 | 10,1 | 70,0 | -37 |
1230 | 12,4 | 10,2 | 75,0 | -42 |
1240 | 12,5 | 10,3 | 80,0 | -46 |
1270 | 12,7 | 10,8 | 100,0 | -60 |
Критическим считается падение уровня заряда ниже 70%. Все автомобильные электроприборы потребляют не напряжение, а ток. Без нагрузки даже сильно разряженный аккумулятор может показывать нормальное напряжение. Но при низком уровне, во время запуска двигателя, будет отмечаться сильная «просадка» напряжения, что является тревожным сигналом.
Своевременно заметить приближающуюся катастрофу возможно лишь в том случае, когда непосредственно в салоне установлен индикатор. Если во время работы автомобиля он постоянно сигнализирует о разрядке – пора ехать на СТО.
Какие существуют индикаторы
Многие АКБ, особенно необслуживаемые, имеют встроенный датчик (гигрометр), принцип работы которого основан на измерении плотности электролита.
Этот датчик контролирует состояние электролит и ценность его показателей относительна. Не очень удобно по несколько раз залазить под капот автомобиля, что бы проконтролировать состояние электролита в разных режимах работы.
Для контроля состояния АКБ значительно удобнее электронные приборы.
Виды индикаторов заряда аккумуляторной батареи
В автомагазинах продаётся множество таких устройств, различающихся дизайном и функционалом. Фабричные приборы условно делятся на нескольких типов.
По способу подключения:
- к разъёму прикуривателя;
- к бортовой сети.
По способу отображения сигнала:
- аналоговые;
- цифровые.
Принцип работы у них одинаков, определение уровня заряда АКБ и отображение информации в наглядном виде.
Принципиальная схема индикатора
Как сделать индикатор заряда аккумулятора на светодиодах?
Существуют десятки разнообразных схем контроля, но результат они выдают идентичный. Подобное устройство возможно собрать самостоятельно из подручных материалов. Выбор схемы и комплектующих зависит исключительно от ваших возможностей, фантазии и ассортимента ближайшего магазина радиотоваров.
Вот схема для понимания как работает индикатор заряда аккумулятора на светодиодах. Такую портативную модель можно собрать «на коленке» за несколько минут.
Д809 – стабилитрон на 9В ограничивает напряжение на светодиодах, а на трёх резисторах собран сам дифференциатор. Такой светодиодный индикатор срабатывает на силу тока в цепи. При напряжении 14В и выше сила тока достаточно для свечения всех светодиодов, при напряжении 12-13,5В светятся VD2 и VD3, ниже 12В — VD1.
Более продвинутый вариант при минимуме деталей можно собрать на бюджетном индикаторе напряжения — микросхеме AN6884 (KA2284).
Схема led индикатора уровня заряда АКБ на компараторе напряжения
Схема работает по принципу компаратора. VD1 – стабилитрон на 7,6В, он служит в качестве эталонного источника напряжения. R1 – делитель напряжения. При первоначальной настройке он выставляется в такое положение, чтобы при напряжении 14В светились все светодиоды. Напряжение, поступающее на входы 8 и 9, сравнивается через компаратор, а результат дешифруется на 5 уровней, зажигая соответствующие светодиоды.
Контроллер зарядки АКБ
Что бы отслеживать состояние аккума во время работы зарядного устройства, делаем контроллер заряда АКБ. Схема устройства и используемые компоненты максимально доступны, в то же время обеспечивают полный контроль над процессом подзарядки батарей.
Принцип работы контроллера следующий: пока напряжение на аккумуляторе ниже напряжения заряда – горит зелёный светодиод. Как только напряжение сравняется, открывается транзистор, зажигая красный светодиод. Изменение резистора перед базой транзистора меняет уровень напряжения, необходимого для открытия транзистора.
Это универсальная схема контроля, которую можно использовать как для мощных автомобильных аккумуляторов, так и для миниатюрных литиевых батареек-аккумуляторов.