Оглавление:

Arduino LTC6804 BMS - Часть 2: Плата баланса: 5 шагов
Arduino LTC6804 BMS - Часть 2: Плата баланса: 5 шагов

Видео: Arduino LTC6804 BMS - Часть 2: Плата баланса: 5 шагов

Видео: Arduino LTC6804 BMS - Часть 2: Плата баланса: 5 шагов
Видео: Lithium-Ion Battery Management System | BMS | LTC6804-2 2024, Июль
Anonim
Arduino LTC6804 BMS - Часть 2: Плата баланса
Arduino LTC6804 BMS - Часть 2: Плата баланса

Часть 1 здесь

Система управления батареями (BMS) включает функцию определения важных параметров аккумуляторной батареи, включая напряжение элементов, ток батареи, температуру элементов и т. Д. Если какие-либо из этих параметров выходят за пределы заранее определенного диапазона, аккумулятор можно отключить от нагрузки или зарядного устройства., или могут быть предприняты другие соответствующие действия. В предыдущем проекте (https://www.instructables.com/id/Arduino-LTC6804-Battery-Management-System/) я обсуждал свой дизайн BMS, который основан на микросхеме Linear Technology LTC6804 Multicell Battery Monitor и микроконтроллере Arduino.. Этот проект расширяет проект BMS, добавляя балансировку аккумуляторной батареи.

Батарейные блоки состоят из отдельных ячеек в параллельной и / или последовательной конфигурациях. Например, блок 8p12s может быть построен с использованием 12 последовательно соединенных наборов из 8 параллельно соединенных ячеек. Всего в упаковке 96 ячеек. Для наилучшей производительности все 96 ячеек должны иметь близкие по свойствам свойства, однако всегда будут некоторые различия между ячейками. Например, некоторые ячейки могут иметь меньшую емкость, чем другие ячейки. По мере того, как батарея заряжается, элементы с меньшей емкостью достигают максимального безопасного напряжения раньше, чем остальная часть батареи. BMS обнаружит это высокое напряжение и отключит дальнейшую зарядку. В результате большая часть батареи не будет полностью заряжена, когда BMS отключит зарядку из-за более высокого напряжения самого слабого элемента. Подобная динамика может произойти во время разряда, когда элементы с большей емкостью не могут полностью разрядиться, потому что BMS отключает нагрузку, когда самая слабая батарея достигает своего низкого предела напряжения. Таким образом, батарея хороша ровно настолько, насколько хороши ее самые слабые батареи, как цепь, настолько сильна, насколько прочно ее самое слабое звено.

Одно из решений этой проблемы - использовать балансировочную доску. Несмотря на то, что существует множество стратегий для балансировки батареи, простейшие «пассивные» балансные платы предназначены для стравливания части заряда ячеек с самым высоким напряжением, когда батарея приближается к полной зарядке. Хотя некоторая часть энергии тратится впустую, пакет в целом может хранить больше энергии. Прокачка осуществляется путем рассеивания некоторой мощности через комбинацию резистора / переключателя, управляемую микроконтроллером. В этом руководстве описывается система пассивной балансировки, совместимая с Arduino / LTC6804 BMS из предыдущего проекта.

Запасы

Вы можете заказать печатную плату Balance Board в PCBWays здесь:

www.pcbway.com/project/shareproject/Balance_board_for_Arduino_BMS.html

Шаг 1: теория работы

Теория Операции
Теория Операции

На странице 62 таблицы LTC6804 обсуждается балансировка ячеек. Есть два варианта: 1) использование внутренних N-канальных полевых МОП-транзисторов для отвода тока из ячеек высокого уровня или 2) использование внутренних полевых МОП-транзисторов для управления внешними переключателями, по которым протекает ток утечки. Я использую второй вариант, потому что могу спроектировать свою собственную цепь отвода воздуха для обработки более высокого тока, чем можно было бы сделать с помощью внутренних переключателей.

Внутренние МОП-транзисторы доступны через контакты S1-S12, а доступ к самим ячейкам осуществляется через контакты C0-C12. На изображении выше показана одна из 12 идентичных цепей отвода воздуха. Когда Q1 включен, ток будет течь от C1 к земле через R5, рассеивая часть заряда в ячейке 1. Я выбрал резистор 6 Ом, 1 Вт, который должен выдерживать несколько миллиампер тока утечки. добавлен светодиод, чтобы пользователь мог видеть, какие ячейки балансируются в любой момент времени.

Контакты S1-S12 управляются CFGR4 и первыми 4 битами групп регистров CFGR5 (см. Страницы 51 и 53 таблицы данных LTC6804). Эти группы регистров устанавливаются в коде Arduino (обсуждается ниже) в функции balance_cfg.

Шаг 2: Схема

Схема
Схема

Схема балансной платы BMS была разработана с использованием Eagle CAD. Это довольно просто. Для каждого последовательного сегмента аккумуляторной батареи имеется один контур отвода воздуха. Коммутаторы управляются сигналами от LTC6804 через заголовок JP2. Ток утечки протекает от аккумуляторной батареи через разъем JP1. Обратите внимание, что ток утечки течет к следующему нижнему сегменту аккумуляторной батареи, поэтому, например, C9 перетекает в C8 и т. Д. Символ щита Arduino Uno размещен на схеме для компоновки печатной платы, описанной в шаге 3. Предоставляется изображение с более высоким разрешением. в zip-файле. Ниже приведен список деталей (по какой-то причине функция загрузки файлов Instructables у меня не работает….)

Кол-во Значение Комплектация устройства Детали Описание

12 LEDCHIPLED_0805 CHIPLED_0805 LED1, LED2, LED3, LED4, LED5, LED6, LED7, LED8, LED9, LED10, LED11, LED12 LED 12 BSS308PEH6327XTSA1 MOSFET-P SOT23-R Q1, Q2, Q3, Q4, Q5, Q6, Q9, Q10, Q11, Q12 P-Channel Mosfet 2 PINHD-1X13_BIG 1X13-BIG JP1, JP2 ЗАГОЛОВОК 12 16 R-US_R2512 R2512 R5, R7, R9, R11, R13, R15, R17, R19, R21, R23, R25, R27 РЕЗИСТОР, американский символ 12 1K R-US_R0805 R0805 R4, R6, R8, R10, R12, R14, R16, R18, R20, R22, R24, R26 RESISTOR, американский символ 12 200 R-US_R0805 R0805 R1, R2, R3, R28, R29, R30, R31, R32, R33, R34, R35, R36 RESISTOR, американский символ

Шаг 3: компоновка печатной платы

Макет печатной платы
Макет печатной платы

Компоновка в основном определяется конструкцией основной системы BMS, обсуждаемой в отдельном руководстве (https://www.instructables.com/id/Arduino-LTC6804-Battery-Management-System/). Заголовки JP1 и JP2 должны совпадать с соответствующими заголовками в BMS. Мосфеты, резисторы утечки и светодиоды логически расположены на плате Arduino Uno. Файлы Гербера были созданы с использованием Eagle CAD, а печатные платы были отправлены в Sierra Circuits для изготовления.

Прикрепленный файл «Gerbers Balance Board.zip.txt» на самом деле представляет собой zip-файл, содержащий Gerbers. Вы можете просто удалить часть имени файла.txt, а затем разархивировать ее, как обычный zip-файл.

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

Шаг 4: Сборка печатной платы

Печатные платы балансных плат были паяны вручную с помощью терморегулируемой паяльной станции Weller WESD51 с наконечником «отвертка» серии ETB ET 0,093 и припоем 0,3 мм. Хотя наконечники меньшего размера могут показаться лучше для сложной работы, они не сохраняют тепло и фактически усложняют работу. Перед пайкой очистите контактные площадки печатной платы флюсом. Припой 0,3 мм хорошо подходит для ручной пайки SMD-деталей. Нанесите немного припоя на одну площадку, а затем поместите деталь с помощью пинцета или ножа x-acto и закрепите эту площадку. Оставшуюся площадку можно припаять без движения детали. Следите за тем, чтобы не перегреть деталь или контактные площадки печатной платы. Поскольку большинство компонентов довольно большие по стандартам SMD, печатную плату довольно легко собрать.

Шаг 5: Код

Код
Код

Полный код Arduino представлен в предыдущем руководстве по ссылке выше. Здесь я обращаю ваше внимание на раздел, который контролирует балансировку ячеек. Как упоминалось выше, S1-S12 управляются CFGR4 и первыми 4 битами групп регистров CFGR5 на LTC6804 (см. Страницы 51 и 53 таблицы данных LTC6804). Функция цикла кода Arduino определяет сегмент аккумуляторной батареи с самым высоким напряжением и помещает его номер в переменную cellMax_i. Если напряжение cellMax_i больше, чем CELL_BALANCE_THRESHOLD_V, код вызовет функцию balance_cfg (), передав номер высокого сегмента, cellMax_i. Функция balance_cfg устанавливает значения соответствующего регистра LTC6804. Затем вызов LTC6804_wrcfg записывает эти значения в IC, включая вывод S, связанный с cellMax_i.

Рекомендуемые: