Зарядное устройство для автомобильных аккумуляторов на Atmega8. Зарядное устройство-тестер аккумуляторов на Atmega8 Зарядное автомобильное устройство на пик контроллере atmega8

Это устройство предназначено для измерения ёмкости аккумуляторов Li-ion и Ni-Mh , а также для заряда Li-ion аккумуляторов с выбором начального тока заряда.

Управление

Подключаем устройство к стабилизированному блоку питания 5в и током 1А (например от сотового телефона). На индикаторе в течении 2 сек отображается результат предыдущего измерения емкости "ххххmA/c" а на второй строке значение регистра OCR1A "S.xxx". Вставляем аккумулятор. Если нужно зарядить аккумулятор то кратко жмём кнопку ЗАРЯД, если нужно измерить ёмкость то кратко жмём кнопку ТЕСТ. Если нужно изменить ток заряда (значение регистра OCR1A) то долго(2 сек) жмем кнопку ЗАРЯД. Заходим в окно регулировки регистра. Отпускаем кнопку. Кратко нажимая на кнопку ЗАРЯД меняем по кругу значения (50-75-100-125-150-175-200-225) регистра, в первой строке показывается ток заряда пустого аккумулятора при выбранном значении (при условии что у вас в схеме стоит резистор 0,22 Ом). Кратко жмём кнопку ТЕСТ значение регистра OCR1A запоминаются в энергонезависимой памяти.
Если вы проделывали разные манипуляции с устройством и вам надо сбросить показания часов, измеренной ёмкости то долго жмём кнопку ТЕСТ (значение регистра OCR1A не сбрасываются). Как только заряд окончен подсветка дисплея отключается, для включения подсветки кратко нажмите кнопку ТЕСТ или ЗАРЯД.

Логика работы устройства следующая:

При подаче питания, на индикаторе отображается результат предыдущего измерения ёмкости аккумулятора и значение регистра OCR1A, хранящееся в энергонезависимой памяти. Через 2 секунды устройство переходит в режим определения типа аккумулятора по величине напряжения на клемах.

Если напряжение более 2В то это Li-ion аккумулятор и напряжение полного разряда составит 2,9В, иначе это Ni-MH аккумулятор и напряжение полного разряда составит 1В. Только после подключения аккумулятора доступны кнопки управления. Далее устройство ожидает нажатия кнопок Тест или Заряд. На дисплее отображается "_STOP". При нажатии кратко кнопки Тест подключается нагрузка через MOSFET.

Величина тока разряда определяется по напряжению на резисторе 5,1Ом и, каждую минуту суммируется с предыдущим значением. В устройстве используется кварц 32768Гц для работы часов.

На дисплее отображается текущая величина емкости аккумулятора "ххххmA/c" и тора разряда "А.ххх", а также время "хх:хх:хх"с момента нажатия кнопки. Показывается также анимированный значок разряда аккумулятора. По окончании теста для Ni-MH аккумулятора появляется надпись "_STOP", результат измерения отображается на дисплее "ххххmA/c" и запоминается.

Если аккумулятор Li-ion, то также результат измерения отображается на дисплее "ххххmA/c" и запоминается, но сразу включается режим заряда. На дисплее отображается содержимое регистра OCR1A "S.xxx". Показывается также анимированный значок заряда аккумулятора.

Регулировка тока заряда осуществляется с помощью ШИМ и ограничивается резистором 0,22Ом. Апаратно ток заряда можно уменьшить увеличив сопротивление 0,22Ом до 0,5-1Ом. В начале заряда ток плавно нарастает до значения регистра OCR1A или до достижения напряжения на клемах аккумулятора 4,22В (если аккумулятор был заряжен).

Величина тока заряда зависит от значения регистра OCR1A - больше значение - больше ток заряда. При превышении напряжения на клемах аккумулятора 4,22В значение регистра OCR1A уменьшается. Процесс дозаряда продолжается до величины регистра OCR1A равного 33, что соответствует току около 40 mA. На этом заряд заканчивается. Подсветка дисплея отключается.

Настройка

1. Подключаем питание.
2. Подключаем аккумулятор.
3. Подключаем вольтметр к аккумулятору.
4. Временными кнопками + и - (PB4 и PB5)добиваемся совпадения показания вольтметра на дисплее и на эталонном вольтметре.
5. Длительно нажимаем на кнопку ТЕСТ (2 сек), происходит запоминание.
6. Извлекаем аккумулятор.
7. Подключаем вольтметр к резистору 5,1Ом (по схеме около транзистора 09N03LA).
8. Подключаем регулируемый БП к клемам аккумулятора, выставляем на БП 4В.
9. Нажимаем кратко кнопку ТЕСТ.
10. Измеряем напряжение на резисторе 5,1Ом - U.
11. Высчитываем ток разряда I=U/5,1
12. Временными кнопками + и - (PB4 и PB5) устанавливаем на индикаторе"А.ххх" рассчитанный ток разряда I.
13. Длительно нажимаем на кнопку ТЕСТ (2 сек), происходит запоминание.

Устройство питается от стабилизированного источника напряжением 5 Вольт и током 1А. Кварц на 32768Гц предназначен для точного отсчета времени. Контроллер ATmega8 тактируется от внутреннего генератора частотой 8 МГц, также необходимо установить защиту от стирания EEPROM соответствующими битами конфигурации. При написании управляющей программы были использованы обучающие статьи с данного сайта.

Текущие значения коэффициентов напряжения и тока (Ukof . Ikof) можно увидеть если подключить дисплей 16х4 (16х4 предпочтительно для отладки) на третьей строке. Или в Ponyprog если открыть файл прошивки EEPROM (считать с контроллера EEPROM).
1 байт - OCR1A , 2 байт - I_kof, 3 байт - U_kof, 4 и 5 байт результат предыдущего измерения емкости.

Видео работы прибора:

Бывает идешь мимо припаркованных машин, и замечаешь краем глаза, что кто то уже давно, судя по тусклому свечению ламп, забыл свет выключить. Кто то и сам так попадал. Хорошо когда есть штатный сигнализатор не выключенного света, а когда нету поможет вот такая поделка: Незабывайка умеет пищать, когда не выключен свет и умеет пропикивать втыкание задней передачи.

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

Плавное включение и выключение светодиодов в любом режиме (дверь открыта, и плафон включен). Так же авто выключение через пять минут. И минимальное потребление тока в режиме ожидания.

Вариант 1 - Коммутация по минусу. (с применением N-канальных транзисторов) 1) "коммутация по минусу", т.е такой вариант при котором один питающий провод лампы соединен с +12В аккумулятора (источника питания), а второй провод коммутирует ток через лампу тем самым включает ее. В данном варианте будет подаваться минус. Для таких схем нужно применять N-канальные полевые транзисторы в качестве выходных ключей.

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

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

Изначально в Lifan Smily (да и не только) режим работы заднего дворника - единственный, и называется он «всегда махать». Особенно негативно воспринимается такой режим в наступивший сезон дождей, когда на заднем стекле собираются капли, но в недостаточном для одного прохода дворника количестве. Так, приходится либо слушать скрип резины по стеклу, либо изображать робота и периодически включать-выключать дворник.

Немного доработал схему реле времени задержки включения освещения салона для автомобиля Форд (схема разрабатывалась для вполне конкретного автомобиля, как замена штатного реле Ford 85GG-13C718-AA, но была успешно установлена в отечественную "классику").

Уже не первый раз проскакивают такие поделки. Но почему-то люди жмуться на прошивки. Хотя в большинстве своём они основаны на проекте elmchan "Simple SD Audio Player with an 8-pin IC". Исходниник не открывают аргументируя, что пришлось исправлять проект, что в у меня качество лучше… и т.д. Короче взяли open source проект, собрали, и выдаёте за своё.

Итак. Микроконтроллер Attiny 13- так сказать сердце данного устройства. С его прошивкой долго мучился, никак не мог прошить.Ни 5ю проводками через LPT, ни прогромматором Громова. Компьютер просто не видит контроллер и все.

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

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

В интернете существует огромное количество схем зарядных устройств (ЗУ) для автомобильных аккумуляторов. От простейших до очень сложных. В нашем случае пойдет речь о ЗУ сделанном на микроконтроллере (МК) Atmega8. Использование МК в отличие от схемы на транзисторах позволяет внедрить очень богатый функционал для ЗУ. К примеру в данном зарядном я решил внедрить следующие функции.

1. Простота в управлении. Достаточно одного энкодера. Повернул по часовой стрелке - заряд включился. Вращением по часовой стрелке или против часовой выбирается ток заряда. Энкодер решил выбрать с тактовым нажатием. Нажимая на него можно будет войти в меню с настройками дополнительных функций.

2. Ток заряда будет до 5А. Хотя у меня в автомобиле стоит батарея 85А/ч мне для заряда хватит и 5А, просто на заряд уйдет немного больше времени. Однако при необходимости можно будет без глобальных переделок и перепрошивки МК увеличить ток заряда до 10А.

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

4. Батарея будет заряжаться до напряжения 14.4 вольт.

5. На дисплей будет выводится информация о текущем токе заряда и напряжении на батарее, так же будет работать индикатор заряда батареи, примерно как в мобильном телефоне. Мне показалось что так будет более наглядно.

6. Обязательно должна быть защита от замыкания клемм ЗУ. К примеру если закоротить клеммы между собой и при этом включить зарядник, то разумеется это не должно принести ему вред. И вообще пока не будет подключена батарея на клеммах не будет никакого напряжения. Так же если по ошибке была подключена батарея не с соблюдением полярности, включение заряда будет невозможно. Вся эта защита будет реализована программно аппаратным способом.

7. Заряд батареи должен быть полностью автоматизирован. Это вполне возможно, так как будет использоваться МК. Автоматизация процесса заряда должна исключать участие человека. Это значит подключил батарею, выбрал ток заряда и на этом все. Все остальное должно сделать само зарядное. А именно, поддержание выбранного зарядного тока в процесе заряда. Если батарея неисправна и заряд дальше не возможен, батарея должна быть автоматически отключена, в противном случае она будет просто бесконечно кипеть, а нам это не надо.

8. Показалось, что удобна будет функция "хранение батареи зимой". Как ни крути, абсолютно любая батарея в природе имеет свой внутренний саморазряд. Это значит, что если просто оставить без присмотра батарею на определенный срок, то из-за тока саморазряда она разрядится, что в итоге приведет к сульфатации пластин. А для батареи это смерть. Причем время саморазряда и сульфатации не такое уж и большое. Порой достаточно пару месяцев. Чтобы этого не произошло и будет внедрена функция "хранение батареи зимой". Работает это просто, подключаем зарядник к батарее, причем батарею не нужно вынимать из автомобиля. Далее ЗУ будет раз в пол часа смотреть какое же напряжение на батарее. Если напряжение упало ниже нормы, включится автоматический заряд, после окончания цикла заряда, ЗУ опять перейдет в режим контроля напряжения на батарее. Причем порог срабатывания выставляет сам пользователь в меню и силу тока тоже можно выбрать в меню. Лично я для себя установил порог 12.5 вольт и сила тока заряда 0.5А. Зярадка малым током более эффективна чем большими токами.

9. Возможно будет полезна функция "продолжение заряда после отключения электричества". Хотя такое совпадение может произойти раз в 150 лет, тем не менее эта функция есть. Зарядное всегда "помнит", что включен процесс заряда и если произойдет отключение/включение элетричества, заряд просто продолжится дальше. В любом случае все функции можно отключить или включить по выбору в меню. Если отключить все функуции, то зарядное просто станет "обычным зарядным" которое зарядит батарею и выключится.

10. Ну и напоследок в ЗУ будет работать программный таймер. Таймер будет постоянно тикать вперед 0..1,2 и так далее. Если батарея заряжается, а это видно будет по тому, как на ней будет постепенно подниматься напряжение до 14.4 вольта. Так вот, как только на батарее напряжение чуть поднялось, таймер сразу сбросится в 0 и продолжить снова считать 0...1,2... Но если батарея неисправна или старая, или не совсем правильна плотность электролита, то при определенном пороге заряд дальше невозможен. И этот порог может быть ниже 14.4 вольта. Как быть? В таком случае таймер перестанет сбрасываться. И дотикав до определенного момента, он попросту выключит заряд с сообщением на дисплей. Дальше кипятить батарею не имеет смысла. Таймер можно выключить в меню или включить, задав диапазон тикания от 30 мин до 3х часов. На дисплее можно будет видеть как таймер будет тикать и сбрасываться время от времени, если заряд протекат в штатном режиме.

Теперь перейдем к обсуждению схемы зарядника.

Блок питания.
В данном случае будем использовать любой импульсный блок питания (ИБП). Выходное напряжение от 16 до 20 вольт. Так как ток заряда будет до 5А, то выходной ток ИПБ должен быть с запасом где-то до 6А. Я использовал ИПБ MEAN WELL RS-75-15 у которого выходное напряжение 15 вольт, но в блоке есть подстроечный резистор которым можно поднять напряжение до 16.5 вольт. Преимущество ИПБ в том что он легкий, компактный и имеет уже втроенную защиту от повышенных токов, замыканий и пр. Поэтому об этом уже не надо особо заботиться. Впринципе подходит любой другой ИПБ. Хоть с ноутбука. Если в вашем ИПБ ток менее 5А, его тоже можно использовать, просто нужно следить за тем чтоб не выставлять ток заряда более чем может выдать ИПБ. Трансформатрный блок питания в нашем случае не подходит. Зарядное на трансформаторе это отдельная тема и отдельная статья. Итак схема питания будет выглядеть примерно так.

Конденсатор на 1000uF в принципе можно не ставить так как он уже установлен в импульсном блоке питания на выходе, но если установить то хуже не будет. Конденсатор С2 лучше если будет электролит, но я поставил керамический smd. Стабилизатор 7805 нужен чтобы питать МК, дисплей LCD и прочую обвязку.

Теперь подключим батарею и полевой транзистор.



Как видим, все просто. Транзистором будем регулировать силу тока через батарею. Реле К1 будет брать на себя роль защиты, будет включаться только тогда, когда батарея подключена и подключена правильно. Цементный резистор R18 выполняет роль шунта. При токе в 5А на нем будет напряжение 0.5 вольт. Это напряжение усилим и подадим на АЦП МК, так МК будет знать какой ток в цепи заряда и это значение можно будет вывести на дисплей. Теперь пора подключать МК к схеме.

Как видим схема немного усложнилась. Но не сильно. К выводу PB0 подключим реле, любое реле на 12V, контакты которого должны выдержать ток в 5А. Последовательно с реле надо подключить гасящий резистор примерно в 200 Ом, так как питаться то реле у нас будет от напряжения 16-20 вольт. Параллельно катушке реле надо установить защитный диод (любой, поставил LL4148) , без диода может пробиться транзистор VT4. VT4 может быть любой тип npn, использовал MMBT4401LT1 .

К выводам PD7, PC1, PC0 подключен энкодер. Использовался этот или этот . На выводы к которым подключен энкодер необходимо подключить конденсаторы 0.1 uF и подтягивающие резисторы по 10к. Это уменьшит контактов.

Дисплей использовался на две строки по 16 символов. Дисплей так же имеет встроенный русский шрифт. Если подключить дисплей без русских символов, на экране будут крякозябры. Так как у МК Atmega8 не сильно много ног, то дисплей подключил по 4х битной шине. Выводы дисплея DB3-DB0 не используются.

К выводу МК PB2 подключен диод шоттки BAT54S , два конденсатора 0.1uF и резистор 100 Ом. Зачем это нужно? Дело в том что в схеме используется операционный усилитель ОУ LM358 который не "rail to rail". В таких ОУ без отрицательного напряжения питания на минусовом выводе питания, на выходе ОУ никогда не будет 0 вольт. Поэтому эта цепочка элементов подключенная к выводу PB2 создает отрицательное напряжение где то -4V для питания ОУ. Для того чтобы цепочка на выводе PB2 заработала и генерировала -4V, на нее необходимо подать ШИМ сигнал со скважностью 50%. Таким образом на выводе PB2 всегда присутствует ШИМ с частотой 62.5 кГц.

На выводе PB3 так же всегда присутствует ШИМ, но скважность сигнала в данном случае от 0 до 100% уже регулируется вращением энкодера. Резистор R18 и конденсатор С11 составляют интегрирующую цепочку сглаживают ШИМ в постоянное напряжение. Резисторы R19 и подстроечный R20 являются делителем напряжения. Как настроить R20? Подключаем мультиметр к выводу PB3 и вращаем энкодер до тех пор, пока прибор не покажет 2.5 Вольта. Далее вращаем подстроечный резистор R20 так чтобы на неинвертирующем выводе ОУ было напряжение 0.25 вольта. На этом настройка R20 закончена.

Как работает регулировка и управление транзистором? Предположим что на неинвертирующем выводе ОУ (+) 0.5 вольт. Одно из свойств ОУ это то, что он стремиться к тому, чтоб уровнять разность потенциалов между его двумя входами. Делает это он используя свой выход, повышая или понижая на нем напряжение. Итак на выводе (+) 0.5 вольт, а на выводе (-) 0 вольт. Что дальше? ОУ сразу же начнет повышать напряжение на выходе, который подключен к затвору транзистора IRF540. Транзистор начинает открываться. Через батарею, транзистор и шунт начинает течь ток. Текущий ток вызывает падение напряжение на шунте R18. ОУ будет открывать транзистор до тех пор пока на шунте не будет напряжение 0.5 вольт. Напряжение с шунта подается через R13 на вывод (-). Как только на выводе (-) будет 0.5 вольта (такое же как и на выводе (+)), ОУ перестанет открывать транзистор. При этом ток заряда будет равен 5А.

Если энкодером уменьшить напряжение на выводе (+) до 0.25 вольта, ОУ уменьшит напряжение на затворе транзистора до такой величины, чтоб на выводе (-), так же стало 0.25 вольта, данное значение соответствует току заряда в 2.5А. Получается что регулировка тока заряда осуществляется аппаратным способом с помощью ОУ. А это очень хорошо, так как ОУ никогда не зависнет и скорость раекции мгновенная. Данная схема регулировки является обычным линейным источником тока. Удобство данной схемы в том что она является простой, но минус в том, что вся разность напряжения между импульсным блоком питания и напряжением на батарее выделяется в виде тепла на транзисторе.

К примеру ИПБ выдает 20 вольт, напряжение на батарее в начале ее заряда 12 вольт, а ток заряда 5А. Какая мощность выделиться на трназисторе? (20-12)*5=40 Вт. 40Вт это очень много!!! Нужен здоровенный радиатор и пять вентиляторов. Так никуда не годиться. Хотя транзистор IRF540 выдержит и 150 ватт, разогревать транзистором зарядник нет смысла. Как уменьшить выделение тепла? Можно понизить напряжение ИПБ например до 16 вольт. Тогда (16-12)*5 =20 Вт в два раза меньше уже лучше. Но нагрев можно сделать еще меньше до 5 ватт и менее. Каким образом?

В ИПБ подобного типа как MEAN WELL RS-75-15 всегда есть подстроечный резистор, которым можно регулировать напряжение на выходе в пределах 10%. Это значит от 13.5 до 16.5, в моем случае получилось от 13 до 17 вольт. Можно выпаять из ИПБ подстроечник, а вместо него впаять вывод МК, таким образом мы сможем с помощью МК регулировать напряжение на выходе ИПБ, это позволит снизить выделение тепла на транзисторе до минимума. К примеру если на батарее 12 вольт, понижаем напряжение до 13 вольт и получаем (13-12)*5=5 Вт тепла на транзисторе, лучше чем 40. Итак модернезируем схему


В выводу PB1 подключаем оптрон PC123 или подобный ему. На выводе PB1 так же всегда дежурит шим сигнал который интегрируется цепочкой R22 и C13. В ИБП выпаиваем подстроечный резистор и вместо него впаиваем обычный на 1.2 кОм. Вот теперь МК может управлять напряжением на выходе ИБП через оптрон. Когда оптрон выключен напряжение на выходе ИБП минимально, когда включен, резистор R23 шунтируется на землю, напряжение поднимается. Плавно закрывая/открывая оптрон с помощью ШИМ сигнала на выводе РВ1, плавно регулируем напряжение на выходе ИБП.

Чтабы знать когда и на сколько регулировать напряжение на выходе ИБП, надо знать сколько вольт вообще на силовом транзисторе. Нам то надо напряжение на выходе ИБП понизить настолько, чтоб разница между напряжением на батарее и напряжением на выходе ИБП была допустимо минимально. Для этого выводом РС2 используя АЦП МК измеряем напряжение на стоке транзистора. Это делается с помощью делителя R9 и R10. Теперь зная необходимые параметры, программа в МК будет сама контролировать скважность ШИМ на выводе РВ1.

Теперь осталось совсем немного. Это измерять ток в цепи заряда и выводить его на дисплей. И еще осталось измерить напряжение на батарее и так же вывести его на дисплей.

Напряжение на батарее измеряем дифференциальным способом. Значение снимаем с вывода РС5. Резисторы R5 и R6 должны быть ровно по 3кОм, а резисторы R2 и R4 по 1кОм, желательно точность не менее 1%, у меня таких не было поэтому R4 установил подстроечным. Суть в том, что при таких номиналах резисторов отношение напряжений на входах ОУ и на его выходе составляет 3:1. При изменении напряжения от 0 до 15 вольт на батарее, на выходе ОУ напряжение будет меняться от 0 до 5 вольт. Для настройки данной цепочки необходимо вместо батареи подключить 14.4 вольта например с лабораторного блока питания. Далее вращаем подстроечник R4 чтоб на дисплее LCD тоже было 14.4 вольта. Настройка цепи измерения напряжения на этом закончена.

Ток измеряется через падение напряжения на шунте, роль которого играет обычный цементный резистор. Ток у нас от 0 до 5А. Напряжение на шунте соответсвенно изменяется от 0 до 0.5 вольт. Значения резисторов R16 и R17 подобраны так, чтоб на выходе ОУ значение напряжения было от 0 до 5 вольт. Отображение тока заряда настраиваем по следующей цепочке. Подключаем батарею и делаем ток в 2.5 А. Параллельно батарее подключаем лампочку на 12 вольт. Батарею отключаем, а лампочку оставляем. Убеждаемся что ток равен 2.5 ампера. Если на шунте напряжение будет 0.25 вольт, значит ток равен 2.5А. если это не так, вращаем энкодер пока на шунте не будет 0.25 вольт. Теперь вращаем подстроечник R17 чтоб на дисплее отображался ток в 2.5А. Настройка отображения тока на этом закончена.

Что можно было бы упростить? Например если нет желания возиться с делителем напряжения в ИБП, то все что припаяно к ноге МК РВ1, можно выкинуть из схемы. Но все остальное должно быть на своих местах. Но в таком случае вся разница напряжения между батареей и на выходе ИБП высадится в виде тепла на силовом транзисторе. В таком случае радиатор берем побольше не жалеем.

Если нужен ток заряда до 10А, параллельно шунту припаиваем такой же шунт значением 0.1 Ом. Реле берем с контактами выдерживающем до 10А и параллельно транзистору IRF540 припаиваем еще один такой же. Транзисторы прикручиваем на здоровенный радиатор и вперед, делаем тест. Единственное, значение тока на диспле надо в уме умножать на 2. Если дисплей покажет 5А, на самом деле это уже будет 10А. Лично я сам так не делал, но в теории должно работать.

В конце концов итоговая схема будет иметь следующий вид:


Ничего не видно согласен, поэтому скачиваем схему отсюда .

Пару фрагментов прошивки.

#include "define.h" #include "init_mcu.h" #include "lcd.h" #include "text.h" #include "bits_macros.h" #include "fun.h" #include "encoder.h" #include "servise.h" #include "main.h" #include #include #include #include #include #include #include #define RELAY PB0 uint8_t lcd_time,lcd_track,lcd_count,enc_interval,enc_speed,off_charge; uint8_t U_bat_tim,I_bat_tim=255,stok_reg,energy_flag,count; uint16_t I_reg,enc_block,bat_count,bat_save,bat_off; EEMEM uint8_t energy_off; struct flag { _Bool lcd_clr_txt0: 1; _Bool lcd_clr_txt1: 1; _Bool count_timer0: 1;//для обработчика прерывания _Bool start_charging: 1;//отключение реле если при заряде бат откл. электричество _Bool ocr1a_block: 1; }flags; ISR(TIMER0_OVF_vect)//прерывание по переполнению Timer 0 раз в 1мсек. { TCNT0=0x6; flags.count_timer0=1; } void reg_I(uint16_t reg_val)//уменьшение тока заряда при достижении 14.4вольта { if (I_reg>reg_val) { I_reg=0; off_charge=1; if (OCR2!=0) { OCR2--; enc_data=OCR2; } } } void charg_off(void) { if (BitIsSet(PORTB,RELAY)) { eeprom_update_byte(&energy_off,0); } ClearBit(PORTB,RELAY); ClearBit(TCCR2,COM21);//отключили аппаратный вывод шим на пине PB3 OCR1A=0;//опустили питание импульсника до 12.5 вольт. off_charge=0; flags.start_charging=0; flags.ocr1a_block=0; enc_data=0; I_bat_tim=255; count=0; OCR2=0; } int main(void) { #if 1//инициализация MCU_init_ports(); MCU_init_adc(); MCU_init_an_comp(); MCU_init_timer0(); MCU_init_timer1(); MCU_init_timer2(); LCD_init(); LCD_string_of_flashXY(text_1,4,0); LCD_string_of_flashXY(text_2,3,1); _delay_ms(1500); LCD_string_of_flashXY(text_3,3,0); LCD_string_of_flashXY(text_4,2,1); _delay_ms(1500); LCD_clear(); if (BitIsClear(PIND,PUSH)){servise();}//вход в сервисное меню if (eeprom_read_byte(&energy_off) && u_batt()>20) { enc_data=eeprom_read_byte(&i_pusk); } else { eeprom_update_byte(&energy_off,0); } MCU_init_wdt(); sei(); #endif while(1) { wdt_reset(); uint8_t u_bat=u_batt(); uint8_t i_bat=i_batt(); #if 1/*определяем подключена ли батарея*/ if (u_bat>30)//30*0.0585=1.7 вольта на батарее, подключена { if (flags.lcd_clr_txt0==0) { flags.lcd_clr_txt0=1; LCD_clear(); } if (lcd_time>200) { lcd_time=0; LCD_string_of_flashXY(text_7,0,0); LCD_string_of_flashXY(text_9,7,0); LCD_string_of_flashXY(text_11,13,0); char buffer; uint16_t U=(u_bat*59)/100; utoa((uint8_t)U, buffer, 10);//выводим напряжение на дисплей if ((uint8_t)U>=100) { LCD_dataXY(buffer,2,0); LCD_data(buffer); LCD_data("."); LCD_data(buffer); LCD_string_of_flashXY(text_10,6,0); } else if ((uint8_t)U>=10 && (uint8_t)U<=99) { LCD_dataXY(buffer,2,0); LCD_data("."); LCD_data(buffer); LCD_string_of_flashXY(text_10,5,0); } else { LCD_dataXY("0",2,0); LCD_data("."); LCD_data(buffer); LCD_string_of_flashXY(text_10,5,0); } uint16_t I=(i_bat*20)/100; utoa((uint8_t)I, buffer, 10);//выводим ток на дисплей c шунта if ((uint8_t)I>9) { LCD_dataXY(buffer,10,0); LCD_data("."); LCD_data(buffer); } else { LCD_dataXY("0",10,0); LCD_data("."); LCD_data(buffer); } } } else //неподключена { LCD_string_of_flashXY(text_5,0,0); LCD_string_of_flashXY(text_6,0,1); flags.lcd_clr_txt0=0; eeprom_update_byte(&energy_off,0); continue; } #endif #if 1/*обрабатываем флаг прерывания timer0*/ if (flags.count_timer0==1) { flags.count_timer0=0; lcd_time++; enc_interval++; I_reg++; lcd_track++; if (enc_speed!=100)//определяем скорость вращения энкодера. { enc_speed++; } if (enc_block>=1) { enc_block++; if (enc_block>=500) { enc_block=0; } } if (BitIsSet (PORTB,RELAY)) { bat_count++; } else { bat_count=0; bat_off=0; bat_save++; } stok_reg++; if (flags.start_charging && count!=255) { count++; } } #endif #if 1/*Получение данных от энкодера*/ if (enc_interval>=5) { enc_interval=0; OCR2=encoder();//считали значение энкодера. #if 0//временно для теста char buffer; utoa(OCR2, buffer, 10); if (OCR2>=100) { LCD_dataXY(buffer,0,1); LCD_data(buffer); LCD_data(buffer); } else if (OCR2>=10 && OCR2<=99) { LCD_dataXY("0",0,1); LCD_data(buffer); LCD_data(buffer); } else { LCD_dataXY("0",0,1); LCD_data("0"); LCD_data(buffer); } #endif if (OCR2==0)//отключаем все. { charg_off(); } else//начали заряд { if (flags.ocr1a_block==0) { flags.ocr1a_block=1; OCR1A=255;//подняли питание импульсника до 17 вольт. } SetBit(TCCR2,COM21); SetBit(PORTB,RELAY); } } #endif #if 1 /*уменьшение тока заряда при достижении 14.4вольта*/ if (u_bat==246 && OCR2>0) { reg_I(3000);//раз в 3 сек } else if (u_bat==255 && OCR2>0) { reg_I(100);//раз в 100 мсек } else if (u_bat>246 && OCR2>0) { reg_I(500);//раз в 500 мсек } #endif #if 1 /*Отключаем заряд при достижении тока заряда 0.1А*/ if (off_charge==1 && enc_block==0) { if (i_bat<=5)//5*0.02=0.1 А ток в батарее. { charg_off(); flags.lcd_clr_txt1=1; LCD_string_of_flashXY(text_13,0,1);//"БАТАРЕЯ ЗАРЯЖЕНА" } } //отключение реле если при заряде бат откл. электричество. if (OCR2>0 && i_bat>4)//4*0.02=0.08A { flags.start_charging=1; } if (flags.start_charging==1 && i_bat<2 && count==255)//2*0.02=0.04 А ток в батарее. { ClearBit(PORTB,RELAY); } #endif #if 1 /*Бегущий индикатор на дисплее*/ if (OCR2>0) { if (flags.lcd_clr_txt1==1) { flags.lcd_clr_txt1=0; LCD_string_of_flashXY(text_8,0,1); } if (lcd_track>=200) { lcd_track=0; lcd_count++; switch (lcd_count) { case 0: LCD_data_of_flashXY(text_15,8,1); break; case 1: LCD_data_of_flashXY(text_16,8,1); break; case 2: LCD_data_of_flashXY(text_17,8,1); break; case 3: LCD_data_of_flashXY(text_18,8,1); break; case 4: LCD_data_of_flashXY(text_19,8,1); break; case 5: LCD_data_of_flashXY(text_20,8,1); break; case 6: LCD_data_of_flashXY(text_21,8,1); break; case 7: LCD_data_of_flashXY(text_22,8,1); break; case 8: #if 1 if (off_charge==1) { lcd_count=5; break; } if (u_bat<232)// 13.57V/0.0585=230 на АЦП. { lcd_count=255; LCD_string_of_flashXY(text_12,8,1); } else if (u_bat<=234) { lcd_count=0; } else if (u_bat<=236) { lcd_count=1; } else if (u_bat<=238) { lcd_count=2; } else if (u_bat<=240) { lcd_count=3; } else if (u_bat<=242) { lcd_count=4; } else if (u_bat<=244) { lcd_count=5; } else { lcd_count=5; } break; #endif default:lcd_count=5; break; } } } else { lcd_count=255; if (flags.lcd_clr_txt1==0) { flags.lcd_clr_txt1=1; LCD_string_of_flashXY(text_8,0,1); } } #endif #if 1 /*Аварийный таймер отключения*/ if (bat_count>=60000 && eeprom_read_byte(&timer_time))//мсек 60000 { bat_count=0; bat_off++; #if 1//для отладки LCD_string_of_flashXY(text_37,0,1); char buffer; utoa(bat_off, buffer, 10); if(bat_off>=100) { LCD_dataXY(buffer,2,1); LCD_data(buffer); LCD_data(buffer); LCD_string_of_flashXY(text_38,5,1); } else if (bat_off>=10 && bat_off<=99) { LCD_dataXY(buffer,2,1); LCD_data(buffer); LCD_string_of_flashXY(text_38,4,1); } else { LCD_dataXY(buffer,2,1); LCD_data(" "); LCD_string_of_flashXY(text_38,4,1); LCD_dataXY(" ",7,1); } #endif } if (u_bat>U_bat_tim && off_charge==0)//сброс аварийного таймера по напряжению { bat_off=0; U_bat_tim=u_bat; } if (i_bat= eeprom_read_word(&tim_dlitl))//180 минут по умолчанию { charg_off(); LCD_string_of_flashXY(text_14,0,1); bat_off=0; flags.lcd_clr_txt1=1; } #endif #if 1/*Регулировка напряжения на выходе блока питания*/ if (stok_reg>=100) { stok_reg=0; uint8_t u_stok=u_stokk(); if (u_stok>62)//0,0195*51*2=2 вольта на стоке. { if (OCR1A!=0) { OCR1A--; } } else if (u_stok<60) { if (OCR1A!=255) { OCR1A++; } } #if 0//временно для теста char buff; utoa(u_stok, buff, 10); if (u_stok>=100) { LCD_dataXY(buff,3,1); LCD_data(buff); LCD_data(buff); } else if (u_stok>=10 && u_stok<=99) { LCD_dataXY("0",3,1); LCD_data(buff); LCD_data(buff); } else { LCD_dataXY("0",3,1); LCD_data("0"); LCD_data(buff); } #endif } #endif #if 1 /*Режим хранения батареи*/ if (bat_save>=60000 && eeprom_read_byte(&save_on)!=0) { bat_save=0; if (u_bat<=eeprom_read_byte(&u_start))//12.5V / 0.0585=213,6 на АЦП { enc_data=eeprom_read_byte(&i_pusk); } } #endif #if 1 /*Режим отключения питания*/ if (enc_data && eeprom_read_byte(&power_off) && energy_flag==0) { energy_flag=1; eeprom_update_byte(&energy_off,1); } #endif } } #if 1 //тексты на дисплей const uint8_t PROGMEM text_1="Зарядное"; const uint8_t PROGMEM text_2="устройcтво"; const uint8_t PROGMEM text_3="SIRIUS 5А "; const uint8_t PROGMEM text_4="Для АКБ 12В"; const uint8_t PROGMEM text_5="Подключи батарею"; const uint8_t PROGMEM text_6="УЧТИ полярность."; const uint8_t PROGMEM text_7="U="; const uint8_t PROGMEM text_8=" "; const uint8_t PROGMEM text_9=" I="; const uint8_t PROGMEM text_10="В "; const uint8_t PROGMEM text_11="А "; const uint8_t PROGMEM text_12=" "; const uint8_t PROGMEM text_13="БАТАРЕЯ ЗАРЯЖЕНА"; const uint8_t PROGMEM text_14="ЗАРЯД ОТКЛЮЧЕН! "; // const uint8_t PROGMEM text_15={0xFF,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0}; // 1 const uint8_t PROGMEM text_16={0xFF,0xFF,0x20,0x20,0x20,0x20,0x20,0x20,0}; // 12 const uint8_t PROGMEM text_17={0xFF,0xFF,0xFF,0x20,0x20,0x20,0x20,0x20,0}; // 123 const uint8_t PROGMEM text_18={0xFF,0xFF,0xFF,0xFF,0x20,0x20,0x20,0x20,0}; // 1234 const uint8_t PROGMEM text_19={0xFF,0xFF,0xFF,0xFF,0xFF,0x20,0x20,0x20,0}; // 12345 const uint8_t PROGMEM text_20={0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x20,0x20,0}; // 123456 const uint8_t PROGMEM text_21={0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x20,0}; // 1234567 const uint8_t PROGMEM text_22={0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0}; // 12345678 const uint8_t PROGMEM text_23 ="Режим сохр. "; const uint8_t PROGMEM text_24 ="ВКЛ "; const uint8_t PROGMEM text_25 ="ВЫКЛ"; const uint8_t PROGMEM text_26 ="U запуска <"; const uint8_t PROGMEM text_27 =" СЕРВИСНОЕ МЕНЮ "; const uint8_t PROGMEM text_28 =" ВЫХОД ИЗ МЕНЮ "; const uint8_t PROGMEM text_29 ="I запуска "; const uint8_t PROGMEM text_30 ="Режим отключения"; const uint8_t PROGMEM text_31 ="питания "; const uint8_t PROGMEM text_32 ="Аварийный Таймер"; const uint8_t PROGMEM text_33 =" ВКЛ "; const uint8_t PROGMEM text_34 =" ВЫКЛ "; const uint8_t PROGMEM text_35 ="задержка "; const uint8_t PROGMEM text_36 =" мин"; const uint8_t PROGMEM text_37 ="T="; const uint8_t PROGMEM text_38 ="min"; #endif

Вопросы задаем сюда dmalash@gmail com
Если кому то нужен прошитый микроконтроллер, то его можно заказать отсюда . Все остальное естественно собираем и делаем сами.

Сейчас немного видео и фотографий. Вот так выглядел самый первый прототип.

Вот так выглядела первая плата.

В последствии была сделана более цивильная плата.

Потом был придуман корпус.

Потом все это было собрано.

В итоге получилось вот что.

Скачать схему зарядного устройства можно .
Заказать прошитый микроконтроллер можно .
Дополнительная информация., печатная плата .
Вопросы и пожелания [email protected]


Аккумуляторы сегодня очень распространены, но зарядные устройства для них, имеющиеся в продаже, как правило, не универсальны и слишком дороги. Предлагаемое устройство предназначено для зарядки аккумуляторных батарей и отдельных аккумуляторов (в дальнейшем используется термин "батарея") с номинальным напряжением 1,2...12,6 В и током от 50 до 950 мА. Входное напряжение устройства - 7...15 В. Ток потребления без нагрузки - 20 мА. Точность поддержания тока зарядки - ±10 мА. Устройство имеет ЖКИ и удобный интерфейс для установки режима зарядки и наблюдения за её ходом.

Реализован комбинированный метод зарядки, состоящий из двух этапов. На первом этапе батарею заряжают неизменным током. По мере зарядки напряжение на ней растёт. Как только оно достигнет заданного значения, наступит второй этап - зарядка неизменным напряжением. На этом этапе зарядный ток постепенно снижается, а на батарее поддерживается заданное напряжение. Если напряжение по какой-либо причине упадёт ниже заданного, автоматически вновь начнётся зарядка неизменным током.

Схема зарядного устройства изображена на рис. 1.

Рис. 1. Схема зарядного устройства

Его основа - микроконтроллер DD1. Он тактирован от внутреннего RC-генератора частотой 8 МГц. Использованы два канала АЦП микроконтроллера. Канал ADC0 измеряет напряжение на выходе зарядного устройства, а канал ADC1 - зарядный ток.

Оба канала работают в восьмиразрядном режиме, точности которого для описываемого устройства достаточно. Максимальное измеряемое напряжение - 19,9 В, максимальный ток - 995 мА. При превышении этих значений на экране ЖКИ HG1 появляется надпись "Hi".

АЦП работает с образцовым напряжением 2,56 В от внутреннего источника микроконтроллера. Чтобы иметь возможность измерять большее напряжение, резистивный делитель напряжения R9R10 уменьшает его перед подачей на вход ADC0 микроконтроллера.

Датчиком зарядного тока служит резистор R11. Падающее на нём при протекании этого тока напряжение поступает на вход ОУ DA2.1, который усиливает его приблизительно в 30 раз. Коэффициент усиления зависит от соотношения сопротивлений резисторов R8 и R6. С выхода ОУ напряжение, пропорциональное зарядному току, через повторитель на ОУ DA2.2 поступает на вход ADC1 микроконтроллера.

На транзисторах VT1-VT4 собран электронный ключ, работающий под управлением микроконтроллера, формирующего на выходе ОС2 импульсы, следующие с частотой 32 кГц. Коэффициент заполнения этих импульсов зависит от требуемых выходного напряжения и зарядного тока. Диод VD1, дроссель L1 и конденсаторы С7, С8 преобразуют импульсное напряжение в постоянное, пропорциональное его коэффициенту заполнения.

Светодиоды HL1 и HL2 - индикаторы состояния зарядного устройства. Включённый светодиод HL1 означает, что наступило ограничение выходного напряжения. Светодиод HL2 включён, когда идёт нарастание зарядного тока, и выключен, когда ток не изменяется или падает. В ходе зарядки исправной разряженной батареи сначала будет включён светодиод HL2. Затем светодиоды станут поочерёдно мигать. О завершении зарядки можно судить по свечению только светодиода HL1.

Подборкой резистора R7 устанавливают оптимальную контрастность изображения на табло ЖКИ.

Датчик тока R11 можно сделать из отрезка высокоомного провода от спирали нагревателя или от мощного проволочного резистора. Автор использовал отрезок провода диаметром 0,5 мм длиной около 20 мм от реостата.

Микроконтроллер ATmega8L-8PU можно заменить любым из серии ATmega8 с тактовой частотой 8 МГц и выше. Полевой транзистор BUZ172 следует установить на теплоотвод с площадью охлаждающей поверхности не менее 4 см 2 . Этот транзистор можно заменить другим p-канальным с допустимым током стока более 1 А и малым сопротивлением открытого канала.

Вместо транзисторов КТ3102Б и КТ3107Д подойдёт и другая комплементарная пара транзисторов с коэффициентом передачи тока не менее 200. При правильной работе транзисторов VT1-VT3 сигнал на затворе транзистора должен быть аналогичен показанному на рис. 2.

Рис. 2. График сигнала на затворе

Дроссель L1 извлечён из компьютерного блока питания (он намотан проводом диаметром 0,6 мм).

Конфигурация микроконтроллера должна быть запрограммирована в соответствии с рис. 3. Коды из файла V_A_256_16.hex следует занести в память программ микроконтроллера. В EEPROM микроконтроллера должны быть записаны следующие коды: по адресу 00H - 2СН, по адресу 01H - 03H, по адресу 02H - 0BEH, по адресу 03H -64H.

Рис. 3. Программирование микроконтроллера

Налаживание зарядного устройства можно начинать без ЖКИ и микроконтроллера. Отключите транзистор VT4, а точки подключения его стока и истока соедините перемычкой. Подайте на устройство напряжение питания 16 В. Подберите резистор R10 таким, чтобы напряжение на нём находилось в пределах 1,9...2 В. Можно составить этот резистор из двух, соединённых последовательно. Если источника напряжения 16 В не нашлось, подайте 12 В или 8 В. В этих случаях напряжение на резисторе R10 должно быть соответственно около 1,5 В или 1 В.

Вместо батареи подключите к устройству последовательно амперметр и мощный резистор или автомобильную лампу. Изменяя напряжение питания (но не ниже 7 В) или подбирая нагрузку, установите ток через неё равным 1 А. Подберите резистор R6 таким, чтобы на выходе ОУ DA2.2 было напряжение 1,9...2 В. Как и резистор R10, резистор R6 удобно составить из двух.

Отключите питание, подключите ЖКИ и установите микроконтроллер. К выходу устройства присоедините резистор или лампу накаливания 12 В на ток около 0,5 А. При включении устройства на ЖКИ будут выведены напряжение на его выходе U и ток зарядки I, а также напряжение ограничения Uz и максимальный ток зарядки Iz. Сравните значения тока и напряжения на ЖКИ с показаниями образцовых амперметра и вольтметра. Вероятно, они будут различаться.

Выключите питание, установите перемычку S1 и вновь включите питание. Для калибровки амперметра нажмите и удерживайте кнопку SB4, а кнопками SB1 и SB2 установите на ЖКИ значение, ближайшее к показываемому образцовым амперметром. Для калибровки вольтметра нажмите и удерживайте кнопку SB3, а кнопками SB1 и SB2 установите на ЖКИ значение, равное показываемому образцовым вольтметром. Не выключая питания, снимите перемычку S1. Калибровочные коэффициенты будут записаны в EEPROM микроконтроллера для напряжения по адресу 02H, а для тока - по адресу 03H.

Выключите питание зарядного устройства, установите на место транзистор VT4, а к выходу устройства подключите автомобильную лампу на 12 В. Включите устройство и установите Uz=12 В. При изменении Iz должна плавно меняться яркость свечения лампы. Устройство готово к работе.

Требуемый зарядный ток и максимальное напряжение на батарее устанавливают кнопками SB1 "▲", SB2 "▼", SB3 "U", SB4 "I". Интервал изменения зарядного тока - 50...950 мА с шагом 50 мА. Интервал изменения напряжения - 0,1...16 В с шагом 0,1 В.

Для изменения Uz или Iz нажмите и удерживайте соответственно кнопку SB3 или SB4, ас помощью кнопок SB1 и SB2 установите требуемое значение. Через 5 с после отпускания всех кнопок установленное значение будет записано в EEPROM микроконтроллера (Uz - по адресу 00H, Iz - по адресу 01H). Следует иметь в виду, что удержание кнопки SB1 или SB2, нажатой более 4 с, увеличивает скорость изменения параметра приблизительно в десять раз.

Программу микроконтроллера можно скачать .


Дата публикации: 25.09.2016

Мнения читателей
  • Олег / 19.05.2018 - 21:49
    Очень прошу, скиньте файл для прошивки eeprom на эл.почту [email protected] Больше месяца тужусь, не выходит цветок!!!
  • саша / 19.01.2018 - 19:10
    Народ,кто нибудь собирал данный девайс!
  • Юрий / 19.01.2018 - 18:35
    Вопро к автору.Вывод 1 микропроцессора висит в воздухе.Это не опечатка.

Микропроцессорное зарядное устройство для необслуживаемых свинцово-кислотных аккумуляторных батарей.

Рис. 1 Устройство со снятой крышкой.

План.

1) Обратная связь.
2) Введение.
3) Что же такое простейшая автоматика?
4) А как же улучшить ситуацию?
5) Подходим к вопросу: "А что же хотел пользователь"?
6) Недостатки конструкций, найденных в Интернете.
7) Создание собственной системы.
8) Поиск подходящего БП.
9) Подготовительный этап (сборка аналоговой части).
10) Установка в корпус и переподключение трансформатора.
11) Сборка цифровой части.
12) Методика прошивки и Fuse биты.
13) Что нужно пользователю видеть на верхнем уровне?
14) Финальное тестирование.
15) Как в последующем обновлять прошивку?
16) Алгоритм автономной работы.
17) Прошивка и программа контроля.
18) А что можно почитать по данному вопросу?

Обратная связь.

Так как в конце статьи ссылку на ветку форума по данной теме никто не видит, то выношу эту ссылку в самый верх. То есть если у Вас есть вопросы или предложения по данной теме, то Вам на наш форум . Или пишите на адрес электронной почты указанный В САМОМ низу страницы.

Введение.

После выхода на нашем сайте двух статей о и UPS под нужды , мы много раз сталкивались с проблемой зарядки и тестирования необслуживаемых свинцовых аккумуляторных батарей (они же lead acid battery или, по простому, аккумуляторы из UPS). К моменту написания этой статьи у автора уже был опыт создания и двухлетней эксплуатации "автоматического" зарядного устройства, сделанного из компьютерного ATX блока питания (в свою очередь собранного на ШИМ контроллере ). Вот документация на и ее аналог .

Что же такое простейшая автоматика?

Ну начнем с определения. В большинстве найденных в Интернете схем простейших "автоматических" зарядных устройств, под автоматикой понималось ограничение тока заряда (обычно около 1-2А) до некоторого порогового напряжения (обычно около 13.8-14.5В), а потом переход на стабилизацию напряжения.

Рис. 2 Блок схема TL494.

Измерение напряжения проводится через делитель напряжения, подключенный к 1ой и 2ой ногам , а ограничитель тока, отключением выходных ключей микросхемы по средствам подачи +5В на 4 ногу . По-другому, берем ATX блок питания на или его аналоге, создаем токоизмерительную цепь из сопротивления 1Ом 5Вт и оптопары, выходы оптопары заводим в обратную связь по току (4 ногу ), организуем делитель напряжения (для 1ой и 2ой ног ) для ограничения напряжения на выходе, ну и на последок организуем питание вентилятора - вот и все работы. Для наглядности приведу схему переделки под .
Если выкопировка из схемы моего блока питания отлична от вашей, то с 28 разными схемами ATX блоков питания, собранных на и их аналогах.
Самый ближайший аналог схемы под мой блок питания вот .
Если схем блоков питания разных вагон, а нужной как всегда нету, то придется срисовывать схему самому. Отсутствие унификации связанно с тем, что дешевые блоки питания собирают "на коленке", по принципу как есть, включая .
Но, вернемся к нашим ба... блокам питания: к сожалению, такое простое и красивое решение имеет ряд технологических недостатков. Как было написано на одном сайте со схожей тематикой: "Есть такая наука - ХИМИЯ. И все, что происходит в аккумуляторных батареях, подчиняется законам Химии. Все "умные советы бывалых", которые не ложатся на химию - вредны по определению" (С) adopt-zu-soroka .
От себя хочу добавить, что аккумулятор находится на стыке ФИЗИКИ и ХИМИИ, то есть, кроме химических процессов есть конвенция раствора активной массы, иссыхание пластин и нагрев, которые рассмотрены в физике.

Что это означает применительно к нашей простейшей "автоматической" зарядке:
1) Постоянный "маленький подзаряд", обеспечивающий поддержание порогового напряжения (в режиме стабилизации напряжения), сушит аккумуляторы (из них испаряется вода, долить которую в необслуживаемые аккумуляторы относительно сложно), что в свою очередь сильно снижает срок службы аккумулятора. Особенно, если аккумулятор оставляют каждую ночь на подзарядку.
2) Зарядка большим, не пульсирующим током в самом начале заряда (особенно при сильно разряженных аккумуляторах), сильно снижает оставшийся ресурс аккумулятора (оставшееся количество циклов заряд/разряд), а в некоторых случаях без раскачки аккумулятор не берет заряд.
3) Зарядка постоянным током без пульсаций, в десятые доли герца увеличивает сульфатацию и препятствует более полному использованию хим.веществ, т.к. не дает пауз на выравнивание плотности раствора активной массы.
4) Пункт 3 также относится и к тренировочному разряду, который в простейшей "автоматической" зарядке просто не реализован, а в большинстве самодельных, микропроцессорных зарядках полностью не контролируется.
5) ECR аккумулятора измеряют на относительно большой частоте, поэтому для измерения ECR желательно иметь схему тестового разряда относительно большим током малой скважности, т.е. иметь блок тестирования подключаемый без фильтровочных конденсаторов.

Подвожу итог: Для однократного использования простейшие "автоматические" зарядки вполне подходят, а при постоянной(каждодневной) зарядке одного и того же аккумулятора применение простейших зарядок сильно снижает ресурс заряжаемого аккумулятора. А в большинстве своем средств диагностики они вообще не имеют, так как при такой реализации единственный метод диагностики это проверка постоянным током РАЗРЯДНОЙ лампочкой 12В 75Вт. Но по результату такого теста можно только примерно оценить процент заряда, а определить оставшуюся емкость аккумулятора (косвенно о емкости можно сделать вывод по значению ECR) с его помощью практически невозможно. Более плотное знакомство с их программным обеспечением выявило практически поголовное отсутствие самодиагностики у самодельных устройств.
Отходя от темы скажу, что при наладке своего устройства мной были зафиксированы случаи частичной порчи некоторых байт прошивки в микроконтроллере, т.е. при программировании он проходил верификацию, но на следующий день прошивка билась и если бы в моей системе отсутствовал блок самоконтроля целостности прошивки, то система могла вести себя неадекватно (как вариант испортить аккумулятор).

А как же улучшить ситуацию?

Создать схему измерения токов (тока заряда и тока разряда) и напряжения в обычном и измерительном режиме, что в совокупности даст возможность подсчитать количество энергии, передаваемой в оба направления и поручить заряд ГРАМОТНО составленному алгоритму, чередующему заряд/разряд и продолжительность циклов (то есть, алгоритм, составленный с учетом физ. и хим. структуры данного типа аккумуляторов). Правда, тут надо уточнить, что грамотно составленный алгоритм составляется по имеющимся данным и к данной конкретной ситуации, а при изменении исходных данных или ситуации требуется и корректировка алгоритма.

Подходим к вопросу:
"А что же хотел пользователь"?

Как другим - не знаю, а большинству моих пользователей нужна зарядка с простейшим управлением, которую можно будет использовать:
1) Для зарядки необслуживаемых свинцово - кислотных необслуживаемых аккумуляторных батарей, напряжением 12В и емкостью от 12V3.3Ah до 12V18Ah. Описание свернуто в "пояснения":


2) Для каждодневной (правильней сказать на всю ночь) подзарядки не полностью разряженных свинцово - кислотных аккумуляторных батарей.
3) Для тестов определения оставшегося процента заряда и оставшейся емкости свинцово - кислотных аккумуляторных батарей.
4) Для тестовых/тренировочных автоматических циклов заряд-разряд свинцово - кислотных аккумуляторных батарей по месту (например, отключенных от UPS батарей в серверном шкафу без их физического демонтажа из шкафа).

При этом данная конструкция должна обеспечивать:
1) Функцию самодиагностики основных блоков устройства и звуковую индикацию внештатных ситуаций таких как: переполюсовка клемм, подключение аккумулятора не того напряжения, внезапное отключение аккумулятора во время заряда/разряда, замыкание выходной цепи и т.д.
2) Функцию обновления прошивки без внешнего программатора (не вскрывая корпуса устройства).
3) Память последнего активного режима и, в случае обесточивания и повторного включения, автоматически возвращаться к прерванной операции.
4) Достаточную точность измерительной системы, необходимость которой диктует физика и химия процесса.

Рис. 3 Зависимости срока службы от напряжения в режиме StendBy.

Подробности по вопросам "достаточной точности измерительной системы" свернуты в "пояснения".

По ГОСТ 825-73 "Аккумуляторы свинцовые для стационарных установок" номинальное напряжение свинцового стационарного аккумулятора любой емкости принято считать равным 2В. Это наименьшее допускаемое напряжение на зажимах полностью заряженного аккумулятора в течение первого часа разряда десятичасовым режимом при плотности раствора соляной кислоты 1205±5 кг/м3 и температуре раствора +25"С. Предельное напряжение, до которого разрешается разряжать аккумуляторы при температуре раствора +25° С, составляет: для режимов разряда - не короче трехчасового = 1,8В, а для более коротких режимов (включая 15-минутный) = 1,75В (то есть, до 10.8В на 12В аккумуляторе, измеренное под нагрузкой или не ниже 12В без нагрузки).
Но в документации на один из аккумуляторов (смотри ) эти параметры немного отличаются. До 10.8В на 12В аккумуляторе при токах от 0.16С и менее (от 5 часового разряда и до 18 часового) и до 9.3В на 12В аккумуляторе при токах от 1С-3С (от 8 минутного разряда и до 43х минутного). Правда с оговоркой - при таких токах аккумулятор прослужит 260 циклов заряд/разряд или 5 лет в режиме StendBy.
Этот же , но в маленьком масштабе (зато с пояснениями) представлен в документации к аккумулятору .
График зависимости срока службы аккумуляторной батареи от напряжения постоянного подзаряда в режиме StendBy приведен на Рис. 3.
Указанные предельные значения напряжений, до которых можно разряжать аккумуляторы, установлены опытным путем. Они выбраны с таким расчетом, чтобы не вся активная масса превращалась при разряде в сернокислый свинец, так как это вызвало бы чрезмерную сульфатацию пластин.
То есть, можно сделать вывод о том, что нельзя разряжать ниже допустимого предела и нельзя перезаряжать выше указанного номинала - в этом случае идет работа только с "активной массой" и не допускается разрушение пластин в первом случае и кипения раствора - во втором.


Недостатки конструкций, найденных в Интернете.

Идем в Интернет и находим несколько десятков готовых микропроцессорных зарядок. Как говорится - задача на уровне школьного кружка "сделай сам", поэтому практически каждый радиолюбитель начинает свое творчество с "изобретения" зарядки из подручных средств. Вот только, к сожалению и результат по качеству не выходит за уровень школьного кружка... Смотрим на описание устройств и их схемы и на некоторых из них обнаруживаем не очень приятные вещи:
1) Отсутствует даже упоминание о технике безопасности работы с аккумуляторными батареями и сетью ~220В.
2) Отсутствие точной настройки измерительной системы (измеряемого напряжения и тока). Как писалось выше, превышение или занижение параметров может привести к разрушению пластин или выкипанию раствора.
3) Использование дорогих датчиков тока. Напомню, что датчик тока на основе эффекта Холла плюс дисплей стоят дороже всей системы вместе взятой. При том, что исходя из химии и габаритов используемых аккумуляторов (напомню мой пользователь хотел от 3,3 до 18 Ah), измерять больше нескольких ампер нам не придется. А про дисплей написано в пункте 4.
4) Наличие кучи светодиодов, кнопок и дорогого дисплея на корпусе устройства. Вы когда-нибудь пробовали втиснуться в глубь серверного шкафа и посмотреть на расстоянии 1м что написано на дисплее размером в спичечный коробок? А без задания режима через кнопки навигации (сверяясь с надписями на дисплее), найденные конструкции не работают. Поставить дисплей побольше и вынести его вместе с кнопками на 1м кабеле? А раз выносить, то это уже два разных устройства: отдельно зарядка и отдельно дисплей.
5) Питание вентилятора системы от напряжения заряда. То есть, или от 16В (см. пункт 5) и при этом городить понижающую часть или питать напрямик от напряжения на клеммах (где мы имеем от 9В до 14В вместо штатных 12В).
6) Создание своей импульсной схемы стабилизации напряжения из входных 16В. То есть, история на тему, а давайте создадим еще один дополнительный ШИМ (один на уже есть в блоке питания), но на низковольтной части, что увеличит габариты схемы, потребует дополнительных силовых ключей на радиаторах и уменьшит КПД системы в целом.
7) Разрядный алгоритм без контроля разрядного тока. А в большинстве случаев и без элементов его замера (я не про общий ток который измеряется практически везде, а про разрядный).
8) Необходимость перемотки силового трансформатора (Ниже в подробностях свернуто 3 способа разборки и перемотки). Это конечно даст прирост тока, но этот прирост нам нужен? Со штатными обмотками трансформатор может дать 3-5А, из которых в данной конструкции мы используем максимум 1-2A (14В*2А=28Вт) и 15A нам для нашего ТЗ не надо (14.8В*15А=217Вт).

"Щелкните по этому тексту, чтобы развернуть пояснения"

Способ 1 = Выпаиваем трансформатор, аккуратно снимаем наклейку с надписью и разматываем желтый скотч, разогреваем его в печке до 150 градусов в течении 15 минут и расшатать сердечник вручную в перчатках.

Рис. 4 После расшатки.
БП SL-Lite

Способ 2 = Выпаиваем трансформатор, аккуратно снимаем наклейку с надписью и разматываем желтый скотч, обдуваем феррит феном от паяльной станции или строительным феном со всех сторон в течении пары минут. Половинки начинают шевелиться относительно друг друга просто разъединяем их. Сама катушка легко снимается, что очень удобно при намотке.

Рис. 5 Процесс обдува феном.
Фото пользователя DenGess из топика БП SL-Lite

Способ 3 = Выпаиваем трансформатор, аккуратно снимаем наклейку с надписью и разматываем желтый скотч, вывариваем трансформатор в воде в течении 10 минут.

Рис. 6 Вы еще варите трансформаторы в чайниках?
Фото пользователя DenGess из топика БП SL-Lite



9) Габариты устройства часто превышают размер стандартного ATX блока питания. За бортом чаще всего оказывается "утилизатор энергии разряда", обычно его роль выполненяет автомобильная лампочка из фары, из за чего вся конструкция начинает сильно смахивать на детский ночник. Причем как говорилось выше лампочка в "ночнике" просто включается, без какого либо контроля или стабилизации потребляемого ею тока.
10) Отсутствие систем самодиагности и систем контроля целостности программного обеспечения (об этом я уже писал выше).

Создание собственной системы.

Ну раз готовых подходящих разработок не наблюдается, то постараемся описать порядок изготовления подобной системы самостоятельно из того, что было под руками - "Я тебя слепила из того что было" (С) не мой.
Хотя выше писалось, что это задача на уровне школьного кружка "сделай сам", но ее выполнение сопряжено с высоковольтными импульсными источниками питания, поэтому, если вы до этого их не разрабатывали, то лучше начать тренироваться на чем-нибудь другом, менее энергонасыщенном, более низковольтном и как следствие менее опасным... К тому же, аккумуляторы при неправильном использовании, сами по себе не безопасны и помещения аккумуляторных на всех производственных сооружениях относятся к классу "А" - как сверх пожароопасные.
Ну и как всегда - оговорка. Про возможность пожара и поражение электрическим током при нарушении правил эксплуатации и некачественной сборке я упоминал выше. А про возможность химического поражения содержимым аккумулятора в результате замыкания его клемм и теплового разрыва корпуса, говорю сейчас. Поэтому все эксперименты с аккумуляторами и самодельными зарядными устройствами вы делаете на свой страх и риск, осознавая всю ответственность за возможные последствия.
Ну и наше любимое ПУЭ... Электропитание осуществляется от сети переменного тока 50Гц, 220В в соответствии с "Правилами устройства электроустановок". Для обеспечения безопасности людей, электрооборудование должно быть надежно заземлено в соответствии с требованиями ПУЭ и паспортными требованиями на электрооборудование. Помещение в котором располагается оборудование должны быть оборудованы контуром - шиной защитного заземления, с которым соединяются корпуса всех устройств через розеточную сеть. Для присоединения заземляющих проводников в шину должны быть выведены винты М8. Контур - шина защитного заземления должен соединяться с заземляющим устройством. Величина заземления должна быть не более 4 Ом. Заземление внутри помещений должно соответствовать ГОСТ 12.1.030-81. Создание заземления и соответствие его стандартам обеспечиваются пользователем.
Если Вас абзацы выше не напугали (вы с ними согласны) и вы ознакомились в интернете с техникой безопасности при работе с аккумуляторами и теорией первой медицинской помощи при химических ожогах и поражении электрическим током, а также запаслись огнетушителем для тушения возгораний класса "E" (позволяет тушить оборудование под напряжением) и выполнили все меры по улучшению безопасности, то приступим непосредственно к переделке БП в микропроцессорную зарядку.
Причем хочу отметить , что опасны (при не соблюдении техники безопасности) в данном применении, аккумуляторы и сетевое напряжение ~220В. А сам переделываемый блок питания относится к слабогорючим (т.е. он не поддерживает горение и практически не горит если его из вне паяльной лампой не жечь...) и химически активных веществ (кислоты) в себе не содержит.
Вывод: Данные замечания относятся практически ко всем зарядным устройствам заряжающим аккумуляторы и питающиеся от сети ~220В. Поэтому если авторы других самодельных зарядных устройств не предупреждают Вас о "побочных свойствах" в их устройстве и тонкостях его эксплуатации, то это вовсе не означает, что этих свойств и тонкостей в них нет.
Хотя данная статья ориентирована на относительно опытных пользователей, не первый год владеющих паяльником, я ниже буду описывать все очень подробно и пошагово - как для начинающих. Такой подход позволит провести полный контроль сборки и не забыть проверить какой-либо из блоков. Т.е. ниже будет описан процесс изготовления и настройки каждого блока моей .

Рис. 7 Структурная схема устройства "на пальцах".

Подробное описание структурной схемы свернуто в "пояснения".

"Щелкните по этому тексту, чтобы развернуть пояснения"

А раз мы решили пояснять на пальцах, то данное устройство можно наглядно сравнить с водопроводной системой, изображенной на Рис. 7 (перетоки энергии в ней анимированы ниже по тексту). И для полной аналогии левый верхний кран изображает управление ШИМ контроллером . Левый синий бак это фильтровочный конденсатор после выпрямительного мостика, два зеленых бака соединенных маленькой трубкой это аккумулятор, а трубка, в свою очередь, олицетворяет внутреннее сопротивление аккумулятора. Краны под баком это два реле отключения аккумулятора от зарядно/разрядной и отключения от тестовой систем. Верхний правый кран это две тестовые РАЗРЯДНЫЕ лампочки 12В 50Вт включенные на ШИМ управляемый от центрального процессора. Нижний правый кран это штатная система разряда стабилизированным током состоящая из 8 РАЗРЯДНЫХ лампочек на 13.8В по 0.16А контролируемая ШИМ контроллером .

Стандартные вопросы по блок схеме:
- Зачем два ШИМ на разряд?
- А нельзя ли меньше лампочек? Может заменить их одной лампочкой?
- Может вместо лампочек поставить одно сопротивление и светодиод?
- Ладно, это все понятно, но два включающих реле вместо одного переключающего то зачем?

И ответы на них:
- Нужна малая скважность при малом токе разряда и очень большая при тестовом. Если поставить один контроллер, то это условие не соблюдается, т.к. мы получим строго наоборот, плюс мешается конденсатор - синий бак по схеме.
- Лампочки очень не любят момент включения с холодной спиралью на полное напряжение, поэтому напряжение и ток понизили, установив несколько лампочек.
- Лампочки в отличие от сопротивлений имеют свойство стабилизировать ток, если эту функцию возложить на контроллер - он будет регулировать ток скважностью, а нам нужна малая и желательно постоянная скважность в некотором диапазоне напряжений...
- Два включающих реле вместо одного переключающего установлено ДЛЯ НАДЕЖНОСТИ! При тестирование были случаи самопроизвольного открытия силового ключа ШИМ контроллера от электромагнитных наводок на провода в корпусе устройства.


Поиск подходящего БП.

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

"Щелкните по этому тексту, чтобы развернуть пояснения"

Как выбрать нужный: "Т" образные радиаторы видны через щели, а отличить блок питания на от более современной его версии (например на которая более сложна и менее подходит для переделки) можно по размеру микросхемы и наличии второй микросхемы или транзисторов во вторичке. То есть, если во вторичке видно две микросхемы или куча транзисторов, то это точно не GS6105, а или ее аналог. Например, является обрезанной версией в части защиты от превышения входного напряжения, но при этом полностью совместим по ногам. Если есть выбор из нескольких испорченных блоков питания, то определить ремонто - пригодный не вскрывая корпуса можно, измерив Омы на разъеме питающего кабеля ~220В. Или омы на входе есть, или там бесконечность (пробит входной предохранитель). Если пробит входной предохранитель, то такой блок лучше оставить (чинить первичку долго, сложно и нудно). А, измерив Омы между землей и +5 шиной, мы видим или заряд конденсатора или сопротивление около 1-20 Ом. Если обнаруживается 1-20 Ом вместо заряда, то сплавился в гайку диод +5В шины. Если при этом не вылетел входной предохранитель, то в БП, скорее всего, работает защита (но главный вывод вам повезло и в данном экземпляре она есть). А так как диод в 5 вольтовой цепи нам, для нашей конструкции не нужен, то в 95% такой БП можно будет восстановить (для проверки "на старт без нагрузки" заменив на два обычных), а потом и переделать.
Кстати замечено, что не все БП стартуют без нагрузки. Поэтому, если в БП сломался вентилятор (а особенно если кроме ветродуя подсохли кондеры во вторичке), то попытка его включить замыкая PW_On может не привести к желаемому результату и БП по этой причине может быть записан в дохлые.
Внимание!!! Если в блоке питания неработает дежурка (+5vSb) то входные конденсаторы после мостика заряжаются до 400В и длительное время могут оставаться заряженными даже после отключения блока питания от сети.
Мне попался блок питания, имеющий схему, отдаленно напоминающую схему из данного мануала .
Но если у вас другой, то прикладываю архив с 28 схемами ATX блоков питания, собранных на и их аналогах .
Ну и далее блок питания надо проверить под маленькой нагрузкой (я использую два HDD - динозавра на 25мб каждый), а если он не работает, то починить, подробнее о ремонте блоков питания на ищите в интернете.


Подготовительный этап
(сборка аналоговой части).

В подготовительный этап входит проверка блока питания, настройка обратных связей операционного усилителя и сборка схемы разряда.

Рис. 8 Разрядная часть в работе.

Подробности по данному пункту свернуты в "пояснения".

"Щелкните по этому тексту, чтобы развернуть пояснения"

Рис. 9 Решетка для cooler"а.

1) Убеждаемся, что блок питания включается и дает +5 и +12 (с разбросом +/-1В). Для включения провод PW_On (обычно это провод зеленого цвета находящийся между двумя черными в АТХ вилке), надо замкнуть скрепкой на один из черных (землю). Если блок питания не работает или cooler у него плохо крутится, то чиним БП и смазываем cooler (если и после смазки он плохо крутится - меняем cooler). Если решетка cooler"а выполнена в виде прорезей в корпусе блока, то для улучшения обдува и уменьшения шума желательно выкусить ее кусачками и заменить на стандартную - внешнюю решетку для cooler"а.

Рис. 10 После установки решотки.

Рис. 11 Трансформатор вентилятора и стаб. +/-5В.

Внимание!!! Компьютерный блок питания нельзя включать без нагрузки, поэтому его надо чем либо нагрузить. Как вариант подключить полудохлый HDD (с вращающейся механикой, я использую два HDD - динозавра на 25мб каждый) или пару cooler"ов на +12В. CD-Rom в качестве нагрузки не подходит, так как он не дает постоянной нагрузки.
7) Проверяем стабилизацию напряжений +5 и -5В и собираем блок питания в корпус, при этом из корпуса должны быть выведены +12/+5/Gnd/-5/-12 от и стабилизированные +5 и -5В от установленного трансформатора питания. Лампочка ~220В 200Вт при этом тлеть или светиться не должна.
8) Собираем схему с ОУ на . Базируясь на познаниях в электротехнике (в рамках школьного курса физики), собираем тестовые делители из постоянного сопротивления, питающего диод (на обычных диодах падение напряжения около 0.56 В) к которому подключен переменный резистор. Вращая переменный резистор получаем напряжение +0.100В, а на втором аналогичном плече напряжение -0.100В. Отдельно оговорюсь, что тестер надо перевести на шкалу с милливольтами, если ваш тестер имеет шкалу только 20В или класс точности у него хуже чем 0.5, то ищем нормальный тестер.
9) Полученные +0.100В и -0.100В подаем по очереди на вход токовой цепи, собранной на и подбираем резисторы обратной связи, тем самым настраиваем измерительную часть по замеру токов. Наша задача - добиться на выходе операционного усилителя измерителя тока напряжения равного 1.250В. Для контура заряда используется +0.100В, а для контура разряда используется -0.100В. Отдельно оговорюсь, что тестер надо перевести на шкалу 2В (но не выше 3В шкалы), если ваш тестер не имеет такой шкалы или класс точности у него хуже чем 0.5, то ищем нормальный тестер.
10) С помощью еще одного делителя получаем 6.000В, подаем на вход цепи измерения напряжения, собранной на , и настраиваем на ее выходе напряжение в 1.000В. Для тех, кто не владеет тестером оговорюсь, что измерять надо на как можно более близком приделе, то есть, 1.000В измеряется на 2В шкале (но не выше 3В шкалы), а 6.000В на большей - примерно 10В (но не выше 20В шкалы).
11) Рядом со схемой ОУ реализована звуковая сигнализация, сигнализирующая ошибочное включение (переполюсовку) клемм аккумулятора на интегральном зуммере 1212FXP или его аналоге (кстати если у кого есть датащит на 1212FXP или его аналог - пожалуйста пришлите). При подключении надо соблюдать полярность зуммера и блокирующего диода на тот случай если в зуммере обнаружится КЗ в схеме присутствует защитное токоограничительное сопротивление. После сборки желательно проверить зуммер. Для проверки я использовал 9В батарейку типа "Крона". Перед экспериментом желательно отключить блок питания от сети.
12) Собираем схему разряда на и настраиваем на потребление тока около 0.5А (нагрузку следует выбирать из расчета 10 часового разряда для вашего аккумулятора, при этом ток будет около 0.1С подробнее смотрите в документации на ваш аккумулятор, там на графике один из токов разряда дает 10Hr). Для тех кто не владеет терминологией "C" это емкость аккумулятора и для 7.2 Ah аккумулятора 0.1*С=0.72А. Схема включения нагрузки у меня не совсем стандартна, но так как мы делаем стабилизатор тока (а не понижающий ШИМ блок питания), который должен работать практически при любом значении входного напряжения, было принято решение ставить ключ со стороны земли (что характерно для Step-Up, а не Step-Down), при таком включении мы открывать его напряжением, не зависящим от напряжения на входных клеммах. Правда при этом на нагрузке (РАЗРЯДНОЙ лампочке) получается переменное напряжение, но лампочки не полярные, а основную функцию (разряд стабилизированным током) данная схема решает.
Внимание!!! В цепи управления Мосфетом должен стоять обычный быстродействующий диод. Не диод Шотки и не надо спалалеливать оба диода в корпусе BAV70, подключите только один из них.

Рис. 12 Восемь разрядных лампочек.

Для компактности устройства, вместо одной автомобильной РАЗРЯДНОЙ лампочки 12В 1А, я установил 8 РАЗРЯДНЫХ лампочек на 13.8В по 0.16А внутрь устройства (прямо на вентилятор, для отвода выделяемого ими тепла). Такое решение позволяет исключить внешний блок разрядки и разместить все блоки в штатном корпусе блока питания. Диод на обратную полярность я использовал демонтированный из 12В линии обычно это аналог SR1040 (см. инструкцию на всю серию ).
Для тех кто не догадался - включается разрядная часть закрытием транзистора, то есть замыканием на землю управляющего пина (заземлением через резистор базы транзистора).
Лампочка ~220В 200Вт во входной цепи, при экспериментах с включенной разрядкой, должна слабо тлеть.
Внимание!!! Компьютерный блок питания нельзя включать без обдува радиаторов, поэтому со снятой крышкой не включать!!!


Установка в корпус и переподключение трансформатора.

Рис. 13 Фильтровочные конденсаторы.

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

"Щелкните по этому тексту, чтобы развернуть пояснения"

1) Отпаиваем все лишнее во вторичке, затем отпаиваем "хобот" и подключаем к центральной части, довесив конденсаторами. Керамические конденсаторы брать качественные, рассчитанные на относительно большой ток. Такое решение связано с тем, что LowECR 105C конденсаторы напряжением выше 16В трудно достать, поэтому заменяем их парами - обычный электролит и качественная керамика. В качестве керамики я ставил полиэтилентерефталатные конденсаторы типа 1мкФ на 250В.
В данном случае мы объединяем обмотки от линий +5В и +12В получив одну +16В но с током от наименьшей линии. У китайцев на корпусе БП обычно написана липа и надо исходить из реального размера силового трансформатора. Для трансформатора в 250Вт (не путать с липой обзывающего его как 450ВТ на этикетке) с шины +5В мы можем снять ток до 20А, а с шины +12В до 6А. Т.е. получаем ток до 5A.

Рис. 14 Липовый 450ВТ (слева), 170Вт (центр) и 300Вт (справа).

Да конечно можно перемотать трансформатор (методика перемотки и фотографии описывались выше)... Это конечно даст прирост тока, ну скажем до 15A (для трансформатора в 250Вт), но этот прирост нам нужен? Со штатными обмотками трансформатор может дать 3-5А (для трансформаторов в 100-250Вт), из которых в данной конструкции мы используем максимум 1-2A (14В*2А=28Вт) и 15A нам для нашего ТЗ не надо (14.8В*15А=217Вт).
Поэтому я поставил обычные 3х амперные диоды Но если вам ну очень хочется добиться больших токов, то выбирайте из диодов Шотки на 100В. Ну например из серии (см. инструкцию на всю серию ) и сажайте их на радиатор.
2) Еще раз смотрим на блок схему (отображена на рис.2) и глушим обратную связь по току (на 16 ноге), потом убираем выключалку (на 4 ноге) и заменяем своей на 2х оптопарах , допаиваем наладочное сопротивление 1кОм 2Вт на выход и включаем без обратной связи. Генерация не должна заваливаться (лампочка ~220В 200Вт при этом тлеть или светиться не должна), а на сопротивлении должно быть около 36В, при этом генератор должен характерно "цикать" (издавать очень тихие звуки на подобие сверчка).
Если на выходе нет вообще ничего, то скорее всего на 4 ноге у вас дежурит +5В и его надо притягивать к земле (проверьте сопротивление в 10кОм на землю). Если на выходе появляется напряжение только при включении, а потом пропадает, значит на 16 ноге дает о себе знать штатная обратная связь по току.
3) Налаживаем обратную связь по напряжению, подбираем делитель так чтобы на выходе было по грамотному 2.275В*6=13.65В, а по вредным советам "бывалых", которые не "стыкуются" с ГОСТ 825-73 равным 2.450В*6=14.7В (что по тому же ГОСТ 825-73 сокращает жизнь аккумуляторной в 4 раза, до 25%, см. график зависимости срока службы аккумуляторной батареи от напряжения постоянного подзаряда в режиме StendBy, приведенный на Рис. 3 выше). Лампочка ~220В 200Вт при этом тлеть или светиться не должна. После отпаиваем сопротивление 1кОм 2Вт, припаянное для наладочных целей с выхода преобразователя, что приводит к тому, что частота "циков" (издаваемых звуков) упадет раза в три.
4) Устанавливаем схему разряда и лампочки на cooler. Включаем систему. Силовой трансформатор должен характерно "зашипеть", а лампочка ~220В 200Вт при этом должна начать тлеть. Долго без крышки не экспериментируем, т.к. без крышки радиатор первички, лишенный обдува, начинает ощутимо греться. Особое внимание обращаем на качество и правильность выполнение токовых цепей (на л.2 схемы они отмечены жырно). На каждую из них я применял двойной провод из косички к ATX штекеру отпаянному в пункте выше.
5) Цепляем токовую часть на выключение выходных ключей и разрядной схемой проверяем правильность подключения полярности... То есть, на детекторе тока (тот, в противовес которому весит светодиод) должно получаться положительное напряжение около + 0.625В.
6) Если в пункте 5 все прошло нормально, то на выход цепляем лампочку 12В 1.5А и переменным резистором у светодиода ограничиваем ток до 1А (напряжение на переменном резисторе около +1.25В).
7) Делаем провода подключения к аккумулятору. Для этого я взял 3 оранжевых и 3 черных провода из косички к ATX штекеру, отпаянному в пункте выше. Скручиваем по 3 провода в косичку и с одной стороны подпаиваем к скрутке стандартные клеммы для аккумулятора. С другой стороны два из трех проводов косички подключаем к токовым цепям, а оставшийся конец подключаем измерение напряжения. Для эстетики на клеммы надеваем термоусадочный кембрик.
8) Ну вот у нас получилось "автоматическое" зарядное устройство, сделанное из компьютерного ATX блока питания, под автоматикой которого понимается ограничение тока заряда (мы выставили 1А), а при достижении некоторого порогового напряжения (мы выставили 13.8В), переход на стабилизацию напряжения. А после надстройки цифровой части мы получим микропроцессорное зарядное устройство для необслуживаемых свинцово - кислотных аккумуляторных батарей.


Сборка цифровой части.

В этом пункте описано подключение микропроцессора, реле, кнопок, RS232 части и так далее. Подробности по сборке цифровой части свернуты в "пояснения".

"Щелкните по этому тексту, чтобы развернуть пояснения"

1) Внимание!!! Микропроцессор ATMega8 (еще есть варианты прошивки для ATMega48 и ATMega88) устанавливается в панельку только в 6 пункте! Все проверки проводятся со снятым микропроцессором.
2) Собираем схему включения реле. В качестве реле было выбрано реле на 12В с током коммутации 10А, хотя если его сравнивать с пускателем 3 габарита, то можно придти к выводу, что Амперы там китайские (такие же маленькие). После выводим на переднюю панель корпуса светодиод показывающий подключение к аккумулятору (показывающий включенность реле). Других средств индикации мне не надо, все равно даже этот светодиод, при использовании в шкафу, видно не будет.
3) Собираем схему клавиатуры, крепим ее на передней панели, под ней в крпусе крепим кнопку Reset с таким расчетом, что бы ее можно было нажать через щель воздухозаборника спичкой.

Рис. 15 Кнопки клавиатуры и под ними кнопка Reset.

4) Собираем RS232 часть и подключаем к пину звонка +5Sb через предохранитель (это надо для питания внешнего управляющего модуля). Временно замыкаем RX и TX пины панельки микропроцессора, открываем HyperTerminal и проверяем работоспособность RS232 части.
5) Подключаем концы к ЦАП, проверяем ограничительные диоды, впаиваем их и проверяем, что бы они отсекали отрицательное напряжение при разряде. В качестве ограничительных диодов мной были использованы низковольтные диоды Шотки .
6) Если все проверки прошли успешно, устанавливаем процессор и прошиваем его.


Рис. 16 Примерка платы в корпус.

Методика прошивки и Fuse биты.

Что нужно пользователю видеть на верхнем уровне?

  Пользователю в режимах разряд/заряд (о служебных и тестовых режимах поговорим отдельно) хотелось бы знать о текущем состоянии процесса (а процесс характеризуется средними токами и напряжением) с обновлением данных не реже 1 раза в 5 секунд.
И хотелось бы знать данные о перетоках энергии и данных текущего процесса (всего залито или слито тока) для построения графика. График не в относительных единицах, поэтому данные нужны жестко 1 раз в минуту (желательно с большой точностью).

"Щелкните по этому тексту, чтобы развернуть пояснения"

Исходя из требований минутных отчетов от устройства и учитывая, что для получения средних данных микропроцессору очень удобно делить на число 2, в какой либо степени, поэтому берем кол-во замеров равным 2^8=256 за одну минуту.
Если исходить из того, что циклы должны быть около 2х секунд (и каждый состоять не менее чем из 8 комплектов замеров), то возьмём кол-во циклов равным 256/8=32
При этом получим продолжительность одного цикла равной 60/32=1,875 сек.
Проверка: 1,875 сек это в пределах допуска от 2х секунд.
При этом приход наборов будет через каждые 60/(32*8)=0,234375 сек.
Учитывая, что для генерации каждого набора надо провести замер и вычислить по нему значения, то необходимость в прерывании возникает каждые 60/(32*8*2)=0,1171875 сек... По другому 512 раз в минуту.
Кварц у нас 11059200, поэтому редукцию на первый таймер выбираем равной 64 и инкрементироваться он будет 172800 раз в секунду. Но нам надо не 172800 раз, а в 8,53(3) быстрее 172800/8,53(3)=0x4F1A.
Полный цикл займет 32*8*2*64*20250/11059200, что ровно 60 сек (без остатка)
Проверка: 60 сек (без остатка) равно заданию "циклы точно в 1мин".
Для смены кварца в автоматическом режиме пишем формулу вычисления периода таймера 0xFFFF-(CLOCKr/64)*60/512.
АЦП микропроцессора имеет разрядность в 10 бит, но в документации сказано, что абсолютная погрешность составляет ±2 младших разряда, поэтому принимаем разрядность АЦП=8 бит. Замеров у нас по каждому каналу 0xFF в минуту, а максимальное кол-во сохраняемых минутных репортов примем равным 0xFFFF (на 45 суток). Поэтому под токи отводим 4 байта на канал, а под мощности 5 байт на канал. Каждый пакет желательно пронумеровать, а эксплуатировать девайс мы собираемся не менее 24 часов - отводим под номера пакетов два байта (NnNn).
Это все упаковываем в текстовый формат и самый младший байт не отправляем, что равносильно делению на 256 (система измеряет 256 раз в минуту, репорты минутные, поэтому требовалось поделить сумму на 256)
Далее упаковываем все это в посылку вида:

>N_NnNnXiXiXiYyYyYyWwWwWwWwTtTtTtTt +#11 +#13

И того 37 байт на минутные пакеты (точно 60 сек).
А на счет текущих данных разряд/заряд которые надо предоставлять не реже чем 1 раз в 5 секунд, то берем среднее арифметическое за два цикла (2 цикла * 8 замеров = 16 что составляет 2 в степени четыре = удобно делить на МК), упаковываем их в текстовую посылку, добавляя байт состояния и выдаем пользователю каждые 2*1,875 = 3,75 секунды (что укладывается в заданный не реже чем 1 раз в 5 секунд).
Данные будем выдавать в текстовом виде, поэтому, вначале префикс ">P_".

>P_KkIrIzUu +#11 +#13

И того 13 байта на 4х секундные пакеты (точнее 3,75 сек.).

Финальное тестирование.

Алгоритм автономной работы.

  Как уже писалось выше, алгоритм составляется по имеющимся данным и к данной конкретной ситуации... Данная конструкция создавалась по принципу "как есть", по данным найденным в интернете, из параллельных веток и документации на аккумуляторы (т.е. самостоятельные исследования параметров нескольких сотен аккумуляторов от разных производителей автор не проводил). Система проверялась на нескольких имеющихся у автора аккумуляторах и показала положительный результат, поэтому с большой долей вероятности данный алгоритм подходит и к другим аналогичным аккумуляторам от других производителей.
Поэтому, если вы в данном описании заметили какую-либо неточность или у вас есть идеи как его улучшить, то пишите на электронный адрес, указанный в самом низу страницы.
Один философ говорил: "Верить это значит, отказываться понимать". Поэтому не повторяйте в слепую, а проверьте совместимость с вашими условиями перед повторением данной конструкции.
Reset - Кнопка, которую можно нажать спичкой через щель воздуховода.
Для активации режима самопрограммирования.

Дистанционное управление.

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

Алгоритм заряда.

1) Проверить напряжение на клеммах. Если менее 6,5В - отмена заряда со звуковым сигналом.
2) Цикл заряда ограничение тока заряда (обычно около 1-2А) до некоторого порогового напряжения (обычно около 13.8-14.5В), а потом переход на стабилизацию напряжения.
3) Проверка условия проведения раскачки.
4) Проверка условия слива 1:10 залитого.
Если во время слива напряжение упало ниже 6,5 Вольт = выход со звуковым сигналом.
Если раскачка уже была, и во время слива 1:10 напряжение упало ниже 8,6 Вольт = выход со звуковым сигналом.
5) Проверочное условие окончания заряда - Если раскачка уже была, но средний ток за минуту меньше 0,09A = выход со звуковым сигналом.
6) Проверка условия генерации отчета за два цикла.
7) Проверка условия генерации минутного отчета.
8) Проверка не пришла ли по рс232 команда - остановка или не нажали ли SB4.
9) Идти в пункт 2

Алгоритм разряда

1) Проверить напряжение на клеммах. Если менее 12,0В - отмена разряда со звуковым сигналом.
2) Циклы разряда проводятся пульсирующим током с максимумом в 0.1С (для 7.2Ah при I=0.1С мы получим I=0.75А).
3) Проверка напряжения на клеммах. Если среднее за минуту менее 10,8В - отмена разряда со звуковым сигналом.
4) Проверка напряжения на клеммах. Если среднее за два цикла менее 6,5В - отмена разряда со звуковым сигналом.
5) Проверка условия генерации отчета за два цикла.
6) Проверка условия генерации минутного отчета.
7) Проверка не пришла ли по рс232 команда - остановка или не нажали ли SB4.
8) Идти в пункт 2

Прошивка и программа контроля.

Математическая часть проекта к простой не относится, поэтому мы пока разработали только базовую ее часть. Базовая часть умеет контролировать процессы заряда и разряда, отрабатывает все нештатные ситуации, имеет алгоритмы самодиагностики. Алгоритмы тестирования и гибкой настройки под ваiе железо (учитывающие допуски деталей) мы планируем написать позднее. Поэтому пока файлы прошивки и программу контроля как есть (в тестовый и основной набор), т.е. автор дописал систему до состояния "А у меня работает и мне все нравится!", но если вам интересно дальнейшее развитие проекта или есть идеи по улучшению, то пишите на адрес электронной почты внизу страницы... постараемся вместе, что либо придумать...
К данной системе можно дописать:
1) Подстройку под железо с компа через RS232.
2) Загрузку подстроечных параметров в программу из железа.
3) Телепузиков и анимашек в программе контроля.
4) Алгоритм тестирования оставшейся емкости и процента заряда АК.
5) Аппаратный пульт управления - устройство логера снабженное LCD дисплеем и I2C памятью для записи логов.

По вопросу самодельных зарядных устройств в интернете есть очень много разнотипной информации, но, на мой взгляд, критерием ее полезности служит ее соответствие с физикой и химией процессов в аккумуляторе. Под полезностью в данном контексте понимается отсутствие негативных последствий (вреда) для аккумуляторных батарей после применения информации на практике. Подробности и ссылки по данному пункту свернуты в "пояснения".

"Щелкните по этому тексту, чтобы развернуть пояснения"

По специальности я инженер, проектирующий АСУ ТП (автоматизированных систем управления технологическими процессами) и немного далек от химии (ТЗ на управление химическими процессами обычно пишут химики-технологи), поэтому я в конце статьи собрал наиболее информативные, на мой взгляд, ссылки по данной теме. Но судить об их соответствии (адекватном отражении) физических и химических процессов в аккумуляторе я не берусь. Но хочу предупредить, что они написаны любителями и каждая из них может иметь свои положительные, отрицательные и даже, к сожалению, сильно вредные моменты.

Материалы по ATX блокам питания:
Мощный блок питания путем модернизации блоков меньшей мощности .
Модификация блока питания ..
ЗУ для свинцовых АКБ на МК Atmega8 .
Зарядное утсройство на atmega8 .

Ограничения.

Устройство разработано по принципу КАК ЕСТЬ и автор не несёт ответственности за явный (или не явный) ущерб, причинённый в результате повторения.

То есть все эксперименты вы делаете на свой страх и риск.

Список часто задаваемых вопросов читайте в

Если у вас возникли вопросы и предложения - пишите мне по адресу внизу страницы

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

Статьи по теме