|
Добро пожаловать!
Зарядное устройство для NiMh AA аккумуляторов.
1. Простоя и дешевая схема.
2. Определение окончания заряда по спаду/прекращению роста напряжения
на аккумуляторе.
3. Зарядное устройство заряжает аккумулятор NiMh 2300mAh примерно за
3-4 часа.
4.
Перед зарядом, можно предварительно не разряжать аккумулятор до 1
вольта. Но постоянно так делать не рекомендую, хотя бы через 5 зарядок
аккумулятор нужно разряжать.
5. Зарядное устройство позволить Вам
увидеть на компьютере графики напряжения и температуры аккумулятора и
оценить достоверность определения окончания заряда. Также позволяет
посмотреть приблизительное внутреннее сопротивление аккумулятора, на
мой взгляд, статистика этого параметра дает самое лучшее представление
о состоянии аккумулятора. (Но это не означает, что для зарядки нужен
компьютер, это дополнительная возможность.)
Основой зарядного
устройства служит импульсная зарядка от сотового. Я взял самую дешевую,
на выходе без нагрузки 7-8 вольт, ток 600мА. Примененный
«блок питания»
внес ограничение 1
зарядка на 1 аккумулятор.
Немного рассуждений об алгоритме определения окончания заряда.
Ниже приведены графики напряжений и температур разных аккумуляторов.
Графики
подобранны так, что бы показать, что уровень напряжения на аккумуляторе
сильно зависит от его внутреннего сопротивления (в этом
зарядном
устройстве напряжение на аккумуляторе измеряется при разрядном
импульсе).
Как определить конец заряда? Человеку он сразу виден, а вот
как принять решение в программе? Например, брать такой алгоритм -
останавливать заряд, если в течение 15 минут напряжение равно или
меньше предыдущему. К сожалению, такой алгоритм сработает меньше чем в
половине случаев, а после анализа графиков ясно, что это уже сильный
перезаряд. При токе 500-700мА для хороших (новых) аккумуляторов,
емкостью выше 2000mAh, отрицательное приращение явление
редкое. К тому
же, его приходится долго ждать и когда оно наступит, то согласно выше
приведенной статье это уже фаза перезаряда. Так же нельзя, например,
что бы пропустить середину заряда, где напряжение растет медленно,
начинать ждать прекращения роста напряжения после какого либо
абсолютного напряжения на аккумуляторе. Это напряжение для всех
аккумуляторов разное, если посмотреть на нижний график, то видно, что
для одного аккумулятора конец заряда, для другого только
начало. В
середине заряда, при таких токах, напряжение может не расти в течение
15 минут. А вот в конце заряда ждать более 15 минут, что бы
наверняка,
это много, цитата из выше приведенной статьи "в
конце зарядки
КПД этого процесса резко падает и практически вся
подводимая к
аккумулятору энергия начинает
превращаться в тепло. Это вызывает
резкий рост температуры и давления внутри аккумулятора, что может
вызвать его повреждение". Это для зарядного тока 1С, но и при 600мА
наблюдается быстрый рост температуры, а значит и всего
перечисленного.
Ровной полки на профиле напряжения скорей всего не будет, алгоритм
ожидания (напряжение
меньше или равно предыдущему) может не сработать.
Данное
зарядное устройство, разрабатывалось на основе моего основного ЗУ.
Софт
для компьютера я также использовал от него же. В этом зарядном
устройстве NiMh аккумулятор заряжается относительно малым током,
поэтому профиль напряжения относительно больших зарядных токов растянут
во времени. Для проверки правильности алгоритма была написана программа
на компьютер.
В
архиве с этой программой лежат 22 файла статистики. Я намерено подобрал
файлы, в которых затрудненно определение конца заряда, например, когда
заряжается не разряженный аккумулятор и т. д. такие аккумуляторы были
специально перезаряжены, что бы показать достоверность принятия решения
об окончании заряда. Попытаюсь в двух словах рассказать об алгоритме.
Для того, что бы избавиться от влияния помех и не очень стабильного
питания, напряжение на аккумуляторе измеряется в конце разрядного
импульса, перед измерением ожидается два подряд одинаковых значения
АЦП, затем делается подряд восемь измерений и они же усредняется на
восемь. В свою очередь эти измерения усредняются за минуту (512
значений), в итоге имеем хорошие стабильные данные. Раз в минуту
считается приращение за прошедшие восемь минут и если максимальное
приращение больше текущего на 2, то останавливаем заряд (на самом деле
все сложней, смотрите исходник). Такой алгоритм полностью
отвязан от
абсолютных значений АЦП. Приблизительное внутренние
сопротивление
аккумулятора считается так, измеряется напряжение аккумулятора без
нагрузки, затем измеряется напряжение под нагрузкой, на основании
разницы напряжений считается внутренние сопротивление. Так как
сопротивление разрядного резистора довольно маленькое 1 Ом и токи
соответственно большие, большую погрешность вносит падение напряжения
на контактах «держалки» аккумулятора. Кстати,
судить о внутреннем
сопротивлении аккумулятора можно по графикам, чем ниже напряжение на
аккумуляторе, тем выше у него внутреннее сопротивление.
Схема.
Транзисторы
VT1 и VT3 должны быть MOSFET серии Logic-level gate drive (IRL), это
ограничение схемы. При включении зарядного импульса или что тоже
самое
подаче высокого уровня напряжения на затвор VT1 напряжение на разъеме
Х1 падает примерно до 2-3В. При этом стабилизатор 78L05 питается за
счет емкости C1, и если вместо VT1 поставить биполярный
транзистор, то
базовой ток сразу же разрядит С1. Кстати, микроконтроллер почти всегда
находится в режиме IDLE и ток потребляет маленький, конденсатор
разряжает сама 7805 (в реальной схеме именно 7805, L у меня не было).
Вместо VT3 можно было бы применить биполярный транзистор, но до его
полного открытия нужен большой базовый ток, что не позволит С1
заряжаться во время разрядного импульса. Вместо VT3 IRLML2502 можно
применить любой MOSFET серии IRL с максимальным током стока более 2А,
VT1 можно ставить любой из серии IRL. В место P-канального MOSFET
транзистора IRLML6401 можно применить составной биполярный транзистор, вот схема.
Ниже приведены графики зарядного и разрядного импульса.
Длительность
зарядного импульса 100мс. Длительность разрядного импульса 6.5мс, пауза
между зарядными импульсами 20мс. Пауза необходима для зарядки
конденсатора С1.
Как говорилось
раньше, что бы ни делать двойную
работу я использовал софт для компьютера от старой зарядки. Для данной
зарядки второй канал не используются. В странице настроек, следует
указать только сопротивление разрядного резистора (Rd), по умолчанию
равно номиналу в схеме. Программа принимает данные с ком порта со
скоростью 4800 бод. Данные от зарядки отсылаются раз в минуту, и они же
используются в алгоритме определения конца заряда. Для передачи данных
на компьютер я использовал переходник usb-com. Если у кого-то
возникнет желание пользоваться преобразователем уровней MAX232, то надо
убедиться, что помехи от MAX232 не проникают в схему зарядки. Эта
микросхема довольно сильно фонит по питанию.
Так же нельзя забывать об отсутствии гальванической развязки
между зарядкой и ком портом (есть опасность, что в случае выхода из строя
зарядки это также приведет к выгоранию ком порта). Я оставляю этот вопрос на Ваше усмотрение (в интернете не сложно найти схемы опторазвязки). Смелым:),
допустим, Вы полностью уверенны в безопасности примененного блока питания,
тогда схему сопряжения с ком портом можно выполнить по этой схеме.
Руководство
пользователя:)
При
включении, зарядка начинает цикл проверки наличия аккумулятора.
Напряжение на аккумуляторе измеряется при разрядном импульсе. Если
напряжение ниже 1 вольта, зарядка пытается растолкать аккумулятор до 1
вольта и только затем переходит к выполнению программы заряда. Если
напряжение аккумулятора более 1 вольта и замкнут переключатель
«предварительный разряд», то аккумулятор будет
разряжен до 1 вольта
перед зарядом (у меня переключатель заменен на кнопку, мне так
показалось удобней). После детектирования окончания заряда, зарядка
переходит в режим капельной подзарядки. Зарядный импульс подаётся на
5мс через 1 секунду.
Переключателями SA1-SA3 в двоичном коде
задается максимальное время заряда. Не замкнутое состояние
соответствует логической единице, все разомкнуты – 7 часов.
Переключатели опрашиваются, только при старте заряда.
Датчик DS18B20
устанавливается по желанию, нужен для того, что бы видеть температуру
на компьютере. Сначала думал активно его использовать, но как
оказалось, при таких токах, информация больше наглядна, чем полезна. Да
и капризная это вещь, включили настольную лампу или закрыли балкон и
этим вызвали ложное детектирование окончания заряда (метод dT/dt
скорость изменения температуры в минуту).
Индикация.
Предусмотрена одним светодиодом. При включении заряда светодиод
загорается на одну секунду.
Светодиод горит - конец заряда/капельная подзарядка.
Светодиод мигает с периодом 1 сек.– конец заряда по времени
(ошибка по времени).
Часто мигает – идет заряд аккумулятора. Данные на компьютер
посылаются раз в минуту.
Выключен
– режим ожидания, подзаряд до одного вольта или разряд до
одного
вольта. В режиме подзаряда данные на компьютер посылаются раз в 30
секунд. В режиме разряда данные на компьютер посылаются раз в
минуту.
Микроконтроллер
тактируется от внутреннего RC генератора частота 1 мегагерц. Следует
запрограммировать fuse бит BODEN, значения остальных fuse бит оставлены
по умолчанию.
Мои подопытные:)
Как
просто и быстро сделать держалку аккумулятора. Я разобрал старый
пускатель, взял контакты, они кстати посеребренные, согнул их и припаял
на текстолит. Получилось довольно хорошо, контакт с аккумулятором
получился намного лучше, чем с пружинными версиями.
Программы на компьютер.
Прошивка и исходник.
Настройка.
Контакт с аккумулятором должен быть хорошим. Поэтому, если у
Вас покупные держатели аккумулятора, то следует все соединения выполненные обжимом,
пропаять. Неустойчивый контакт в таких местах не позволит получать стабильные
данные и зарядка будет работать не правильно.
Важно, к плюсу держателя аккумулятора должно подходить два
провода, силовой от резистора R9 и сигнальный от резистора R4.
Проверка силовой части.
Для начала, надо выключить микроконтроллер, замкнув ножку
(1) reset на землю или,
если микроконтроллер установлен на панельке, то следует его вынуть. Не включая зарядку,
вставляете аккумулятор и измеряете через него ток, его не должно быть. Если ток
идет, то не исправен транзистор на разряд VT3. Включаете зарядку в сеть и измеряете
ток через аккумулятор. Тока также не должно быть. Если ток есть, то не исправен
VT1 или VT2. Измерьте напряжение на затворе (gate) VT2, если оно ниже чем на истоке
(source) VT2, то не
исправен VT1, иначе VT2.
Затем через 1к подаете плюс на затвор VT1 (это откроет транзисторы VT1 и VT2),
ток через аккумулятор должен быть не менее 500мА, зависит от вашей зарядки. Затем
также проверяете транзистор VT3, в этом случае ток должен быть равен напряжению на аккумуляторе, деленному на
сопротивление R9.
На главную -
startcd.narod.ru
|
|