Данное зарядное устройство имеет возможность заряжать от одного до шести аккумуляторов емкостью от 50 до 1200 мА/час. Начальная точка для прошивки была статья Ридико Леонида Ивановича «Немного о зарядке NiMH и NiCd аккумуляторов». Причина по которой была взята эта статья является то, что в этой статье были более подробно описаны к зарядному устройству. Исходя из данной статьи при зарядке NiMh аккумуляторов выполняются режимы:
- Фаза определения наличия аккумулятора
- Фаза определения состояния аккумулятора
- Разрядка аккумулятора
- Предзарядка аккумулятора
- Плавное увеличение тока зарядки
- Быстрая зарядка
- Дозарядка
- Отключение аккумулятора
В фазе определения наличия аккумулятора Аналого-Цифровой Преобразователь (АЦП) МК Измеряет величину напряжения на клеммах. Если напруга на клеммах меньше ~0,1В, то на дисплее появится ошибка, аккумулятор заряжаться не будет. Этот способ не совсем удобен т.к. если аккумулятор долгое время не заряжался, то его надо будет с начало немножко подзарядить.
В фазе определения состояния аккумулятора первым делом производится измерение температуры аккумулятора с помощью датчика температуры DS18B20, который находится в пластиковом корпусе. Благодаря этому датчику исходный текст прошивки значительно упрощается. Но при его использовании появляется трудность при его размещении на аккумуляторе. Лучше мерить температуру возле отрицательного электрода. Если температура от 5 до 40 градусов Цельсия, то через аккумулятор выставляется ток 0,1*С, где С-ёмкость аккумулятора. Если напруга при этом больше 1,85В, зарядка дальше не идёт и появляется ошибка. Такая проверка помогает определить то что вставили батарейку которая не пригодна для повторной зарядки. Исходя из этого можно сказать что устройство измеряет внутреннее сопротивления аккумулятора. По этой причине нельзя сказать что он полностью сумеет отличать аккумуляторы. В этом устройстве применяется принцип быстрой зарядки (силой тока ~1С в час). Считается что такой принцип зарядка аккумулятора лучше чем 0,1С в течении 12 часов. Пр зарядке на ~80% батарея начинает быстро греться вот тогда и вступает в роль наш термодачик.
Сама зарядка происходит в импульсном режиме (около 1с.), чередующимися с короткими (5 мс) интервалами разрядки.
Критериев нормального окончания зарядки 3:
- Уменьшение напряжения на аккумуляторе.
- Увелечение температуры аккумулятора более 40 градусов.
- Скорость роста температуры аккумулятора 1 градус/минуту и более.
В каждом случаи прибор переходит в режим дозарядки. Любой из случаев приводит к переходу в режим дозарядки — аккумулятор вначале остывает в течение 10 минут, затем заряжается током 0.1*С в течение еще 20 минут. Этот режим уравнивает аккумуляторы в батарее — полностью зарядившиеся тихонько греются, не очень хорошо зарядившиеся — заряжаются лучше. После этого зарядка закончена и аккумулятор отключается.
Список ошибок:
- «TIME OVER» Истекло время быстрой зарядки (90 минут) и не сработал ни один из критериев окончания зарядки.
- «HIGH TEMP» Слишком высокая температура (выше 40 градусов).
- «INC TEMP» Температура быстро растет не в режиме быстрой зарядки.
- «HI VOLTAGE» Высокое напряжение (более 1.85 В) на одной банке.
- «HI RESIST» Высокое внутреннее сопротивление банки
- «CURRENT» Невозможно установить ток, т.е. при увеличении напряжения зарядки до максимума, ток не достиг требуемого значения.
- «LO VOLTAGE» Слишком низкое напряжение на аккумуляторе (менее 0.4 В на банку в фазе определения состояния)
- «NO U INC» Напряжение при подзарядке не растет
- «LO TEMP» Слишком низкая температура (менее 5 градусов)
- «NO ACC» Нет аккумуляторов
При ошибке появляется сообщение на дисплее, процесс зарядки останавливается. Для повторного цикла необходимо выключить питание устройства (или можно приделать кнопочку между ножкой микроконтроллера RESET и общим проводом).
Fuse bits микроконтроллера установлены на тактирование от внутреннего RC генератора 8 МГц.
Схема + прошивка + исходники [171,39 Kb]
Ошибка базы данных WordPress: [Table './meandr_base/anzpz_usermeta' is marked as crashed and last (automatic?) repair failed]
SELECT user_id, meta_key, meta_value FROM anzpz_usermeta WHERE user_id IN (6655) ORDER BY umeta_id ASC