Печать

Зарядное устройство для LiPo аккумуляторов на Attiny26 + LCD

Опубликовано . Опубликовано в Устройства на AVR

Рейтинг:   / 3
ПлохоОтлично 
Зарядное устройство для LiPo аккумуляторов на Attiny26 + LCD

Идея собрать что-нибудь своими руками для моделиста не чужда, даже можно сказать родна. Но когда речь идёт об электронике, то часто рядовой (тем более начинающий) моделист опускает/поднимает руки от, казалось бы, безвыходного положения чувствительных денежных затрат. Эти страхи не исключение и для тех, кто думает перейти на LiPo аккумуляторы.

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

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

Поиски в интернете готовых схем показали, что их немало. Однако найти простой, в меру умный, не удалось. Вот тогда я окончательно и определился: собирать самому. Наковыряв информации по зарядке LiPo, принялся за железо. Особых знаний в электронике не имею, поэтому самому с нуля разработать схему было не по зубам. За основу был взят "апликейшин ноут" от AVR.

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

- Микроконтроллер ATtiny26
Выбор этого контроллера был не случаен. Он имел в наличии быстрый ШИМ-125KHz, что упрощало схему. Ну и ресурсов - тютелька в тютельку - для реализации поставленной задачи. Ах да... и цена.

- Питание 10-12 вольт (для подзарядок в поле)
По началу колебался, а где взять больше 12 вольт, требуемые для заряда 3х банок. Пока не нашёл у себя в загашнике преобразователь 12->24 вольта для автомобиля. Схема оказалась на столько простой, что в принципе можно повторить и самому. Перепаял её на 14 вольт.

- Мощность - максимум 1.5А - 1-3 банки LiPo (12.6 Вольт)
Другие аккумуляторы даже и не были в планах...

- Мозгами должен соображать, когда прекратить заряд и чтоб не вывести аккумулятор из строя (контроль температуры, времени, напряжения и силы тока)

- Учет балансира при зарядке
Думал сначала встроить в зарядник, но потом решил сделать отдельным проектом - ведь девиз был: "будь проще!"

- Визуальный контроль за всем происходящим (чтоб знать что там в коробке происходит).

Зарядное устройство для LiPo аккумуляторов на Attiny26 + LCD

Собрал схему на макетке. Написал тест-программу, подсоединил резистор... В общем, работа пошла. 2КБ свободной памяти под программу стали стремительно уменьшаться, что свидетельствовало о свете в конце туннеля.

Сразу столкнулся с проблемой - регулировка тока заряда никуда не годная - прыгает в пределах 30%. Много раз переписывал код, отвечающий за контроль и удержание тока заряда на заданном уровне - толком ничего не помогло. Дошло...Проблема не в программе. Померил осциллографом... Так у меня пульсации на шунтирующем резисторе под 2 вольта размахом. Что-то не так со схемой. Подбирал катушку и частоту включения силовика - не очень то и помогло. А вот увеличил выходной конденсатор с 470Мф до 2200Мф - всё встало на свои места. Вывод: где-то в Атмеловском апликейшн ноуте ошибка. Полазил по форумам - так оно и есть. Ну что же, пожалуй это была самая большая проблема.

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

График зависимости сопротивления от температуры

Этот график и взял время, так как в даташите на резистор было мало информации в отношении сопротивление=температура. А мне нужно было получить значения для каждого градуса. Пришлось задействовать Excel. Так что, если кто желает точных показаний температуры для своего резистора (что совершенно бессмысленно, так как аккумулятор не умрёт, если вместо 40 градусов он будет 42) может считать сам. Далее составляем таблицу значений ADC по формулам:

V=5*(Rt/(Rt+1000)), где Rt - сопротивление резистора при определённой температуре, взятое из графика.
ADC=(1024*V/Vref)/4, где Vref - напряжение на ноге 19 микроконтроллера. Должно быть 3,7 вольта.

Полученное значение ADC и записываем в таблицу в файле ntc.inc. Так поступаем для всех значений температуры от 5 до 50 градусов с шагом в один градус.

Больше особых проблем не предвидится, можно рисовать печатку. Делал это в WinQCad, а вообще это дело вкуса. У меня получился такой вариант:

Как видно из рисунка, аналоговая земля отделена от основной земли и соединены резистором в 0 Ом. Расположение элементов на плате таково:

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

Рисунок платы можно переносить любым доступным способом (утюг, фоторезист и т.д.).
Затем травим, сверлим дырочки и проводочками сквозь дырочки имитируем металлизацию отверстий. Вот плата и готова - можно напаивать остальной огород.

Но перед напайкой резисторов R5, R6, R7, R8, R4, R9 почитайте раздел нижеследующее.

Процесс настройки сводится к следующему:

1. Необходимо замерить точное сопротивление резисторов R5 и R6 в параллели;

2. Проверить сопротивление резисторов R7, R8, R4, R9;

3. Используя эти значения надо рассчитать коэффициент ConstVmul по формуле:

INT(ConstVRef/80*((ResistorPos/ResistorGnd)*128+128)), где ConstVRef=3700 (напряжение с TL431 в милливольтах), ResistorPos=сопротивление резисторов R7 и R8 в омах, ResistorGnd= сопротивление резисторов R4 и R9 в омах;

4. Используя всё те же значения, рассчитываем коэффициент ConstImul по формуле:

ConstImul = INT(ConstVRef/(ResistorGnd/(ResistorPos+ResistorGnd)*ResistorSht)*8)
где плюс к уже сказанному ResistorSht=сопротивление резисторов R5 и R6 в параллели умноженное на 100 (например, два резистора в 1 Ом = 0,5 Ом * 100 = 50);

5. Подставляем полученные коэффициенты в файле LiPoCharger.asm, в строчки:

.equ ConstVmul = 22229
.equ ConstImul = 2416


6. Компилируем в AVRStudio и заливаем в процессор;

7. Теперь на готовой и работающей плате, переменным резистором R14 выставляем напряжение в 3,7 вольта на 17 ноге процессора;

8. При желании можно экспериментальным путём выставить точную скорость процессора через OSCCAL. В моём случае это 0xA0.

Далее - прошивка. Запрограммировать микроконтроллер можно стандартным способом (через SPI). Схемы программаторов и всё с этим связанное не входит в компетенцию данной статьи. Единственное замечание - при программировании микроконтроллера необходимо отключить напряжение заряда - 14 вольт (физически отсоединить провод).

При правильном монтаже и соблюдении 8 пунктов настройки, зарядник начнёт работать сразу. Инструкцию по пользованию устройством написать никак руки не доходят, поэтому, если кто-нибудь, когда-нибудь повторит эту схему и напишет инструкцию - буду очень благодарен. Хотя пользование зарядником до смешного просто - всего две кнопки. Нет никаких скрытых "недокументированных" возможностей.

Файлы:
Исходный код, файл прошивки микроконтроллера, макеты печатной платы в формате PDF
Дата 16.02.2012 Размер файла 44.31 KB Закачек 1926

Комментарии  

0 #1 FDoich 16.02.2012 21:55
А где схема и др?
Сообщить модератору

Рекомендуем посмотреть