Зарядное устройство для NiMH и NiCd аккумуляторов (АА, AAA) методом быстрого заряда

Зарядное устройство предназначено для зарядки NiMH и NiCd аккумуляторов (АА AAA) методом быстрого заряда. В принципе, сейчас много микросхем, обеспечивающих быстрый заряд (например MAX712), я сделал свою зарядку вот почему:
если надо зарядить пару АКБ, то они включаются последовательно. Если у них разная емкость, то один из них перезаряжается, другой недозаряжается. Затем заряд выравнивается капельной зарядкой, обеспечивая дозаряд АКБ с бОльшей емкостью, другой же будет рассеивать подводимую энергию в виде тепла. На пользу аккумуляторам это не идет, уменьшается срок службы.

Далее, конец заряда определяется методом дельта V.
"dV/dt – спад напряжения. Данный критерий подразумевает определение отрицательного перепада напряжения, которое возникает у некоторых типов аккумуляторов после полного заряда. Обычно используется при зарядке постоянным током. Применим к быстрой зарядке NiCd и NiMH аккумуляторов."
[AVR450]
*Здесь и далее таким образом выделены цитаты из статей.
А вот из другой статьи Немного о зарядке NiMH и NiCd аккумуляторов:
Метод –dV вызывает некоторый перезаряд аккумулятора, что ведет к снижению срока его службы.
Что и иллюстрирует следующий график.


Тем, кто интересуется по заряду аккумуляторов, советую почитать автора Ридико Л.И. "Немного о зарядке NiMH и NiCd аккумуляторов".

Ниже приведены графики, снятые с помощью этого зарядного устройства.

NiMH 2200 mA/h - зарядный ток 1300 mA.

Считается, что быстрый заряд можно использовать только в диапазоне температур 0...+40°C и при напряжении на аккумуляторе 0,8...1,8V. КПД процесса быстрой зарядки очень высок (порядка 90%), поэтому аккумулятор нагревается слабо. Однако в конце зарядки КПД этого процесса резко падает и практически вся подводимая к аккумулятору энергия начинает превращаться в тепло. Это вызывает резкий рост температуры и давления внутри аккумулятора, что может вызвать его повреждение.
Для NiMH аккумуляторов, при токах больших 0,7С, отрицательный перепад почти всегда есть. Минусы − большие зарядные токи и температура в конце заряда близкая к 40°C. При зарядном токе 0,5С и емкости 2200 mA/h (график), отрицательный перепад напряжения не более 2.5...5 мВ, для многих аккумуляторов обычно прекращается рост напряжения.
Опять же цитата из статьи Немного о зарядке NiMH и NiCd аккумуляторов:
Как метод dT/dt, так и метод –dV вызывают некоторый перезаряд аккумулятора, что ведет к снижению срока его службы. Для того, чтобы обеспечить полный заряд аккумулятора, завершение заряда лучше проводить малым током при низкой температуре аккумулятора, так как при повышенных температурах способность принимать заряд у аккумуляторов заметно падает. Поэтому фазу быстрой зарядки желательно завершать чуть раньше. Существует так называемый Inflexion метод определения окончания быстрой зарядки [3]. Суть этого метода заключается в том, что анализируется не максимум напряжения на аккумуляторе, а максимум производной напряжения по времени. Т.е. быстрая зарядка прекратится в тот момент, когда скорость роста напряжения будет максимальной. Это позволяет завершить фазу быстрой зарядке раньше, когда температура аккумулятора еще не успела значительно подняться.
В этом устройстве конец заряда определяется по уменьшению скорости нарастания напряжения. Это хорошо видно при заряде NiCd аккумулятора емкостью 700 mA током 1С. На графике конец заряда помечен красным перекрестьем. Во второй версии прошивки, определение окончания заряда близко к методу dV=0, синие перекрестие на графике. Для аккумуляторов большой емкости обе версии ведут себя одинаково, так как нет явно выраженого роста напряжения. В устройстве предусмотрена фаза дозарядки в течении 30 минут.

NiCd 700mA/h - зарядный ток 700mA.

 


Устройство

Это зарядное устройство рассчитанно на зарядку двух аккумуляторов. Состоит из двух одинаковых каналов, DC-DC преобразователя и схемы измерения температуры.

Схема измерения температуры.

Подробно описана в другом моем устройстве "Уменьшение шума от кулеров компьютера".

Схема DC/DC преобразователя.

Такие навороты для управления MOSFET транзистором нужны для того, чтобы быстро заряжать/разряжать емкость затвора (для транзистора IRF9530 - около 1нФ). Резистор R3 немного затягивает этот процесс, но защищает Q2 и Q3 от больших токов. При расчете этой схемы в MicroCap-е импульс тока для Q2 составляет 17mA, для Q3 - 60mA, без R3 соответственно 50mA и 280mA. Применение "драйвера" для управления MOSFET транзистором в этой схеме обязательно. Во первых, уменьшает потери на переключение, а значит и нагрев транзистора. Во вторых, зарядное устройство должно обеспечивать режим дозаряда, ток trickle. Если не принимать мер для разряда емкости затвора, то выходной импульс будет сильно затянут, получить маленькие токи на выходе преобразователя будет затруднительно. К примеру, в первой собранной схеме емкость затвора разряжалась на резистор 800 Ом, при значении OCR1 = 1, входном напряжении 15V, индуктивности дросселя L=240μH - выходной ток был около 300 мА. При этих же значениях с "драйвером" - 7...10 мА.
Резистор R5, при выключенном канале и отсутствующем аккумуляторе, предотвращает рост напряжения на конденсаторе C2. Связано это с тем, что MOSFET транзистор имеет емкость сток-исток, и при работающем соседнем канале, импульсные просадки по питанию будут проходить через эту емкость и заряжать конденсатор С2.

Транзистор M2 (на разряд), лучше применить из серии Logic-level gate drive (IRL).

Вторая "трудная вещь" - это дроссель. Что читать, чтобы разобраться?
Мне очень помогли книги:

Свои дросселя я мотал на чем было. Феррит N48 RM5, немагнитный зазор 0,3 мм, 50 витков 0,4 мм, индуктивность ~280μH. Индуктивность получилась выше расчетной - 80μH, но в этой схеме хуже от этого не будет.
Микроконтроллер работает от внутреннего RC-генератора 8 МГц. Режим ШИМ-а - Fast PWM, 8-bit и, значит, частота 31250 Гц, максимальный ток дросселя - 1,5А.

Схема устройства.

увеличить max_ch.png  (53 Kb)

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

Поле "R=" и "Шаг ADC" в микроконтроллере не сохраняются.
Поле "R=" - это сопротивление резистора датчика тока, поэтому их сопротивление в канале А и В должно быть одинаковым, чтобы не было больших разбросов токов. Так как сопротивление довольно низкоомное померить трудно, надеемся на удачу :)
Поле "Fast" - ток быстрого заряда,
"Trickle" - Фаза дозарядки. В этой фазе ток зарядки устанавливают в пределах 0,1...0,3C. При токе дозарядки 0,1C производители рекомендуют длительность дозарядки 30 мин. Более длительная дозарядка приводит к перезаряду, что увеличивает емкость аккумулятора на 5...6%, но сокращает количество циклов заряд-разряда на 10...20%. В устройстве можно отключать ток дозаряда.
Температура.
Поле "максимальная температура аккумулятора" - при превышении этой температуры заряд останавливается. Рекомендуется ставить 40°C,
"Максимальный прирост температуры за 1 минуту". Чаще используют не саму температуру, а скорость ее изменения dT/dt. Считается, что при зарядном токе 1C процесс зарядки нужно завершать, когда скорость роста температуры dT/dt достигнет 1°C/мин. Нужно отметить, что при токах зарядки менее 0,5C скорость роста температуры почти не меняется и этот критерий использовать нельзя. Ввиду тепловой инерции метод dT/dt склонен вызывать некоторый перезаряд аккумулятора.
Настройка датчиков. Как сказано выше, здесь: уменьшение шума от кулеров компьютера можно прочитать подробнее. Кратко, расположить датчики (диоды) вместе, подождать немного, чтобы их температура выровнялась, внести эту температуру в поле "Темп", нажать кнопку "Присвоить". Удобно настраивать так: связать датчики вместе с датчиком DS18B20. Вот две довольно простые схемы термостат, термометр. Настроить датчики, как написано выше, затем проверить, например, поднести к датчикам настольную лампу, температура доходит до 40°C. Если датчики врут в верхнем диапазоне, то, скорей всего, у Вас "хорошие" диоды, их надо поменять на попроще, также надо подобрать шаг ADC на 1°C, обычно равен 7 или 8, зависит от коэффициента усиления ОУ. При температуре выше 40°C показания датчика DS18B20 и программы (диода) будут отличатся из-за разных корпусов. Температуры были бы приблизительно равны, если датчики закрепить на общем радиаторе и его разогревать.
Датчики (выяснено практическим путем) надо располагать у минуса аккумулятора.

Связь с устройством ведется через COM-порт, в программе можно выбирать номер порта. Скорость 38400 бит/c. Шнур из 4 проводов, TXD, земляной, RXD, земляной, (дифф. пары). При длине 1,5 метра сбоев не наблюдалось. Связь ведется короткими посылками, поэтому кварц для работы с UART здесь не нужен, микроконтроллер тактируется от внутреннего RC-генератора, 8 МГц.


Управление устройством.

Переключатели.

Устройство содержит четыре переключателя (джампера).

Переключатели замкнуты:

  1. включена работа с UART
  2. аккумуляторы NiCd
  3. включен импульс разряда
  4. включен дозаряд
Первый переключатель разрешает работу с UART. В режиме заряда будут передаваться данные на компьютер. Прием данных запрещен. В режиме ожидания, все светодиоды выключены, работа со страницей настроек. В эксплуатации устройства, резонно выключать работу с UART, что бы программа не тратила время на пересылку данных, если конечно не интересует статистика заряда. Графики заряда удобно строить в экселе. На комп передается напряжение и температура аккумулятора.

Второй переключатель. Отличий в алгоритме определения конца заряда нет, поэтому просто позволяет выбрать другой ток и макс. время заряда, без подключения к компьютеру. Также в этом режиме не контролируется отсутствие прироста напряжения на аккумуляторе, что дает возможность останавливать заряд по времени, нужно для проведения тренировочных циклов (0,1С, 16 часов), например, при покупке новых аккумуляторов.

Третий переключатель.

В анализаторах аккумуляторов Cadex 7000 и CASP/2000L (H) используются реверсивные импульсные методы заряда, при котором короткие импульсы разряда распределяются между длинными зарядными импульсами. Считается, что такой метод заряда улучшает рекомбинацию газов, возникающих в процессе заряда, и позволяет проводить заряд большим током за меньшее время. Кроме того, восстанавливается кристаллическая структура кадмиевых анодов, устраняя тем самым "эффект памяти". Величина обратного импульса нагрузки определяется в процентах от тока заряда в диапазоне от 5 до 12%. Оптимальное значение 9%. Так например, для NiCd аккумулятора емкостью 1800 мА/час, зарядный ток величиной в 1С равен 1800 мА. Тогда импульс нагрузочного тока будет равен 1800 мА × 0,09 = 162 мА. Выбирайте значение равное 5% для NiCd емкостью 500 мА/час и менее.
Примечание переводчика: Был проведен единичный эксперимент по измерению параметров метода реверсивного заряда NiCd и NiMH аккумуляторов емкостью 1000 мА/час. Измерения проводились с помощью осциллографа, путем измерения параметров импульса напряжения на резисторе С5-16В - 0,2 Ом ±1%, последовательно включенном в положительную цепь заряда аккумулятора. По результатам измерений получилось:
− длительность импульса "1" составляет ~30 мс, а период следования ~200 мс;
− амплитуды импульсов тока "1" и "2" примерно одинаковы и равны значению тока заряда.

Статья - "Аккумуляторы в мире портативных устройств. Руководство по аккумуляторам для неинженеров. Отрывок из книги "Batteries in a Portable World" by Isidor Buchmann. Перевод Владимира Васильева."

Четвертый переключатель. После детектирования окончания заряда включает ток дозаряда продолжительность 30 мин. При замкнутом первом переключателе, данные на компьютер передаются раз в минуту.


Кнопки и индикация.

Каждый канал управляется двумя кнопками и имеет индикацию двумя светодиодами.
При включении, проверяется контрольная сумма всех параметров сохраняемых в EEPROM, если контрольная сумма не совпадает, то горят все светодиоды. Работа устройства запрещена, необходимо подключение к компьютеру и переиницилизация параметров. Если контрольная сумма в норме, то светодиоды горят одну секунду затем гаснут. Устройство переходит в режим ожидание/настройка параметров (при замкнутом 1 перек.).

  • Первая кнопка - старт. Соответственно первый зеленый светодиод.
  • Вторая кнопка - разряд. Соответственно красный светодиод.
    1. Нажатие кнопки старт, включает программу заряда.
      Зажигается зеленый светодиод.
    2. Нажать разряд, затем старт - разряд до одного вольта и вкл. программы заряда.
      Если в режиме разряда, нажать кнопку разряд, то разряд выключается и программа переходит в режим ожидания.
      Мигают зеленый и красный светодиоды с периодом 2 сек. При включенной работе с UART, данные посылаются через 4 сек. При достижении на аккумуляторе одного вольта, гаснет красный, включается зеленый светодиод. Включается программа заряда.
    Если замкнут 3-ий переключатель, при импульсе разряда мигает красный светодиод.
    По окончании заряда, горит красный светодиод. Зеленый выключен.
    Eсли включен переключатель 4 "дозаряд", то включается красный светодиод, зеленый мигает с периодом 0,2 сек. При включенной работе с UART, в статистику добавляется строка "End", данные посылаются раз в минуту. По истечении ~30 минут, дозаряд прекращается, горит красный светодиод. Зеленый выключен.

    При индикации конца заряда или ошибок, нажатие кнопки разряд переводит устройство (А или В) в режим ожидания.


    Индикация ошибок.

    Зеленый светодиод выключен. Мигает красный светодиод.

    Количество миганий красного светодиода

    1. Превышено максимальное время заряда.
    2. Большая температура или большой рост температуры за одну минуту.
    3. Высокое напряжение аккумулятора. (U > 1,7V)
    4. Высокое сопротивление аккумулятора. (напряжение, при вкл. токе больше 1,85V)
    5. Ошибка при установлении тока. (OCR1 > 200)
    6. Низкое напряжение аккумулятора. (U < 0,4V)
    7. Нет роста напряжения на аккумуляторе.
      Для NiCd аккумуляторов эта ошибка отключена, что позволяет заряжать аккумуляторы током 0,1С, окончание заряда производить по времени (тренировочные циклы, для 0,1С 16 часов).
    При индикации конца заряда или ошибок, нажатие кнопки разряд переводит устройство (А или В) в режим ожидания.


    Описание алгоритма.

    Функции измерения напряжения скопированы из appnotes AVR450.
    Каждое измерение напряжения выполняется 8 раз, результаты суммируются, делятся на 8, возвращается усредненное значение. Для измерения напряжения на аккумуляторе, выключается ШИМ, вызывается функция Stable_ADC(), в ней происходит ожидание стабилизации напряжения на аккумуляторе, в функции добавлена задержка перед вызовом функции измерения напряжения, как только четыре последних измерения возвращают одинаковый результат, функция завершается, измеряется напряжение на аккумуляторе.

    При включении программы проверяется напряжение на аккумуляторе - если оно выше 0,4 и ниже 1,7, включается ток около 100 mА на пять секунд. Проверяется напряжение при включенном токе - если оно выше 1,85V, то генерируется ошибка 4: Высокое сопротивление аккумулятора. Ток отключается. Если напряжение выше 1V, то программа переходит к старту быстрой зарядки. Если напряжение на аккумуляторе ниже 1V, включается ток ~100 mA и программа ждет, пока напряжение достигнет 1V. Если этого не происходит за 30 минут, генерируется ошибка 1: превышено максимальное время заряда. Все время контролируется температура аккумулятора.

    Далее ток в течение 3...4 минут плавно нарастает до установленного значения. Время зависит от напряжения питания преобразователя, чем оно больше тем меньше время. Затем через 4 секунды измеряется напряжение на аккумуляторе. При замкнутом 3 переключателе каждую секунду включается импульс разряда. В свою очередь измеренное напряжение усредняется на 8, что позволяет избавиться от помех, наводимых соседним каналом и прочих. Усредненное значение также лучше отражает характер изменения напряжения. В результате данные, участвующие в алгоритме, получаем примерно через 40 секунд, они же отправляются на компьютер. Все время происходит контроль на все семь ошибок.

    Алгоритм определения конца заряда основан на вычислении роста напряжения на аккумуляторе. В программе есть массив, в котором накапливаются измерения. Новое измерение смещает старые. Затем вычисляется приращение. Выглядит это примерно так:

       for ( large.a=tmp.a=0; tmp.a<размер_массива ; tmp.a++ )
        large.a+= (signed char)(Uakk.A[tmp.a]-Uakk.A[tmp.a+1]);
    
    В более позднем варианте страницы код таков:
      for ( tmp_a=0; tmp_a <7 ; tmp_a++ )// вычисление приращения
         prir+= (signed char)(Uakk_A[tmp_a]-Uakk_A[tmp_a+1]);
    В результате имеем приращение в каждом измерении.
    Здесь можно посмотреть на работу алгоритма. Первая колонка в таблице - значение ADC, вторая - вычисленое приращение.


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

    Здесь можно посмотреть мою монтажную плату (далекую от идеала :)) и скачать файл в формате SprintLayout 5. Переключатели выполнены в виде джамперов, с кнопками и светодиодами вынесены в отдельную плату "пульта".


    Микроконтроллер работает от внутреннего RC-генератора 8 МГц. (CKSEL3..0 0100; SUT1..0 00).
    Запрограммировать бит BODEN, BODLEVEL.

    Для более точного отсчета времени в программе необходимо с помощью программатора считать значение калибровочного байта для 8 МГц, затем сохранить его значение во флэш-память, адрес 0x0026.
    Например, для PonyProg можно создать скрипт, файл с расширением .e2s.
     SELECTDEVICE ATMEGA8
     CLEARBUFFER
     LOAD-PROG nimh8.hex
     PAUSE "Прошить мк?"
     READ-CALIBRATION 0x0026 DATA 3
     ERASE-ALL
     WRITE&VERIFY-PROG
     PAUSE "Прошить fuse биты?"
     #Fuse High Byte: RSTDISBL WDTON SPIEN CKOPT EESAVE BOOTSZ1 BOOTSZ0 BOOTRST
     # 1101 1111 (в формате atmel)
     #Fuse Low Byte: BODLEVEL BODEN SUT1 SUT0 CKSEL3 CKSEL2 CKSEL1 CKSEL0
     # 0000 0100
     # note that a 1 means programmed. (для понипрог инвертируем)
     WRITE-FUSE 0x20FB

    Страница загрузок/историй.


    Внимание!
    Автор не несет никакой ответственности! Но! С этим зарядным устройством не было взорвано или испорчено ни одного аккумулятора, пока:).
    В избежание ошибок работы алгоритма, время заряда должно быть больше 40 минут. Зарядное устройство лучше работает с хорошими аккумуляторами. Старые аккумуляторы имеют высокое внутренние сопротивление и "корявый" профиль напряжения. Что может приводить к ложному детектированию конца заряда, или ошибкам 3 и 4.

    "Обновленная" статья.


    ист-к: http://startcd.narod.ru/charge/charge.html