Двухрежимное зарядное устройство литиевых батарей 7.4 В на основе Arduino


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

Внешний вид двухрежимного зарядного устройства литиевых батарей 7.4 В на основе Arduino

В этой статье мы рассмотрим проект двухрежимного зарядного устройства (режимы CC и CV), которое можно будет использовать для заряда литий-ионных и литий-полимерных батарей. Это зарядное устройство спроектировано для заряда блока литий-ионных батарей 7.4V (к примеру, два элемента 18650, соединенных последовательно). Схему устройства легко изменить таким образом, что с его помощью можно будет также заряжать литий-ионные батареи на 3.7 В или блока батарей на 12 В. Конечно, можно купить уже готовые зарядные устройства на эти номиналы напряжений, но дешевые зарядные устройства будут работать (заряжать) медленно, а те зарядные устройства, которые заряжают батареи достаточно быстро, будут стоить достаточно дорого. В нашем проекте мы рассмотрим простое зарядное устройство на основе микросхемы LM317, которое будет способно работать в режимах CC и CV.

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

Режимы CC и CV зарядного устройства

Режим CC (Constant Charge, постоянный заряд)

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

Режим CV (Constant Voltage, постоянное напряжение)

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

В нашем случае мы будем работать с блоком литиевых батарей на 7.4V, который представляет собой две соединённых последовательно ячейки 18650 напряжением 3.7V. Итого для последовательного соединения данных ячеек получаем 3.7V + 3.7V = 7.4V. Этот блок батарей можно начинать заряжать когда напряжение на нем упадет до 6.4V (3.2V на ячейку) и его можно заряжать до напряжения 8.4V (4.2V на ячейку). Эти значения являются фиксированными для нашего блока батарей.

Для того чтобы использовать режим постоянного тока (CC) для заряда батареи, необходимо в даташите на батарею узнать ее емкость в ампер-часах. В нашем случает мы выбрали значение постоянного зарядного тока равное 800mA. То есть вначале, когда батарея будет подсоединяться к нашему зарядному устройству, будет включаться режим CC с зарядным током 800mA. Это значение зарядного тока будет поддерживаться соответствующим изменением подаваемого на батарею напряжения. Батарея начнет заряжаться и напряжение на ней станет постепенно увеличиваться.

Но режим постоянного тока (CC) нежелательно использовать до полного заряда батареи поскольку при большом подаваемом напряжении это может повредить батарею. При некотором допустимом значении напряжения на батарее мы должны будем переключить режим заряда с CC на CV. Наш блок батарей можно заряжать до напряжения 8.4V, поэтому переключение режима заряда с CC на CV мы можем производить при напряжении 8.2V.

После того как наше зарядное устройство переключится в режим CV мы должны будем поддерживать постоянное зарядное напряжение – в нашем случае это будет 8.6V. В режиме постоянного напряжения (CV) в батарею будет поступать значительно меньший ток чем в режиме постоянного тока (CC) поскольку батарея уже почти зарядилась в режиме CC. То есть при фиксированном зарядном напряжении 8.6V в батарею будет поступать сравнительно небольшой зарядный ток и он будет постепенно уменьшаться по мере того как батарея будет становиться все более заряженной. Таким образом, в этом режиме мы будем контролировать ток заряда батареи и как только он станет менее 50mA мы будем предполагать что батарея уже полностью заряжена и будем отключать ее от зарядного устройства с помощью реле.

То есть при заряде батареи с помощью нашего зарядного устройства мы будем соблюдать следующую последовательность шагов:

  1. Включить в зарядном устройстве режим постоянного тока (CC) и заряжать батарею постоянным током 800mA регулирую величину напряжения.
  2. Контролировать напряжение на батарее и когда оно достигнет величины 8.2V переключать зарядное устройство в режим постоянного напряжения (CV).
  3. В режиме CV заряжать батарею при фиксированном напряжении 8.6V.
  4. В режиме CV контролировать зарядный ток батареи и как только он станет меньше 50mA автоматически отключать батарею от зарядного устройства.

Использованные нами значения 800mA, 8.2V и 8.6V являются фиксированными для используемого нами блока литиевых батарей на 7.4V. Вы легко можете изменить эти значения под требуемые параметры для вашей батареи. Кроме двухрежимных существуют и еще более многорежимные зарядные устройства. Например, в трехрежимном зарядном устройстве будет режимы CC, CV и плавающий. В еще более многорежимных зарядных устройствах будут учитываться такие параметры как внутреннее сопротивление, температура и т.д.

Работа схемы

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

Схема двухрежимного зарядного устройства литиевых батарей 7.4 В на основе платы ArduinoКак вы можете видеть, схема достаточно проста. Мы использовали две микросхемы регулятора напряжения LM317, одна из которых из которых будет использоваться для регулирования напряжения, а вторая - для регулировки тока. Первое реле в схеме используется для переключения между режимами CC и CV, а второе – для подключения и отключения батареи от зарядного устройства.

Регулятор тока на микросхеме LM317

Микросхему LM317 можно использовать в качестве регулятора тока с помощью подключения к ней всего лишь одного резистора как показано на следующей схеме.

Схема регулятора тока на микросхеме LM317

Для нашего зарядного устройства в режиме CC будет необходим ток 800mA. Формула для расчета необходимого значения тока в данном случае будет выглядеть следующим образом:

Resistor (Ohms) = 1.25 / Current (Amps)

В нашем случае требуемое значение тока составляет величину 0.8A, поэтому по приведенной формуле получаем значение сопротивления 1.56 Ом. Самый близкий к этой величине номинал сопротивления резисторов – 1.5 Ом, его мы и использовали в нашей схеме.

Регулятор напряжения на микросхеме LM317

Для режима постоянного напряжения (CV) нам необходимо поддерживать постоянное напряжение 8.6V при заряде литиевой батареи. Регулятор напряжения на микросхеме LM317 можно получить с помощью двух резисторов как показано на следующей схеме.

Схема регулятора напряжения на микросхеме LM317

Формула для расчета напряжения на выходе регулятора в данном случае выглядит следующим образом:

Формула для расчета напряжения на выходе регулятора

В нашем случае выходное напряжение (Vout) должно быть 8.6V, значение сопротивления R1 мы выбрали равным 560 Ом (оно должно быть менее 1000 Ом), поэтому по формуле для резистора R2 мы получили сопротивление 3,3 кОм. Вы можете использовать и другую комбинацию резисторов.

Использование реле для переключения между режимами CC и CV

В нашей схеме мы используем два реле на 12V, каждое из которых управляется с помощью NPN транзистора BC547. Зоны функционирования каждого из этих реле выделены цветной рамкой на следующем рисунке.

Зоны функционирования реле в схеме зарядного устройства литиевых батарей

Первое реле используется для переключения между режимами CC и CV нашего зарядного устройства, это реле управляется с контакта платы Arduino который в программе обозначен как “Mode”. По умолчанию реле находится в положении CC, при поступлении управляющего сигнала оно переключается в положение CV.

Второе реле используется для соединения и отсоединения батареи от зарядного устройства, это реле управляется с контакта платы Arduino который в программе обозначен как “Charge”. По умолчанию оно находится в положении, когда батарея отключена от зарядного устройства, при поступлении управляющего сигнала оно подключает батарею к зарядному устройству. Диоды D1 и D2 в схеме используются для защиты схемы от обратного тока, а резисторы R4 и R5 сопротивлением 1 кОм служат для ограничения тока через базы транзисторов.

Измерение напряжения на литиевой батарее

Чтобы управлять процессом заряда мы должны измерять напряжение на батарее, нам необходимо переключаться с режима CC в режим CV когда напряжение на батарее, как уже описывалось ранее в статье, достигнет значения 8.2V. Наиболее простой способ сделать это, который используется в схемах на микроконтроллерах – использование делителя напряжения как показано на следующем рисунке.

Принцип измерения напряжения на литиевой батарее с помощью делителя напряжения

Максимальное значение напряжения, которое может измерить плата Arduino, составляет 5V. А максимальное значение напряжения, которое нам необходимо измерять в нашем проекте, равно 8.6V. Соответственно, с помощью делителя напряжения мы будем понижать это напряжения до значения, которое можно измерить с помощью платы Arduino. Мы в нашем проекте решили уменьшать это напряжение ровно в 2 раза, поэтому использовали в делителе напряжения резисторы с одинаковыми номиналами сопротивления. Это уменьшенное в 2 раза напряжение подается на аналоговый контакт платы Arduino, в дальнейшем на основе этого значения напряжения мы в программе определяем истинное значение напряжения на батарее.

Измерение тока заряда

Другой параметр, который нам необходимо измерять во время работы нашего зарядного устройства – это ток заряда. Во время режима постоянного напряжения (CV) батарея будет отключаться от нашего зарядного устройства когда ток заряда будет становиться менее 50mA, что будет свидетельствовать об окончании заряда. Существует много методов измерения тока, один из самых распространенных среди них – это использование шунтирующего резистора. Схема измерения тока в данном случае будет выглядеть следующим образом:

Схема измерения тока заряда с помощью шунтирующего резистора

Принцип измерения тока при этом базируется на известном законе Ома. Ток, который в данном случае протекает через батарею и наш шунтирующий резистор сопротивлением 2,2 Ом, одинаков. С помощью закона Ома (V=IR) мы знаем, что падение напряжения на резисторе пропорционально току, протекающему через него. Напряжение мы можем измерить с помощью аналогового контакта Arduino, сопротивление резистора мы знаем, следовательно, мы легко можем рассчитать и ток. Мы знаем, что максимальный ток заряда для нашего зарядного устройства будет составлять 800mA, поэтому, используя формулы V=IR и P=I2R, мы можем рассчитать необходимое сопротивление резистора и номинал мощности, на который должен быть рассчитан резистор.

Arduino и ЖК дисплей

Завершающим шагом в создании нашего зарядного устройства будет подключение ЖК дисплея к плате Arduino. На экране ЖК дисплея мы будем выводить измеренные значения тока и напряжения, а также различные сообщения.

Схема подключения ЖК дисплея к плате Arduino в нашем проекте зарядного устройства

Плата Arduino имеет встроенный регулятор напряжения, поэтому напряжения питания мы можем подавать на контакт Vin платы, а затем стабилизированное напряжение 5V использовать для питания платы Arduino и ЖК дисплея. Напряжение и ток мы будем измерять с помощью аналоговых контактов A0 и A1 платы Arduino, обозначенных на схеме метками “B_Voltage” и “B_Current”. Реле будут управляться с помощью контактов D8 и D9, обозначенных на схеме метками “Mode” и “Charge”.

Изготовление печатной платы проекта

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

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

https://easyeda.com/CircuitDigest/7.4V-Lithium-Charger-with-MCU

Вы можете посмотреть вид печатной платы с любой стороны, выбрав его в окне ‘Layers’ симулятора. Также можно посмотреть вид печатной платы после изготовления, нажав кнопку Photo View в симуляторе EasyEDA.

Вид печатной платы нашего зарядного устройства в симуляторе EasyEDA

После проектирования дизайна печатной платы вы можете заказать ее изготовление на сайте JLCPCB.com. Для заказа изготовления печатной платы вам будут необходимы Gerber файлы. Чтобы скачать эти файлы для нашего проекта нажмите кнопку Generate Fabrication File на странице редактирования EasyEDA, затем скачайте оттуда Gerber файлы или сразу нажмите кнопку Order at JLCPCB (заказать плату в JLCPCB) как показано на следующем рисунке. После чего вам необходимо будет указать параметры вашей печатной платы: число слоев, толщину, цвет и т.п.

Ввод параметров для вашей печатной платы

После нажатия кнопки заказа вас перебросит на сайт JLCPCB, где вы можете заказать изготовление печатной платы по низкой цене. Время изготовления вашей печатной платы будет менее 48 часов.

Страница для заказа изготовления печатной платы

Ход изготовления вашей печатной платы вы можете проверять при помощи нажатия на кнопку "Production Progress" в своем аккаунте на сайте JLCPCB.

Ход изготовления печатной платы

После изготовления нам печатная плата пришла в следующей коробке.

Вид коробки, в которой нам пришла печатная плата

Внешний вид печатной платы для нашего зарядного устройства с обоих сторон

Далее мы припаяли на плату все необходимые компоненты. Для подключения платы Arduino Nano и ЖК дисплея мы использовали коннекторы типа “мама” чтобы их можно было при необходимости снять для использования в других проектах. Вид полностью собранной конструкции зарядного устройства литиевых батарей показан на следующем рисунке.

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

Объяснение программы для Arduino

Полный код программы приведен в конце статьи, здесь же мы рассмотрим его наиболее важные фрагменты.

Вначале программы нам необходимо инициализировать используемые контакты – в нашем зарядном устройстве контакты A0 и A2 используются для измерения напряжения и тока соответственно, а контакты D8 и D9 используются для управления двумя реле в схеме.

Внутри функции setup мы инициализируем ЖК дисплей и отобразим на его экране приветственно сообщение. Для контактов, с которых осуществляется управление реле, зададим режим работы на вывод данных. По умолчанию включим режим постоянного тока (CC) для зарядного устройства.

Далее, внутри функции loop мы начнем программу с измерения напряжения на батарее и тока заряда. Считанные значения тока и напряжения умножаются на коэффициенты 0.0095 и 1.78 чтобы конвертировать считанные с выхода АЦП контактов значения в диапазоне от 0 до 1024 в истинные значения тока и напряжения.

Значения 0.0095 и 1.78 используются для умножения считанных значений тока и напряжения. Для расчета значений этих коэффициентов можно использовать мультиметр. Также значения этих коэффициентов можно рассчитать, используя значения сопротивлений резисторов в схеме, однако этот метод менее предпочтительный (точный).

Если напряжение заряда меньше 8.2V мы переключаемся в режим CC, а если больше 8.2V, то мы переключаемся в режим CV. Каждый режим имеет свой собственный цикл while. Внутри цикла для режима CC мы поддерживаем на контакте управления режимом (Mode pin) напряжение низкого уровня (LOW) чтобы оставаться в режиме CC и продолжаем мониторить значения тока и напряжения. Если измеренное напряжение будет превышать значение 8.2V мы осуществляем выход из цикла для режима CC при помощи использования оператора break. Значение напряжения на батарее отображается на экране ЖК дисплея внутри цикла для режима CC.

Аналогичная технология используется и в режиме CV. Если напряжение на батарее превышает значение 8.2V зарядное устройство переключается в режим CV при помощи подачи на контакт управления режимом напряжения высокого уровня (high). В режиме CV на батарее поддерживается постоянное напряжение 8.6V, а ток заряда изменяется (уменьшается). Когда значение тока становится меньше 50mA мы прерываем процесс заряда путем отключения батареи от нашего зарядного устройства – делаем мы это с помощью реле.

Тестирование работы проекта

После того как аппаратная часть проекта будет готова загрузите программу в плату Arduino. Затем подсоедините батарею к зарядным терминалам зарядного устройства. Убедитесь в том, что подключаете батарею в правильной полярности, потому что подключение в неправильной полярности может повредить и батарею, и плату Arduino. Затем подайте питание на схему с помощью адаптера на 12V. Вы увидите приветственное сообщение на экране дисплея и зарядное устройство переключится в режим CC или CV в зависимости от текущего уровня заряженности батареи. Если ваша батарея сильно разряжена, то зарядное устройство переключится в режим CC и вы на экране ЖК дисплея увидите примерно следующую картину:

Тестирование работы зарядного устройства в режиме CC

После того как напряжение на батарее достигнет значения 8.2V зарядное устройство переключится в режим CV и на экране ЖК дисплея будут показываться значения и напряжения, и тока, как показано на следующем рисунке.

Тестирование работы зарядного устройства в режиме CV

В режиме CV по мере заряда батареи потребление им тока будет уменьшаться. После окончания процесса заряда (ток упадет менее 50mA) вы увидите на экране ЖК дисплея соответствующее сообщение.

Окончание процесса заряда в нашем зарядном устройстве

Более подробно все эти процессы вы можете посмотреть на видео, приведенном в конце статьи.

Исходный код программы (скетча)

Видео, демонстрирующее работу зарядного устройства литиевых батарей

Источник статьи

(Проголосуй первым!)
Загрузка...
4 753 просмотров

Комментарии

Двухрежимное зарядное устройство литиевых батарей 7.4 В на основе Arduino — 2 комментария

  1. Схема - полная шляпа.
    1. Ток замерять на сопротивлении 2,2 Ома Ардуинкой невозможно. Это на уровне погрешности. Надо ставить усилитель. Увеличивать сопротивление
    2. Литий заряжать без балансира - убить батарею.
    3. В программе всего одна выборка, на основе ее делается вывод. Нужно хотя бы 10, а лучше 100 выборок. Шумы в Ардуине сумасшедшие - десятки и сотни милливольт.
    Кроме того, нет защиты от переполюсовки, никакого управления, кроме сброса.
    В общем, дорабатывать и дорабатывать.

    • Доработать то можно, но в простейшем варианте и эта схема должна работать. Откуда у вас такие глубокие знания про зарядку литиевых аккумуляторов? Занимались этим профессионально?

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *