24 февраля 2022 года в 5 утра, без объявления войны, россия напала на Украину.

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

Я не умею много писать, да и без мата тут сложно что-то написать.
Поэтому выражу все мои чувства одним фото.

«Спасибо дедушка путин за счастливое детство и мое освобождение». ©

Дополню словами уважаемого человека, широко известного в узких кругах:
тут путин не виноват, не он нажал на кнопку сброса,
- виноват пилот, который нажал на кнопку сброса, мог промахнуться. виноваты жена/мать/брат/друг пилота, которые не позвонили ему, и не сказали "нет войне",
- виноват тот, кто отдал приказ, и виноваты его жена/мать/брат/друг,
- виноват тот, кто цеплял бомбу, потому что он мог её обезвредить, "ну бывает, не сработала",
- виноват кладовщик, виноват водитель, который перевозил эту бомбу. виноваты жена...и т.д., потому что не позвонили и не сказали "нет войне, не вези бомбы",
- виноваты все журналисты оркостана, потому что они врут,
- виноваты недограждане, потому что не сказали журналистам "не врите",
- виноваты все... все 160 миллионов,
- а те 2, 3, 5 тысяч, которые вышли, и которых запаковали, это даже не десятая процента, это погрешность... случайно оказавшиеся в мордоре люди. ©

PS: За несколько часов до вторжения был атакован и взломан крупный интернет хостинг в Киеве, где и размещался мой сайт. Только 16 марта отважным админам удалось частично восстановить работу хостинга. Далеко не все сайты выжили, т.к. были повреждены даже бэкапы.
Нет, нет, я не жалуюсь, нет. В цифровом мире нет ничего ценного, материального...


Due to periodic DDoS attacks, the forum may not be available.

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

Здесь только проекты на ATtiny
User avatar
hardlock
Администратор
Posts: 4010
Joined: 21 Jan 2009 14:48
Location: Minsk - zp.ua
Contact:

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

Post by hardlock »

Давно уже стоит вопрос индикации заряда литиевых аккумуляторов. Причём для 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 KiB) Viewed 20502 times
Питаемся от измерительной цепи. Резисторы R1/R2 делитель напряжения на вход АЦП, подобран так, чтобы при напряжении питания 4,35 на входе АЦП было до 1,1 Вольта (Внутреннее опорное напряжение АЦП). Конденсатор С2 - фильтр на входе АЦП, конденсаторы C1 и C3 - по питанию. Остался резистор R3 - чтобы ресет не болтался в воздухе. Проще наверное не получится.

Пробуем нарисовать плату.
pcb_wo_button.gif
pcb_wo_button.gif (6.99 KiB) Viewed 20502 times
6*19мм... А кнопка влезет? Легко! 6*28мм... Все резисторы, конденсаторы и светодиоды типоразмера 0603.
pcb_with_button.gif
pcb_with_button.gif (13.04 KiB) Viewed 20502 times
По просьбам трудящихся сделал вариант на светодиодах 0805, только пришлось убрать конденсатор C3.
pcb_with_button_led0805.png
Исходник платы - во вложениях (Sprint-Layout 6.0) - pcb_li-ion_charge_indicator.rar

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

Прошивка.
Для начала надо придумать способ индикации. Сочетания цветов мне не нравятся - красиво, но не наглядно. Поэтому будем делать просто.
scale.GIF
scale.GIF (4.17 KiB) Viewed 20502 times
Поясню картинку.
Менее 3,3 Вольт - считаем батарея разряжена совсем, моргаем красным.
От 3,3 до 3,6 Вольта - минимальный заряд - горит красный.
и т.д.
Уровни подобрал с учётом графиков зависимости заряда от напряжения на банке (встречались в описанных вначале статьях), но никто не мешает подкорректировать под свои нужды. Внизу картинки указаны идентификаторы, которые задают в прошивке напряжения (строки 35-40):

Code: Select all

                               //"напряжение" в сотнях миливольт, т.е. 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:

Code: Select all

#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) Всё откалибровано, теперь надо свериться с точным мультиметром.

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

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

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

Повторять конструкцию можно.

UPD (10.08.2017)
Давно уже были заказаны платы в Китае, но всё никак не доходили руки до написания, да и новая версия оказалась чуть хуже, но об этом позже.

Схема v2.0
sch_tiny13_v2.GIF
Т.к. было пожелание использования RGB светодиодов я попытался сделать схему универсальной. Для этого пришлось светодиодам сделать общий плюс... В этом скрывался косяк, который обнаружился только при отладке новой платы. Косяк заключается, в том, что теперь значительно снизилась точность измерений напряжения. Думаю это как-то связано с внутренними особенностями Тини13, т.к. при переделке светодиодов на общий минус проблема пропадает, т.е. косяк не в плате... Но на практике этот недостаток практически не заметен и точность измерения ± 0,03В уже за гранью разумного для "индикатора". поэтому выкладываю плату в том виде, в котором она есть, в следующий раз буду заказывать платы с "общим минусом", тогда и обновлю.

Ещё в схеме появился коммутатор кнопки на входе. Он нужен для удержания питания схемы после отпускания кнопки. Приобретался NTJD1155L на Aliexpress.

Печатная плата.
Т.к. плата двухстороняя, то показывать скрин из Спринта - кошмар для глаз )))
screen.png
Лучше покажу рендер из файлов Gerber:
ScreenShot_1.png
ScreenShot_2.png
Ну а в живую платы выглядели вот так:
IMG_20161130_115354_.jpg
IMG_20161130_115300_.jpg
Собранная плата (флюс не отмывал, каюсь)...
DSCN2352_.jpg
DSCN2354_.jpg
Файл спринта:
pcb_li-ion_charge_indicator_v2.rar
(13.72 KiB) Downloaded 463 times
Прошивка.
В новой прошивке (voltmeter_v2.0_inet.rar) логика работы не поменялась, за исключением того, что для калибровки нужно замыкать не на плюс, а на землю!
Attachments
pcb_li-ion_charge_indicator.rar
(15.43 KiB) Downloaded 1108 times
voltmeter_t13_hex.rar
(1.22 KiB) Downloaded 723 times
voltmeter_v1.0.rar
(10.81 KiB) Downloaded 781 times
voltmeter_v2.0_inet.rar
(10.38 KiB) Downloaded 903 times
georg77
Частенько бываю
Posts: 125
Joined: 26 Nov 2011 05:38

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

Post by georg77 »

во-1-х, проще можно сделать, если оставить только 1 светодиод
пусть горит с циклом 1-2 сек столько времени, насколько заряжена батарея
во 2-х, калибровка через считывание епрома кажется мне чересчур для академиков
можно просто написать калибровку при замыкании на землю оставшихся свободных ножек тиньки
User avatar
hardlock
Администратор
Posts: 4010
Joined: 21 Jan 2009 14:48
Location: Minsk - zp.ua
Contact:

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

Post by hardlock »

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

Хм, посмотрел, а свободных ножек то и нет... Чё будем думать? Можно освободить 2-ю ногу, но тогда плата подрастёт... Хотя её можно не запаивать на момент калибровки, а потом запаять. О! вариант!
georg77
Частенько бываю
Posts: 125
Joined: 26 Nov 2011 05:38

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

Post by georg77 »

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

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

Post by georg77 »

как вариант решения проблемы окисления кнопки - шунтировать её на время измерения и индикации p-канальным мосфетом
но в таком случае рациональнее кнопку включить в цепь затвора этого мосфета - и в некоторая степень окисления кнопки будет допустима
поменять бы местами 2 и 3 ножки
при включении 3-я ножка - в режиме входа
если на ней 0 В (замкнуто с 4- й) - тогда калибровка, считая что на входе 4.2 В
если на 2-й - "1" - тогда перевод её в состояние выхода , вывод "0" на время измерения и индикации
ни на чём не настаиваю, каждый делает как ему кажется лучше.
User avatar
hardlock
Администратор
Posts: 4010
Joined: 21 Jan 2009 14:48
Location: Minsk - zp.ua
Contact:

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

Post by hardlock »

georg77, идея интересная и я об этом думал, но тогда надо учитывать падение на мосфете... Прошивку доработать можно легко под любые варианты, поэтому при возникновении необходимости в разных вариантах буду дорабатывать. В шуруповёрнте вобще была мысль сделать так, чтобы индикатор включался при работе мотора, надо только регулятор чуть доработать - сделать выход... Жду тиньки и буду дорабатывать шурупик, тогда и появятся новые варианты )))
georg77
Частенько бываю
Posts: 125
Joined: 26 Nov 2011 05:38

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

Post by georg77 »

"но тогда надо учитывать падение на мосфете..."
падение на мосфете будет порядка 1-2 мВ в худшем случае, что сравнимо с погрешностью АЦП тиньки - я бы не парился по поводу падения вообще, ничто не мешает эту "погрешность" корректировать программно.
никто не мерял сопротивление новых кнопок? Боюсь что даже новые кнопки уступят мосфетам.
http://www.aosmd.com/pdfs/datasheet/AO3401.pdf - пример мосфета, на Али очень недорого.
User avatar
hardlock
Администратор
Posts: 4010
Joined: 21 Jan 2009 14:48
Location: Minsk - zp.ua
Contact:

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

Post by hardlock »

Прошивка обновилась - Версия 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. Всё в первом сообщении.
User avatar
Alex_S
Живу тут
Posts: 156
Joined: 22 Dec 2009 12:11
Location: Одесса-мама
Contact:

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

Post by Alex_S »

Пасиба!
georg77
Частенько бываю
Posts: 125
Joined: 26 Nov 2011 05:38

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

Post by georg77 »

как вариант для любителей минимализма (сам такой) могу предложить индикацию уровня заряда таким образом:
1 светодиод, при активации индикатора запускается ШИМ с периодом 5 сек, время свечения светодиода в периоде в % равно степени заряда батареи, если заряд 100% - всё-таки оставить 0,5-1-2% интервала (подобрать на глаз) на еле заметное помаргивание для обозначения исправной работы устройства.
Смысла в большей точности отображения не вижу.
Например, при активации светодиод горит примерно 4 сек и не горит 1 сек - значит заряд около 80%. После 3-х периодов индикации - отключить.
User avatar
hardlock
Администратор
Posts: 4010
Joined: 21 Jan 2009 14:48
Location: Minsk - zp.ua
Contact:

Post by hardlock »

Уж проще воспринять моргание посылками. Типа 4 раза, пауза, 1 раз = 4,1 Вольта. 3 раза, пауза, 5 раз - 3,5 Вольта . По времени почти одинаково )))
User avatar
Alex_S
Живу тут
Posts: 156
Joined: 22 Dec 2009 12:11
Location: Одесса-мама
Contact:

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

Post by Alex_S »

Шим с периодом 5 секунд - слишком много. Максимум - секунда. Суть то в том, что должно быть достаточно мимолетного взгляда.
georg77
Частенько бываю
Posts: 125
Joined: 26 Nov 2011 05:38

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

Post by georg77 »

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

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

не сочтите мои предложения как упорное склонение к моей версии, просто я вижу такой вариант устройства простым и лаконичным, желаю Вам делать всегда только так, как нравится Вам.
User avatar
hardlock
Администратор
Posts: 4010
Joined: 21 Jan 2009 14:48
Location: Minsk - zp.ua
Contact:

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

Post by hardlock »

georg77, ну я точно не буду реализовывать вариант с ШИМом, т.к. слабо представляю как отличить 30-40% от 50-60%... Если есть желание - попробуйте, исходник есть, модифицировать легко.
User avatar
ma35tr0
Живу тут
Posts: 165
Joined: 02 Dec 2010 12:12
Location: Город ветров, Страна огней
Contact:

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

Post by ma35tr0 »

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

Добавлено спустя 1 минуту 20 секунд:
hardlock wrote:georg77, ну я точно не буду реализовывать вариант с ШИМом, т.к. слабо представляю как отличить 30-40% от 50-60%...
Верно. Это лишнее. :-)
Leo174
Пробегал мимо
Posts: 2
Joined: 27 Apr 2017 08:28

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

Post by Leo174 »

Хороший проект, спасибо автору. Косаемо внедрения данного устройства в шуруповёрт неплохо бы добавить ещё один светодиод белого цвета. И сделать отдельный вход, при появлении длинного импульса(допустим более 1сек), ключается белый светодиод на 5сек. Т.е. Шуруповёрт с подсветкой.При коротком импульсе(допустим менее 1сек), белый не включается, а запускается программа индикации на 3-5сек. Затем контроллер засыпает. И просыпается по импульсу. Как думаете возможно такое сделать?
User avatar
hardlock
Администратор
Posts: 4010
Joined: 21 Jan 2009 14:48
Location: Minsk - zp.ua
Contact:

Post by hardlock »

Ног уже не осталось... А сделать можно )))
Leo174
Пробегал мимо
Posts: 2
Joined: 27 Apr 2017 08:28

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

Post by Leo174 »

Спасибо до ответ. Так первая и вторая ноги можно задействовать? Не силён я в программировании, но всеже попробую поизучать исходник, да я думаю и форумчане помогут своять. Ведь крайне полезный будет девайс. Ставь в любой шурик.
User avatar
hardlock
Администратор
Posts: 4010
Joined: 21 Jan 2009 14:48
Location: Minsk - zp.ua
Contact:

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

Post by hardlock »

Leo174, ресет использовать не люблю... а вторую можно на выход для светодиода. Но пока я не помощник....
User avatar
hardlock
Администратор
Posts: 4010
Joined: 21 Jan 2009 14:48
Location: Minsk - zp.ua
Contact:

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

Post by hardlock »

Схема v2.0
sch_tiny13_v2.GIF
Собранные платы:
DSCN2352_.jpg
DSCN2354_.jpg
Подробности в первом посте внизу.
Denis_K
Частенько бываю
Posts: 82
Joined: 16 Jun 2017 13:48
Location: Краснодарский край

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

Post by Denis_K »

Так на 3 вывода МК можно 6 светодиодов повесить... главное программа :-)
User avatar
hardlock
Администратор
Posts: 4010
Joined: 21 Jan 2009 14:48
Location: Minsk - zp.ua
Contact:

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

Post by hardlock »

Denis_K, А зачем 6 светодиодов? Трёх вполне достаточно для наглядной оценки остаточного заряда батареи...
Denis_K
Частенько бываю
Posts: 82
Joined: 16 Jun 2017 13:48
Location: Краснодарский край

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

Post by Denis_K »

hardlock, достаточно конечно. Я это писал для тех кому ног не хватает... даже 9 можно...
User avatar
hardlock
Администратор
Posts: 4010
Joined: 21 Jan 2009 14:48
Location: Minsk - zp.ua
Contact:

Post by hardlock »

На 3 ноги 9 светодиодов? Нарисуете?
Denis_K
Частенько бываю
Posts: 82
Joined: 16 Jun 2017 13:48
Location: Краснодарский край

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

Post by Denis_K »

Чего-то и правда ляпнул не подумав... и почему мне показалось 9 не знаю :-) .
Attachments
MKII.GIF
MKII.GIF (7.37 KiB) Viewed 17317 times
Post Reply