Главная » Статьи » Проекты

Интеллектуальный контроллер заряда Li-Ion АКБ на микросхеме TP4056


 Столкнувшись с проблемами работы устройств, с возможностью автономной работы от заряжаемых литий-ионных аккумуляторов, решил собрать небольшое устройство которое должно контроллировать уровень заряда и при необходимости его подзаряжать. Устройство собрано на базе микроконтроллера ATMega48a, который измеряет напряжение на аккумуляторе и если напряжение на нем опустилось ниже допустимого порога, включает схему зарядки. Сама зарядка собрана на простом и дешевом контроллере TP4056. 



Схема контроллера




 
 Микросхему TP4056 я выпаял с готового модуля, купленного на e-bay Оттуда же взял и весь обвяз для нее. 


 Логика работы устройства 

 Микроконтроллер изредка (примерно каждые 17 секунд) просыпается, измеряет напряжение на аккумуляторе и снова погружается в сон. Оставшийся заряд на аккумуляторе визуально отображается тремя светодиодами: при напряжении выше 3,6 вольт мигает зеленый светодиод (D3), при напряжении от 3,6 до 3,3 вольт мигает желтый (D2). Если напряжение ниже 3,3 вольта начинает мигать красный светодиод (D1). Если аккумулятор разряжен до 3,2 вольт или ниже, в работу включается зарядка на микросхеме TP4056, которая включается транзистором Q1.

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


 Входное напряжение величиной 5 вольт, необходимое для подзарядки аккумулятора, подается на разъем V input. Если планируется туда подавать большее напряжение, на плате предусмотрено место под стабилизатор LM1117-5 в корпусе SOT-223. 






 Во время зарядки аккумулятора горит светодиод D4. Когда аккумулятор зарядится полностью, на выводе STDBY микросхемы TP4056 появляется низкий уровень, зафиксировав изменение уровня сигнала на этом выводе, микроконтроллер выключает подзарядку и переходит в рабочий режим слежения. 





 Для отладки, если понадобится подобрать свои значения порогов срабатывания, данные о напряжении АКБ выводятся в терминал на скорости 1200 бод.










 Программа скомпилирована на частоту работы микроконтроллера 1МГц (частота работы atmega48a по умолчанию)






Категория: Проекты | Добавлено: 04.03.2013
Просмотров: 63046 | Комментарии: 31 | Теги: Li-ion | Рейтинг: 4.8/16
Всего комментариев: 311 2 »
31 exersizze   (27.12.2013 19:31) [Материал]
>>залить этот код , а потом уже измерять напряжение аккумулятора и там уже увеличивать/уменьшать переменную?
да именно так. Печатную плату рисовал в DipTrace, файл прикреплен в конце статьи.

30 domrustika   (27.12.2013 14:36) [Материал]
ясно. т.е пока можно просто собрать так, залить этот код , а потом уже измерять напряжение аккумулятора и там уже увеличивать/уменьшать переменную?
да и не можешь выложить файл печатной платы в lay? наверняка осталась..

29 exersizze   (27.12.2013 01:45) [Материал]
Даже если собирать по исходной схеме, добиться одинаковых результатов не получится, сказываются погрешность резисторов, транзистор тоже добавлял сопротивление в делитель, да и ацп от микроконтроллера к микроконтроллеру может работать по разному.
Поэтому цифры полученные с ацп (переменная W) нужно снимать заново и смотреть какие значения соответствуют каким напряжениям.

28 domrustika   (27.12.2013 01:24) [Материал]
спасибо! всмысле а зачем менять программу из за выбрасывания транзистора? и какие переменные менять на что ? в коде их только 2 -
Dim W As Integer
Dim S As Integer

27 exersizze   (26.12.2013 23:59) [Материал]
делитель для АЦП на R1 и R2, транзистор всеголишь "открывает" землю для этого делителя. R3 и R4 нужны для открывания/закрывания полевика, поэтому будут не нужны.
в итоге вот как то так (номиналы оставляй, потому как все равно перенастраивать придется все значения переменных в программе)

26 domrustika   (26.12.2013 18:23) [Материал]
ясно, спасибо. Уж не ругайте за такие вопросы, я пока начинающий))) http://i023.radikal.ru/1312/92/807e9d5c2b45.jpg вот нарисовал правильно будет соединить если выкинуть транзистор 2?
и правильно я понял что делитель состоит из R2 R3 R4? на какие номиналы их заменить?

25 pchela5   (16.12.2013 11:01) [Материал]
Внизу писали, что можно обойтись без Q2 - и это правильно.

24 domrustika   (16.12.2013 02:16) [Материал]
спасибо)) и здесь придется спросить есть замены примененным транзисторам? если Q1 еще можно найти то с Q2 возникли проблемы...

23 exersizze   (21.11.2013 20:54) [Материал]
Размеры получились бы больше, да и разъем mini-usb на плате был ни к чему.

22 domrustika   (21.11.2013 12:19) [Материал]
А почему не использовали готовый модуль с ебея а выпаивали микруху и обвяз?)
или я что то не понимаю?)

21 pchela5   (12.03.2013 09:43) [Материал]
>to exersizze
>А если опорное берется с лития то и фильтры там ни к чему, имхо. Хотя если делать >как говоришь (питаться с внешнего источника) то да, без этого никак.

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

>Немного не понял про развязку питания с управлением через мегу, для чего?

Как для чего - ты же будешь питать конечного потребителя - в дальнейшем? вот и выводы питания туда же цеплять.

+1   Спам
20 exersizze   (11.03.2013 21:43) [Материал]
То что питание схемы будет идти от батареи было задумано с целью того, чтобы всегда была индикация состояния этой батареи, в независимости от того подключено ли внешнее питание. А если опорное берется с лития то и фильтры там ни к чему, имхо. Хотя если делать как говоришь (питаться с внешнего источника) то да, без этого никак.
Немного не понял про развязку питания с управлением через мегу, для чего?
Кстати про потребление меги48 в таком режиме, сейчас замерил сколько осталось на батарее: на начало эксперимента 3,78V сейчас 3,76V. Около 0,02 вольта за неделю:)  офигенно же, и явно это не предел, можно еще выжать...

19 pchela5   (11.03.2013 15:45) [Материал]
Разбирая схему, наткнулся на следующие недочеты: питание микросхемы и, соответственно, светодиодов идет от аккумулятора, что его разряжает, желательно поставить дроссель и конденсатор для входа AVCC, всунуть конденсатор на вход AREF. В варианте №2 предлагаю использовать следующее: поставить развязку по питанию на полевиках с управлением от контроллера, диоды перевернуть к плюсу питания или два из них - зеленый и желтый, третий - красный - по желанию можно и к литию, предусмотреть места для указанных выше деталюшек. Если поковыряться в программе, то для повышения точности измерения напряжения можно использовать следующее: считывать данные с АЦП в режиме Noise Reduction, применить усреднение из нескольких выборок или же для совсем продвинутых - оверсемплинг, как описано в апноуте у atmel - avr121 http://www.atmel.com/images/doc8003.pdf, перевод http://chipenable.ru/index.php/programming-avr/item/141-avr121-oversampling-decimation.html В последних двух вариантах можно убрать R3, R4, Q2, изменив номиналы R1, R2.

PS Насчет светодиодов некритичное замечание, если они будут моргать так редко.

18 exersizze   (11.03.2013 13:54) [Материал]
youhim, спасибо за график! Заменю алгоритм чтобы начинал заряжать при 80% остаточном заряде

+2   Спам
17 youhim   (10.03.2013 15:26) [Материал]
Вот еще показательный график, который отображает зависимость срока службы аакума от глубины разряда.


+1   Спам
16 youhim   (10.03.2013 15:20) [Материал]
>>А как к этому отнесется литиевый аккумулятор, если его постоянно держать на подзаряде? Думаю, на срок службы это скажется отрицательно.
Как раз держать литий постоянно заряженным менее вредно чем постоянно гонять лишние циклы заряд/разряд. Хотя, справедливости ради, нужно сказать, что литий стареет как от глубокого разряда, так и от постоянного нахождения в заряженном состоянии. Если приоритетом есть не время автономной работы а срок службы аккумулятора, то оптимальным решением будет поддержание его в пределах "напряжения хранения", которое обеспечивает минимальное старение батареи. Оптимальные условия хранения Li-ion-аккумуляторов достигаются при заряде на уровне 40–70 % от ёмкости аккумулятора и температуре около 5 °C. При этом низкая температура является более важным фактором для малых потерь ёмкости при долговременном хранении. http://ru.wikipedia.org/wiki/%D0%9B%D0%B8%D1%82%D0%B8%D0%B9-%D0%B8%D0%BE%D0%BD%D0%BD%D1%8B%D0%B9_%D0%B0%D0%BA% D0%BA%D1%83%D0%BC%D1%83%D0%BB%D1%8F%D1%82%D0%BE%D1%80#.D0.9D.D0.B5.D0.B4.D0.BE.D1 .81.D1.82.D0.B0.D1.82.D0.BA.D0.B8

+1   Спам
15 exersizze   (09.03.2013 09:31) [Материал]
За необходимость транзистора Q2 спорить не буду, можно конечно  увеличить сопротивление делителя, но тогда возрастает вероятность того что показания с АЦП будут прыгать. Поэтому решил что лучше пустить через транзистор.

14 pchela5   (07.03.2013 14:17) [Материал]
Много чего написал, но, подумав, стер. В принципе, каждый может допилить устройство под себя и свое видение процессов эксплуатации как аккумуляторов, так и девайсов.

>>>KoSS_89 (Вчера 02:28)
>>>Можно не ставить Q2 а просто увеличить общее значение сопративления делителя

Это правильное решение - раза так в два.

13 RD3AVJ   (07.03.2013 12:45) [Материал]
pchela5  конечно, позволяю не согласиться)))
в спорах рождается истина. Я, правда, дальше писал "..С возможностью доработки под свои нужды. Это незаконченный проект по питанию,а один из возможных его алгоритмов..."  smile
Стержень есть, дальше - все в наших руках wink

12 exersizze   (07.03.2013 12:27) [Материал]
>>>если можно оставить одну микрохему заряда с постоянным включением?
А как к этому отнесется литиевый аккумулятор, если его постоянно держать на подзаряде? Думаю, на срок службы это скажется отрицательно.
У кситала, кстати, применяется свинцовый аккумулятор.
На счет добавления схемы переключения на резервный источник идея хорошая, думаю два транзистора можно вписать без увеличения размеров платы. Возьму заметку на будущее)

11 pchela5   (07.03.2013 11:11) [Материал]
то RD3AVJ
"pchela5 это не автономный источник питания))) - это средство автомата зарядки в составе устройств с возможностью автономного питания. В этом контексте оно соответствует своим техданным на все сто. "
Позвольте не согласиться ))) Чисто гипотетически может возникнуть ситуация, что аккумулятор близок к порогу разряда, выключили свет и оппа - вместо 8 часов атономной работы мы имеем 1,5. Естественно, изменяя порог начала заряда, можно переделать схему под свои нужды, но тогда какой в ней смысл, если можно оставить одну микрохему заряда с постоянным включением? Мое мнение - аккумулятор должен постоянно быть заряжен как можно ближе к максимальной емкости (охранные сигнализации - Кситал, например (это не реклама) - работают именно по такому принципу) и к данному девайсу надо прикручивать устройство переключения с основного на резервный источник питания.

10 aui2002   (06.03.2013 18:24) [Материал]
Если в эту же платку "впилить" еще и переключатель питания, чтобы при отсутствии внешнего питания устройство автоматически переключалось на батарею, то девайсу вообще цены не будет.

9 KoSS_89   (06.03.2013 02:28) [Материал]
Можно не ставить Q2 а просто увеличить общее значение сопративления делителя, и перенести всё в более мелкий корпус, например тини13....

8 exersizze   (05.03.2013 20:07) [Материал]
youhim, эта приблуда задумывалась как нечто поддерживающее резервный аккумулятор в рабочем состоянии. К примеру, у нас есть гипотетическое устройство которое постоянно запитывается от сети и имеет возможность переключаться на аккумулятор в случае пропадании основного напряжения (GSM сигнализация, ага smile ). Так вот чтобы аккумулятор не успел разрядится пока простаивает в ожидании и нужен этот контроллер. С порогами заряда, да, согласен, в таком случае можно поднять. Чтобы иметь запас побольше. 

Сейчас проверяю за сколько этот агрегат разрядит аккумулятор. Стоит на столе, светодиодом зеленым мигает:) Но последние испытания на tiny2313 http://avrproject.ru/blog/rezhim_ehnergosberezhenija/2013-02-19-90 обещают долгую работу

7 RD3AVJ   (05.03.2013 17:42) [Материал]
pchela5  это не автономный источник питания))) - это средство автомата зарядки в составе устройств с возможностью автономного питания. В этом контексте оно соответствует своим техданным на все сто. С возможностью доработки под свои нужды. Это незаконченный проект по питанию,а один из возможных его алгоритмов. И мне очень помог для одного из устройств, которое сейчас в совместной разработке с автором статьи. В этом проекте акк разрядится дай бог за неделю. А то две. Так что скорее само устройство сдохнет, чем аккумулятор при такой "езде" biggrin

6 pchela5   (05.03.2013 17:26) [Материал]
Ну дык это понятно, но тогда смысл в применении этого девайса в именно таком разрезе? Вот если устройство автономное, то тогда да - выставил ему пороги, чтобы начал пищать при разряде - типа "включите меня на зарядку". А то у меня были такие случае - приедешь на рыбалку, а фонарь или еще какая приблуда не работают (правда аккумуляторы не литиевые, но не суть)

5 RD3AVJ   (05.03.2013 16:14) [Материал]
youhim, pchela5 приветствую! А что мешает изменить циклы программно, по желанию? В статье сказано, что пороги можно менять как хочешь wink

4 pchela5   (05.03.2013 15:10) [Материал]
Кстати, да! Поддерживаю youhim'a насчет вопроса.

3 youhim   (05.03.2013 10:26) [Материал]
Не совсем понятна логика устройства. Если вам необходимо, чтобы устройство было всегда готово к автономному использованию, то почему устройство ждет полного разряда аккума, а не подзаряжает его постоянно? может ведь оказаться, что он не успеет зарядить когда девайс понадобиться. Ну и еще это вредно для лития, - чем глубже циклы, тем быстрее старение.

2 max   (05.03.2013 08:45) [Материал]
Прикольно. В свое время искал нечто подобное, но как всегда, не нашел. Применил max1555 и max1811.

1-30 31-31
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]






авторизация
Логин:
Пароль: