Зарядное устройство для Ni-Cd и Ni-MH аккумуляторов на микро

Автор - Барсик.
Опубликовано 30.01.2008.
Предисловие.
Мне всегда хотелось иметь автоматическое зарядное устройство (ЗУ), которое работает так, как надо мне, а не так, как считают нужным китайские маркетологи.
Мои требования такие:
1. Перед началом заряда аккумулятор разряжается до напряжения 1 вольт на элемент, после чего автоматически включается на заряд.
2. Заряд осуществляется стабильным током 0,1C в течение 15 часов. Кстати, это не только моё требование. Именно такой режим заряда рекомендуют изготовители аккумуляторов. По истечении 15 часов аккумулятор автоматически отключается от ЗУ.
3. При отключении электроэнергии или уменьшении напряжения в сети до уровня, при котором нормальная работа зарядного устройства невозможна, зарядное устройство выключается, а прошедшее время заряда запоминается. При возобновлении подачи электроэнергии перезапуск таймера не происходит, а заряд продолжается дальше с того значения времени и до тех пор, пока не пройдут заданные 15 часов.
4. Простота работы с устройством. Чтобы им спокойно могли пользоваться домохозяйки. Никаких дисплеев и кнопок управления. Установил аккумуляторы и забыл. И то, что забыл - не страшно. Ничего аккумуляторам не сделается.
Готовые устройства или схемы меня не устраивали по ряду причин. Пришлось действовать по старому доброму принципу "сделай сам". Для начала был разработан универсальный контроллер для подобных зарядных устройств.
На всякий случай отмазка: Аффтар не является профессиональным программистом или электронщиком (по крайней мере, в настоящее время). Так что если Вы повторите эту разработку, и у Вас дом сгорит, то это Ваши проблемы. Аффтар за это ответственности не несёт. (Гениально, я считаю. Здесь и далее, прим. Кота.)
Описание принципиальной схемы контроллера.
Для управления ЗУ используется микроконтроллер ATtiny13 семейства AVR фирмы Atmel. Вывод 6 контроллера (AIN1) является входом аналогового компаратора, с помощью которого контролируется состояние источника питания. Вывод 7 (ADC1) это вход АЦП, с помощью которого измеряется напряжение на батарее аккумуляторов. Высокий уровень на выходе 2 (PB3) включает зарядник. Высокий уровень на выходе 5 (PB0) включает цепь разряда аккумулятора. Вывод 3 (PB4) служит для индикации окончания заряда аккумулятора.
В качестве тактового генератора используется внутренний RC генератор микроконтроллера. Разъём XP1 предназначен для внутрисхемного программирования микроконтроллера непосредственно в этом устройстве. Если в дальнейшем перепрограммирование не планируется, то этот разъём можно не устанавливать.
Порог срабатывания аналогового компаратора задаётся делителем напряжения на резисторах R1, R2. Напряжение питания считается нормальным, если напряжение на входе 6 микроконтроллера больше 1,2 вольта.
Напряжение батареи подаётся на вход АЦП микроконтроллера через делитель напряжения на резисторах R4, R5. Чтобы напряжение на батарее измерялось правильно, коэффициент деления этого делителя должен быть 1,86 на элемент. Соотношение резисторов должно быть таким: R5/R4 = 1,86*N - 1, где N - количество элементов в аккумуляторной батарее. Например, для случая двух элементов:
R5/R4 = 1,86*2 - 1 = 2,72. Если R4 = 100 КОм, то R5 = 100*2,72 = 272 КОм.
При аварийном отключении питания, микроконтроллер некоторое время питается от конденсатора C8. Ёмкость этого конденсатора должна быть достаточной для того, чтобы микроконтроллер успел сохранить своё состояние в энергонезависимой памяти. Диод VD1 не даёт конденсатору C8 разряжаться через микросхему DA1.
Конденсаторы C1, C5, C6 защищают входы микроконтроллера от импульсных помех.
Алгоритм работы.
Алгоритм работы следующий. После подачи питания на микроконтроллер, происходит частичная инициализация внутренних устройств микроконтроллера (порт ввода/вывода, таймер, АЦП, компаратор и т.п.). Затем проверяется, в норме ли напряжение питания. Если напряжение в норме, то завершается инициализация и считывается значение статуса из энергонезависимой памяти (EEPROM), чтобы узнать, чем занимался контроллер в прошлой жизни до отключения питания.
Далее, проверяется, установлена ли аккумуляторная батарея в зарядное устройство. Для этого измеряется напряжение на аккумуляторной батарее. Если оно больше, чем 0,5 вольта на элемент, то считается, что батарея установлена.
Если в момент включения питания батарея находилась в зарядном устройстве, то работа продолжится в соответствии с тем состоянием, которое было записано в энергонезависимую память. Если раньше шёл разряд, то продолжится разряд, а затем начнётся заряд. Если шёл заряд, то продолжится заряд, пока не пройдёт 15 часов, после чего зарядник будет выключен. Если на момент отключения питания заряд успел завершиться, то зарядник не включается, а будет светиться зелёный светодиод, сигнализирующий об окончании зарядки.
Если же в момент включения питания батарея не была установлена, то считается, что будет начат новый цикл разряд/заряд. Программа зацикливается и ждёт, когда будет установлена батарея. Как только батарея будет установлена, будет включена цепь разряда аккумулятора. При этом начинает светиться жёлтый светодиод. Разряд будет продолжаться до тех пор, пока напряжение на аккумуляторе не уменьшится до 1 вольта на элемент. После этого разрядная цепь отключается и включается зарядник. Жёлтый светодиод гаснет и начинает светиться красный. Зелёный светодиод начинает вспыхивать с частотой 1 Гц. По продолжительности свечения зелёного светодиода и паузе между вспышками можно приблизительно оценить время, которое прошло с начала зарядки, и, соответственно, заряд, который успел набрать аккумулятор. Чем больше время свечения по отношению к паузе, тем больше времени прошло. Например, если время, в течение которого зеленый светодиод светится, равно времени в течение которого зеленый светодиод погашен, то, значит, прошло 7,5 часа, и аккумулятор зарядился наполовину.
Если во время заряда аккумуляторы были извлечены из зарядного устройства до окончания процесса заряда, то из-за работающего зарядника, напряжение на контактах держателя резко возрастёт. По этому признаку микроконтроллер узнаёт, что аккумуляторы были извлечены, и выключает режим заряда. После установки аккумуляторов в держатель будет начат новый цикл разряд/заряд.
Заряд продолжается в течение 15 часов. После 15 часов зарядник выключается, красный светодиод гаснет, а зелёный начинает светиться непрерывно, что означает окончание цикла заряда. В этом состоянии контроллер будет оставаться неограниченно долго, пока аккумулятор не будет удалён из зарядного устройства.
Если в течение цикла разряд/заряд, на любом из этапов, произойдёт отключение электроэнергии, то цикл приостанавливается, и состояние контроллера сохраняется в энергонезависимой памяти. После возобновления подачи электроэнергии цикл продолжается дальше с того этапа, на котором был остановлен. За состоянием питающего напряжения следит аналоговый компаратор - вход 6 микроконтроллера. Если напряжение на входе аналогового компаратора становится меньше 1,1 вольта, то происходит прерывание выполняемой программы, выходы контроллера переключаются на низкий уровень, состояние контроллера записывается в энергонезависимую память, и контроллер переходит в спящий режим.
Управляющая программа написана на языке C для среды разработки CodeVisionAVR. Над текстом программы смеяться не надо. Аффтар не является профессиональным программистом, и как раз с этой программы начинал учиться программировать микроконтроллеры AVR.
Прошивка микроконтроллера.
При программировании необходимо установить фьюзы (поставить "галки"): CKSEL0, SUT0, CKDIV8, BODLEVEL1. Остальные фьюзы должны быть сброшены.
Я пользовался программатором STK 200/300 и программой, встроенной в среду разработки CodeVisionAVR. Можно пользоваться любым программатором, который понимает ATtiny13.
Будьте осторожны. В некоторых программах, в частности в UniProf, всё с точностью до наоборот - "галки" соответствуют НЕ установленным фьюзам. Лучше, прежде, чем начать программирование, сначала фьюзы считать и посмотреть, как они стоят. С завода ATtiny13 приходят с установленными CKSEL0, SUT0, CKDIV8. Надо добавить к ним BODLEVEL1. (Интересно, какой вредитель придумал, что установленному фьюзу соответствует "0", а не установленному - "1"?)
Короче, будьте аккуратны при программировании фьюзов.
Конструкция и детали. Макет собран на универсальной плате. Микроконтроллер установлен в панельку. Соединения выполнены проводом МГТФ. Печатная плата не разрабатывалась. Конденсаторы C1 - C6 - керамические. C7, C8 - любые оксидные. Ёмкость конденсатора C8 должна быть не меньше, чем указано на схеме.
Пример использования контроллера - зарядное устройство для цифрового фотоаппарата.
На основе контроллера, описанного выше, было сделано зарядное устройство для цифрового фотоаппарата.
Оно предназначено для заряда двух Ni-MH аккумуляторов размером AA и ёмкостью 2500 мАч.
Собственно зарядник представляет собой стабилизатор тока на микросхеме LM317T (DA2). Ток заряда определяется резистором R16 и рассчитывается по формуле: I = 1,25/R16.
Для включения/выключения зарядника используется каскад на транзисторах VT2, VT3. Когда на выходе 2 микроконтроллера DD1 низкий уровень, транзистор VT2 закрыт, а транзистор VT3 открыт и соединят вход ADJ микросхемы DA2 с общим проводом. При этом напряжение на выходе микросхемы DA2 уменьшается до 1,25 вольта. Если на выходе 2 микроконтроллера DD1 появляется высокий уровень, то транзистор VT2 открывается, а транзистор VT3 закрывается, и микросхема DA2 начинает работать как стабилизатор тока. Диод VD7 не даёт аккумуляторам разряжаться при выключенном стабилизаторе тока. Диод VD6 и резистор R17 создают небольшой сдвиг уровня выходного напряжения, чтобы уменьшить выходное напряжение микросхемы DA2 в выключенном состоянии.
Для разряда аккумуляторов, к ним подключается резистор R12 с помощью ключа на транзисторе VT1.
Диодный мостик VD1 - VD4 на входе зарядного устройства защищает от неправильного подключения источника питания.
В качестве источника питания используется готовый нестабилизированный сетевой адаптер БПН 12-03 с выходным напряжением 12 вольт и током нагрузки 300 мА.
Внешний вид и конструкция готового устройства показаны на рисунках ниже:
Зарядное устройство собрано в готовом пластмассовом корпусе G026, к которому свеху крепится держатель аккумуляторов. В качестве держателя используется готовый батарейный отсек для двух элементов АА. Микросхема LM317 (DA2) и транзистор VT1 установлены на алюминиевую пластину по размерам корпуса через изолирующие прокладки из слюды. Транзистор VT1 можно на радиатор не ставить, т.к. рассеиваемая им мощность не превышает 0,7 ватта. Резистор R12 составлен из двух резисторов по 1 Ом, 1 ватт.
Печатная плата не разрабатывалась. Устройство собрано на универсальной плате. Микроконтроллер установлен в панельку.
Проверка работоспособности зарядного устройства.
Если устройство собрано без ошибок и микроконтроллер запрограммирован правильно, то наладка не требуется. Но, во-первых, где Вы видели устройство без ошибок? А во-вторых, всё равно хотелось бы убедиться, что всё работает так, как надо.
Первое включение делают без микросхемы микроконтроллера. Спалить её всегда успеете. Подключите источник питания с напряжением 8 - 12 вольт. Должен засветиться синий светодиод HL2. Убедитесь, что напряжение на выходе микросхемы DA1 составляет 5 вольт. На панельке для микроконтроллера соедините перемычкой вывод 8 поочерёдно с выводами 2, 3, 5. Соответственно, поочерёдно должны светиться светодиоды HL4, HL1, HL3. Установите резистор сопротивлением 100 КОм между выводами 4 и 8 на панельке микроконтроллера. Подключите к тем же выводам вольтметр с входным сопротивлением не меньше 1 МОм. Китайский цифровой мультиметр вполне подойдёт. Отключите источник питания, и засеките время, за которое напряжение на этом резисторе уменьшится с 4,5 вольт до 2 вольт. Если это время превышает 20 секунд, то значит, конденсатор C8 имеет достаточную ёмкость, и микроконтроллеру будет чем питаться при внезапном отключении электроэнергии.
При отключённом питании, соедините перемычкой на несколько секунд выводы 4 и 8 на панельке микроконтроллера, чтобы конденсатор C8 разрядился. Установите микроконтроллер в панельку.
Для дальнейшей проверки, необходимо собрать небольшую тестовую схему, и подключить её к контроллеру, как показано на нижеследующем рисунке:
Резисторы R101 - R104 должны иметь одинаковый номинал и могут быть от 4,7 до 10 Ком.
Установите движок резистора R102 в нижнее по схеме положение, что соответствует нулю вольт на входе 7 микроконтроллера. Движок резистора R104 установите в верхнее по схеме положение, что соответствует максимальному напряжению на входе 6 (Power Good) микроконтроллера. Подключите вольтметр к выводу 7 микроконтроллера. Включите питание. Должен засветиться синий светодиод HL2. В этом состоянии микроконтроллер должен ожидать, когда к нему подключат аккумуляторы.
Постепенно перемещая движок резистора R102, увеличивайте напряжение на входе 7 микроконтроллера. При напряжении 0,25 - 0,30 вольт должен засветиться красный светодиод HL4, а зелёный HL1 должен начать вспыхивать с интервалом в 1 секунду. Это говорит о том, что микроконтроллер обнаружил подключённый аккумулятор и включил режим заряда.
Подключите вольтметр к выводу 6 (Power Good) микроконтроллера. Постепенно перемещая движок резистора R104, уменьшайте напряжение на входе 6 микроконтроллера. При напряжении около 1,1 вольт, красный HL4 и зелёный HL1 светодиоды должны погаснуть. Это говорит о том, что микроконтроллер обнаружил снижение напряжения питания ниже допустимого уровня, все выключил и заснул. Постепенно увеличивайте напряжение на входе 6 микроконтроллера. При напряжении около 1,2 вольт, должен снова включиться режим заряда, но не сразу, а с задержкой в 1 - 5 секунд. Установите напряжение на входе 6 микроконтроллера на максимум.
Подключите вольтметр к выводу 7 микроконтроллера. Резистором R102 продолжайте увеличивать напряжение на входе 7 микроконтроллера. При напряжении 0,95 - 1,0 вольт, красный HL4 и зелёный HL1 светодиоды должны погаснуть. В этом состоянии микроконтроллер считает, что аккумуляторы были извлечены из зарядного устройства во время зарядки.
Снова установите движок резистора R102 в нижнее по схеме положение, что соответствует нулю вольт на входе 7 микроконтроллера. Подключите вольтметр к точке соединения резистора R106 и кнопки SB1. Нажмите и не отпускайте кнопку SB1. Резистором R102 установите напряжение равным 0,6 - 0,8 вольта. Отпустите кнопку. Через 1 - 2 секунды должен засветиться жёлтый светодиод HL3. Это состояние говорит о том, что микроконтроллер обнаружил, что подключённые к нему аккумуляторы не разряжены и включил режим разряда.
Установите движок резистора R104 в нижнее по схеме положение, что соответствует нулю вольт на входе 6 (Power Good) микроконтроллера. Жёлтый светодиод HL3 должен погаснуть. Это говорит о том, что микроконтроллер обнаружил снижение напряжения питания ниже допустимого уровня, и выключил режим разряда. Снова установите напряжение на входе 6 микроконтроллера на максимум. Через 1 - 5 секунд должен засветиться жёлтый светодиод HL3, что говорит о том, что возобновился режим разряда.
Подключите вольтметр к выводу 7 микроконтроллера. Резистором R102 начинайте уменьшать напряжение на входе 7 микроконтроллера. При напряжении около 0,5 вольт, жёлтый светодиод HL3 должен погаснуть, должен засветиться красный светодиод HL4, а зелёный HL1 должен начать вспыхивать с интервалом в 1 секунду. Это говорит о том, что микроконтроллер решил, что разрядил аккумуляторы до 1 вольта на элемент и включил режим заряда.
Выключите питание и отключите тестовую схему от зарядного устройства. Дальнейшую проверку удобно проводить на аккумуляторах, предварительно разряженных до напряжения 1 вольт на элемент, чтобы долго не ждать, пока они разрядятся.
Подключите амперметр, включённый на соответствующий предел измерений, чтобы можно измерить ток около 1А, последовательно с аккумуляторной батареей. Подключите источник питания (должен засветиться синий светодиод HL2) и установите аккумулятор в держатель. Убедитесь, что ток разряда имеет величину приблизительно 1А, а ток заряда равен 250 мА и не изменяется при изменении напряжения питания. Убедитесь, что переключение из режима разряда в режим заряда происходит при напряжении на аккумуляторной батарее равном 2 вольта (1 вольт на элемент). Это напряжение, при необходимости, можно изменить, подбирая резистор R5.
Проверьте, как устройство реагирует на отключение питания. После отключения и включения питания, устройство должно сохранять предыдущее состояние (разряд, заряд, заряд окончен), а таймер времени заряда не должен перезапускаться.
Работа с зарядным устройством.
Подключаем источник питания. Должен засветиться синий светодиод. Устанавливаем аккумуляторы в держатель. Должен засветиться жёлтый светодиод или красный. Ждем не меньше 15 часов, пока красный светодиод погаснет, а зелёный перестанет мигать и будет светиться постоянно. Всё. Аккумуляторы заряжены.
Для начала нового цикла разряд/заряд, не выключая источника питания (синий светодиод должен светиться), необходимо вытащить аккумуляторы из держателя и установить следующую пару.
Если после установки аккумуляторов в держатель, не светится ни жёлтый ни красный, то может быть следующее:
1. Недостаточно напряжение в сети.
2. Аккумуляторы установлены неправильно.
3. Аккумуляторы сильно разряжены (до напряжения, меньшего, чем 0,5 вольта на элемент).
Свечение жёлтого светодиода говорит о том, что идет разряд. После разряда аккумуляторов до напряжения 1 вольт на элемент, режим разряда выключается и жёлтый светодиод гаснет. После этого включается режим заряда и начинает светиться красный светодиод. Зелёный светодиод начнёт вспыхивать с периодом в 1 секунду. По соотношению длительности свечения и паузы можно приблизительно оценить время, прошедшее с начала заряда. Через 15 часов заряд прекращается. Красный светодиод гаснет, а зелёный начинает светиться непрерывно, что говорит об окончании зарядки. Если аккумуляторная батарея разряжена до напряжения, меньшего, чем 1 вольт на элемент, то режим заряда включится сразу. Если батарея разряжена сильнее, чем 0,5 вольта на элемент или установлена в неправильной полярности, то ничего не включится и никакие индикаторы (кроме синего) светиться не будут.
Файлы:
Прошивка МК с исходником.
Вопросы, как обычно, складываем тут.






Рекомендуемый контент




Copyright © 2010-2017 housea.ru. Контакты: info@housea.ru При использовании материалов веб-сайта Домашнее Радио, гиперссылка на источник обязательна.