Обявления

Для полноценной работы рекомендуется пройти регистрацию.

Рекламные сообщения будут удаляться вместе с пользователем. Что есть реклама - буду решать я.

Индикатор заряда литиевого аккумулятора (1S)

Здесь только проекты на ATtiny

Индикатор заряда литиевого аккумулятора (1S)

Сообщение hardlock » 25 авг 2016 00:20

Давно уже стоит вопрос индикации заряда литиевых аккумуляторов. Причём для 2-3-5 ячеечных батарей давно пользуюсь китайским вольтметром (до 8 ячеек) за $1,1 - 1,5. А тут стала проблема - необходимо максимально компактное, максимально простое, максимально информативное устройство для 1 банки лития. Перебрал я много конструкция, понравились несколько, но ни одна не была подходящей. Для истории оставлю:
1) на 10 штуках TLV431 :scratch:
2) на ATtiny25
3) на ATtiny13, но без исходников...
ну и т.д. достаточно набрать в гугле "индикатор заряда li-ion"
Всё как-то не то, всё как-то не так.

Техническое задание:
1) индикация уровня заряда батареи 3 разноцветными светодиодами (красный, желтый, зелёный)в пределах 3,0 - 4,2 Вольта.
2) Отображение 6 уровней заряда.
3) минимальный размер (до 10*30 мм).

Схема.
Итак поехали. Напряжение индикации от 3,0 до 4,2 Вольта (на ячейке лития больше и меньше быть не может, т.е. не должно). Значит этим же напряжением можно и питать нашу схему на микроконтроллере! Набросал схему, получилось как-то так:
sch_tiny13.gif
sch_tiny13.gif (12.4 КБ) Просмотров: 809

Питаемся от измерительной цепи. Резисторы R1/R2 делитель напряжения на вход АЦП, подобран так, чтобы при напряжении питания 4,35 на входе АЦП было до 1,1 Вольта (Внутреннее опорное напряжение АЦП). Конденсатор С2 - фильтр на входе АЦП, конденсаторы C1 и C3 - по питанию. Остался резистор R3 - чтобы ресет не болтался в воздухе. Проще наверное не получится.

Пробуем нарисовать плату.
pcb_wo_button.gif
pcb_wo_button.gif (6.99 КБ) Просмотров: 809

6*19мм... А кнопка влезет? Легко! 6*28мм... Все резисторы, конденсаторы и светодиоды типоразмера 0603.
pcb_with_button.gif
pcb_with_button.gif (13.04 КБ) Просмотров: 809

По просьбам трудящихся сделал вариант на светодиодах 0805, только пришлось убрать конденсатор C3.
pcb_with_button_led0805.png
pcb_with_button_led0805.png (18.46 КБ) Просмотров: 477

Исходник платы - во вложениях (Sprint-Layout 6.0) - pcb_li-ion_charge_indicator.rar

Попробуем реализовать в железе.

Хм, получилось. И получилось довольно компактно. Идём далее, т.к. устройство не будет работать без прошивки.

Прошивка.
Для начала надо придумать способ индикации. Сочетания цветов мне не нравятся - красиво, но не наглядно. Поэтому будем делать просто.
scale.GIF
scale.GIF (4.17 КБ) Просмотров: 809

Поясню картинку.
Менее 3,3 Вольт - считаем батарея разряжена совсем, моргаем красным.
От 3,3 до 3,6 Вольта - минимальный заряд - горит красный.
и т.д.
Уровни подобрал с учётом графиков зависимости заряда от напряжения на банке (встречались в описанных вначале статьях), но никто не мешает подкорректировать под свои нужды. Внизу картинки указаны идентификаторы, которые задают в прошивке напряжения (строки 35-40):
Код: Выделить всё
                               //"напряжение" в сотнях миливольт, т.е. 42 = 4,2 Вольта.
#define U_1            33      //3,3V
#define U_2            36      //3,6V
#define U_3            38      //3,8V
#define U_4            39      //3,9V
#define U_5            41      //4,1V


Ещё в прошивке можно изменить расположение светодиодов (но только в рамках PB0 - PB2) в строках 29-31:
Код: Выделить всё
#define LED_RED     PORTB.2    //выход красного светодиода
#define LED_YELLOW  PORTB.1    //выход желтого светодиода
#define LED_GREEN   PORTB.0    //выход зелёного светодиода


Остальное лучше не менять, или придётся править код, т.к. не все возможные изменения учтены.

Калибровка.
Но для начала нам нужно получить отправную точку в наших расчётах - значение АЦП при напряжении питания 4,2 Вольта. Для этого:
1) заливаем прошивку
2) включаем устройство и видим бегущий огонь - значит прошивка работает нормально, но не откалибрована (или слетел EEPROM),
3) выставляем напряжение питания 4,2 Вольта (или питаем от полностью заряженной батарейки, можно ещё подключить к зарядному устройству типа TP4056).
4) ВЫКЛЮЧАЕМ УСТРОЙСТВО!
5) замыкаем вывод PB2 на питание вывод 7 + 8 и удерживаем (можно замкнуть хоть отвёрткой).
6) Подключаем питание устройства, должен загореться красный светодиод (мы же его выход замкнули на питание, но не страшно, т.к. этот порт сейчас настроен на вход.)
7) Примерно через 1 секунду загорится желтый светодиод, можно размыкать выводы 7 и 8, но питание убирать нельзя!!!
8) Ещё через секунду загорится зелёный светодиод.
9) Ещё через секунду оба светодиода погаснут. Теперь питание можно выключать или подождать 3 секунды и индикатор начнёт свою нормальную работу!
10) Всё откалибровано, теперь надо свериться с точным мультиметром.

Небольшое видео:

Как по мне, то получилось довольно наглядно, компактно, просто в повторении, ну и дешёво, если тиньки покупать в Китае. А вот собственно для чего изобретался велосипед:

Про эту штуку расскажу отдельно.

PS: пришла интересная мысль. Если взять батарею аккуммуляторов, неважно сколько ячеек подключено последовательно, и измерять напряжение одной ячейки, то это так же точно укажет на степень заряда всей батареи... При условии, что разбаланса по ячейкам нет. Допустим у меня шуруповёрт давно переделан на 5S 3000mAh 45C батарею от RC моделей. Заряжаю я её только iMAX B6 (клон). Т.е. разбаланса не допускаю. А вот проверять уровень заряда, каждый раз подключая вольтметр как в самом начале статьи - не очень удобно, а внутрь батареи он не влез, да и отключать его надо, т.к. высадит батарею. А такая кроха (из этой статьи) отлично впишется в любой корпус. Доработаю - покажу )))

Повторять конструкцию можно.
Вложения
pcb_li-ion_charge_indicator.rar
(15.43 КБ) Скачиваний: 69
voltmeter_t13_hex.rar
(1.22 КБ) Скачиваний: 29
voltmeter_v1.0.rar
(10.81 КБ) Скачиваний: 33
Аватара пользователя
hardlock
Администратор
 
Сообщения: 3371
Зарегистрирован: 21 янв 2009 15:48
Откуда: zp.ua

Re: Индикатор заряда литиевого аккумулятора (1S)

Сообщение georg77 » 25 авг 2016 22:20

во-1-х, проще можно сделать, если оставить только 1 светодиод
пусть горит с циклом 1-2 сек столько времени, насколько заряжена батарея
во 2-х, калибровка через считывание епрома кажется мне чересчур для академиков
можно просто написать калибровку при замыкании на землю оставшихся свободных ножек тиньки
georg77
Частенько бываю
 
Сообщения: 83
Зарегистрирован: 26 ноя 2011 06:38

Re: Индикатор заряда литиевого аккумулятора (1S)

Сообщение hardlock » 25 авг 2016 22:32

georg77 писал(а):во-1-х, проще можно сделать, если оставить только 1 светодиод
пусть горит с циклом 1-2 сек столько времени, насколько заряжена батарея

согласен, но пострадает удобство, вернее удобочитаемость. Я уже думал оставить 2 светодиода и моргать целые числа одним, десятые доли - другим, но это надо считать каждый раз )))...
georg77 писал(а):можно просто написать калибровку при замыкании на землю оставшихся свободных ножек тиньки

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

Хм, посмотрел, а свободных ножек то и нет... Чё будем думать? Можно освободить 2-ю ногу, но тогда плата подрастёт... Хотя её можно не запаивать на момент калибровки, а потом запаять. О! вариант!
Аватара пользователя
hardlock
Администратор
 
Сообщения: 3371
Зарегистрирован: 21 янв 2009 15:48
Откуда: zp.ua

Re: Индикатор заряда литиевого аккумулятора (1S)

Сообщение georg77 » 26 авг 2016 07:42

резистор на reset не нужен (ИМХО)
чем занимается 2- ножка?
мне кажется, ничем особенно нужным она заниматься не может
может её под калибровку?
качество кнопки подачи питания сильно падает со временем, это может вызвать понятные проблемы
в 10-15 летних телевизорах (находящихся в тепличных условиях) видел кнопки с сопротивлением 50-150 ом
а в ТВ, простоявших в сарае - просто все кнопки приходится менять
georg77
Частенько бываю
 
Сообщения: 83
Зарегистрирован: 26 ноя 2011 06:38

Re: Индикатор заряда литиевого аккумулятора (1S)

Сообщение georg77 » 27 авг 2016 08:55

как вариант решения проблемы окисления кнопки - шунтировать её на время измерения и индикации p-канальным мосфетом
но в таком случае рациональнее кнопку включить в цепь затвора этого мосфета - и в некоторая степень окисления кнопки будет допустима
поменять бы местами 2 и 3 ножки
при включении 3-я ножка - в режиме входа
если на ней 0 В (замкнуто с 4- й) - тогда калибровка, считая что на входе 4.2 В
если на 2-й - "1" - тогда перевод её в состояние выхода , вывод "0" на время измерения и индикации
ни на чём не настаиваю, каждый делает как ему кажется лучше.
georg77
Частенько бываю
 
Сообщения: 83
Зарегистрирован: 26 ноя 2011 06:38

Re: Индикатор заряда литиевого аккумулятора (1S)

Сообщение hardlock » 27 авг 2016 10:09

georg77, идея интересная и я об этом думал, но тогда надо учитывать падение на мосфете... Прошивку доработать можно легко под любые варианты, поэтому при возникновении необходимости в разных вариантах буду дорабатывать. В шуруповёрнте вобще была мысль сделать так, чтобы индикатор включался при работе мотора, надо только регулятор чуть доработать - сделать выход... Жду тиньки и буду дорабатывать шурупик, тогда и появятся новые варианты )))
Аватара пользователя
hardlock
Администратор
 
Сообщения: 3371
Зарегистрирован: 21 янв 2009 15:48
Откуда: zp.ua

Re: Индикатор заряда литиевого аккумулятора (1S)

Сообщение georg77 » 27 авг 2016 10:35

"но тогда надо учитывать падение на мосфете..."
падение на мосфете будет порядка 1-2 мВ в худшем случае, что сравнимо с погрешностью АЦП тиньки - я бы не парился по поводу падения вообще, ничто не мешает эту "погрешность" корректировать программно.
никто не мерял сопротивление новых кнопок? Боюсь что даже новые кнопки уступят мосфетам.
http://www.aosmd.com/pdfs/datasheet/AO3401.pdf - пример мосфета, на Али очень недорого.
georg77
Частенько бываю
 
Сообщения: 83
Зарегистрирован: 26 ноя 2011 06:38

Re: Индикатор заряда литиевого аккумулятора (1S)

Сообщение hardlock » 06 окт 2016 10:49

Прошивка обновилась - Версия 1.0.

Калибровка.
Но для начала нам нужно получить отправную точку в наших расчётах - значение АЦП при напряжении питания 4,2 Вольта. Для этого:
1) заливаем прошивку
2) включаем устройство и видим бегущий огонь - значит прошивка работает нормально, но не откалибрована (или слетел EEPROM),
3) выставляем напряжение питания 4,2 Вольта (или питаем от полностью заряженной батарейки, можно ещё подключить к зарядному устройству типа TP4056).
4) ВЫКЛЮЧАЕМ УСТРОЙСТВО!
5) замыкаем вывод PB2 на питание (выводы 7 и 8) и удерживаем (можно замкнуть хоть отвёрткой).
6) Подключаем питание устройства, должен загореться красный светодиод (мы же его выход замкнули на питание, но не страшно, т.к. этот порт сейчас настроен на вход.)
7) Примерно через 1 секунду загорится желтый светодиод, можно размыкать выводы 7 и 8, но питание убирать нельзя!!!
8) Ещё через секунду загорится зелёный светодиод.
9) Ещё через секунду оба светодиода погаснут. Теперь питание можно выключать или подождать 3 секунды и индикатор начнёт свою нормальную работу!
10) Всё откалибровано, теперь надо свериться с точным мультиметром.

Все изменения в шапке, там же прошивка и и исходник.

Добавлено спустя 5 часов 19 минут 8 секунд:
По просьбе Alex_S добавил плату на светодиодах 0805. Всё в первом сообщении.
Аватара пользователя
hardlock
Администратор
 
Сообщения: 3371
Зарегистрирован: 21 янв 2009 15:48
Откуда: zp.ua

Re: Индикатор заряда литиевого аккумулятора (1S)

Сообщение Alex_S » 06 окт 2016 16:20

Пасиба!
Аватара пользователя
Alex_S
Частенько бываю
 
Сообщения: 142
Зарегистрирован: 22 дек 2009 13:11
Откуда: Одесса-мама

Re: Индикатор заряда литиевого аккумулятора (1S)

Сообщение georg77 » 07 окт 2016 08:38

как вариант для любителей минимализма (сам такой) могу предложить индикацию уровня заряда таким образом:
1 светодиод, при активации индикатора запускается ШИМ с периодом 5 сек, время свечения светодиода в периоде в % равно степени заряда батареи, если заряд 100% - всё-таки оставить 0,5-1-2% интервала (подобрать на глаз) на еле заметное помаргивание для обозначения исправной работы устройства.
Смысла в большей точности отображения не вижу.
Например, при активации светодиод горит примерно 4 сек и не горит 1 сек - значит заряд около 80%. После 3-х периодов индикации - отключить.
georg77
Частенько бываю
 
Сообщения: 83
Зарегистрирован: 26 ноя 2011 06:38

Сообщение hardlock » 07 окт 2016 08:48

Уж проще воспринять моргание посылками. Типа 4 раза, пауза, 1 раз = 4,1 Вольта. 3 раза, пауза, 5 раз - 3,5 Вольта . По времени почти одинаково )))
Аватара пользователя
hardlock
Администратор
 
Сообщения: 3371
Зарегистрирован: 21 янв 2009 15:48
Откуда: zp.ua

Re: Индикатор заряда литиевого аккумулятора (1S)

Сообщение Alex_S » 07 окт 2016 09:45

Шим с периодом 5 секунд - слишком много. Максимум - секунда. Суть то в том, что должно быть достаточно мимолетного взгляда.
Аватара пользователя
Alex_S
Частенько бываю
 
Сообщения: 142
Зарегистрирован: 22 дек 2009 13:11
Откуда: Одесса-мама

Re: Индикатор заряда литиевого аккумулятора (1S)

Сообщение georg77 » 07 окт 2016 11:16

hardlock:
вроде как собирались отображать не напряжение аккумулятора, а пересчитанную из напряжения степень заряженности?
и как долго будет моргаться 89% ?
при подсчёте можно ошибиться, для достоверности результата придётся повторить подсчёт импульсов - а это опять затраты времени.

Alex_S : период отображения можете делать как Вам удобнее, это не принципиально.

не сочтите мои предложения как упорное склонение к моей версии, просто я вижу такой вариант устройства простым и лаконичным, желаю Вам делать всегда только так, как нравится Вам.
georg77
Частенько бываю
 
Сообщения: 83
Зарегистрирован: 26 ноя 2011 06:38

Re: Индикатор заряда литиевого аккумулятора (1S)

Сообщение hardlock » 07 окт 2016 11:30

georg77, ну я точно не буду реализовывать вариант с ШИМом, т.к. слабо представляю как отличить 30-40% от 50-60%... Если есть желание - попробуйте, исходник есть, модифицировать легко.
Аватара пользователя
hardlock
Администратор
 
Сообщения: 3371
Зарегистрирован: 21 янв 2009 15:48
Откуда: zp.ua

Re: Индикатор заряда литиевого аккумулятора (1S)

Сообщение ma35tr0 » 07 окт 2016 12:52

Уважаемый hardlock, зачет вам за девайс!
Такой же девайс, но для автомобиля (Uмакс. = 15вольт) с таким же алгоритмом индикации и калибровкой Я сделал года 2-3 назад. Даже статью для форума подготовил, но в самый неудачный момент все пропало. Комп накрылся и винту наступили кранты. Столько всего у меня там было, все пропало :(
Остался только hex-файл залитый в тиньку.
Вот, что у меня получилось тогда.



С удовольствие выложил бы и платки в формате lay, но и их не осталось :sorry:

Добавлено спустя 1 минуту 20 секунд:
hardlock писал(а):georg77, ну я точно не буду реализовывать вариант с ШИМом, т.к. слабо представляю как отличить 30-40% от 50-60%...

Верно. Это лишнее. :-)
Аватара пользователя
ma35tr0
Частенько бываю
 
Сообщения: 98
Зарегистрирован: 02 дек 2010 13:12
Откуда: Город ветров, Страна огней


Вернуться в ATtiny



Кто сейчас на конференции

Сейчас этот форум просматривают: Bing [Bot], Majestic-12 [Bot], Yahoo [Bot] и гости: 5