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

Digitrode

цифровая электроника вычислительная техника встраиваемые системы

Устройство проверки емкости литий-ионного аккумулятора на основе Arduino

С развитием технологий наши электронные устройства становятся все меньше и меньше с более функциональными и сложными приложениями. С увеличением сложности, требования к мощности схемы также увеличились, и в нашем стремлении сделать устройство как можно меньшим и портативным, нам нужна аккумуляторная батарея, которая может обеспечивать высокий ток в течение длительного периода времени и в то же время, весить намного меньше, чтобы устройство оставалось портативным.

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

На рынке есть много поставщиков аккумуляторов, которые продают дешевые копии литий-ионных аккумуляторов со странными характеристиками по очень низкой цене, что слишком хорошо, чтобы быть правдой. Когда вы покупаете эти элементы, они либо вообще не работают, либо, если они работают, емкость заряда или ток настолько мал, что они вообще не могут работать с требовательным приложением. Итак, как проверить литиевую батарею? Один из методов – измерить напряжение холостого хода без нагрузки, но это совсем не надежно.

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

Читайте также:  Аккумулятор для степлера bosch

Полная принципиальная схема тестера емкости аккумуляторов 18650 показана далее.

Эта схема дополнительно разделена на две части: первая – это схема низкого напряжения 5 В для Arduino Nano и буквенно-цифрового ЖК-экрана 16×2, а также их соединения для отображения результатов измерений тока и напряжения в реальном времени. Схема питается от источника питания 12 В или вы можете использовать аккумулятор 12 В, а максимальный ток будет около 60-70 мА для питания Arduino и ЖК-экрана.

Чтобы понизить напряжение до 5 В, мы будем использовать линейный стабилизатор напряжения, который может принимать на входе до 35 В для обеспечения регулируемого питания 5 В, а избыточное напряжение рассеивается в виде тепла, следовательно, если ваш вход превышает 12 В, тогда подумайте о добавлении радиатора, чтобы он не повредился. ЖК-дисплей питается от источника питания 5 В от 7805, подключен к Arduino и работает в 4-битном режиме. Мы также добавили потенциометр 10 кОм для управления контрастностью ЖК-дисплея.

Вторая часть схемы – это цепь нагрузки с постоянным током на основе ШИМ, которая делает ток нагрузки, протекающий через резистор, управляемым и постоянным, чтобы не возникала ошибка, возникающая из-за изменения тока со временем, когда напряжение аккумуляторного элемента падает. Она состоит из ОУ LM741 и полевого транзистора IRF540N, который управляет током, протекающим через полевик, путем включения и выключения полевика в соответствии с установленным нами уровнем напряжения.

Операционный усилитель работает в режиме компаратора, значит, в этом режиме выходной сигнал операционного усилителя будет высоким, когда напряжение на неинвертирующем выводе операционного усилителя выше, чем на инвертирующем выводе. Точно так же, если напряжение на инвертирующем выводе операционного усилителя выше, чем на неинвертирующем выводе, выход операционного усилителя будет понижен. В данной схеме уровень напряжения неинвертирующего вывода контролируется ШИМ-выводом D9 Arduino NANO, который переключается с частотой 500 Гц, которая затем проходит через RC-фильтр нижних частот со значением сопротивления 33 кОм и конденсатор емкостью 0,47 мкФ, чтобы обеспечить почти постоянный сигнал постоянного тока на неинвертирующем выводе. Инвертирующий вывод подключен к нагрузочному резистору, который считывает напряжение на резисторе и общем GND. Выходной контакт ОУ подключен к клемме затвора полевого МОП-транзистора, чтобы включить или выключить его. ОУ попытается уравнять напряжения на обоих своих выводах, переключая подключенный полевик, чтобы ток, протекающий через резистор, был пропорционален значению ШИМ, которое вы установили на выводе D9. В этом проекте максимальный ток, который мы ограничили для своей схемы, составляет 1,3 А, что является разумным, поскольку у нас есть элемент на 10 А в качестве максимального номинального тока.

Максимальное напряжение стандартного полностью заряженного литий-ионного элемента составляет от 4,1 В до 4,3 В, что меньше предела напряжения 5 В аналоговых входных контактов Arduino Nano, который имеет внутреннее сопротивление более 10 кОм, так что мы можем напрямую подключить к любому из аналоговых входных контактов, не беспокоясь о протекающем через них токе. Итак, в этом проекте нам необходимо измерить напряжение элемента, чтобы мы могли определить, находится ли элемент в правильном рабочем диапазоне напряжения и полностью ли он разряжен.

Нам также необходимо измерить ток, протекающий через резистор, для этого мы не можем использовать токовый шунт, так как сложность схемы будет увеличиваться, а увеличение сопротивления на пути нагрузки уменьшит скорость разряда элемента. Использование шунтирующих резисторов меньшего размера потребует дополнительной схемы усилителя, чтобы считываемое с него напряжение считывалось на Arduino. Таким образом, мы непосредственно считываем напряжение на нагрузочном резисторе, а затем, используя закон Ома, делим полученное напряжение на значение нагрузочного резистора, чтобы получить ток, протекающий через него. Отрицательный вывод резистора подключен непосредственно к GND, поэтому мы можем с уверенностью предположить, что напряжение, которое мы читаем на резисторе, является падением напряжения на резисторе.

Полный код программы устройства проверки емкости аккумулятора представлен далее.

Теперь, когда мы разработали и протестировали различные участки нашей схемы на макетной плате и убедившись, что все они работают должным образом, мы используем перфорированную плату для пайки всех компонентов вместе, поскольку это гораздо более профессиональный и надежный метод проверки схемы. . При желании вы можете спроектировать свою собственную печатную плату в AutoCAD Eagle, EasyEDA или Proteus ARES или в любом другом программном обеспечении, которое вам нравится.

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

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

Источник

Измеритель емкости для аккумуляторов NiMH, NiCd, Li-Ion, Li-Poli и LiFePo4 на Arduino Nano

Фальсификация аккумуляторов — особенно литий-ионных (Li-ion) и никель-металлогидридных (NiMH) аккумуляторов — печальный факт. Многие компании рекламируют аккумуляторы или PowerBank, указывая огромные значения емкости, которые значительно превышают фактические параметры этих компонентов.

Благодаря данному устройству вы можете легко измерить реальную емкость аккумуляторов и выбрать те, которые имеют соответствующие параметры. Трудно проверить реальную емкость аккумуляторов, особенно когда вы их покупаете много.

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

Схема, представленная ниже, представляет собой второе поколение измерителя емкости аккумуляторов, созданного автором проекта на портале Instructables под ником Open Green Energy.

Схема, построенная ранее в 2016 году, разряжала элемент через постоянный резистор, а модуль Arduino измерял ток и напряжение как функцию времени. В конце, после разрядки элемента до заданного уровня, емкость определялась как произведение тока разряда и времени, которое потребовалось для разрядки элемента до установленного уровня.

Однако во время измерения при уменьшении напряжения батареи также уменьшается и ток. Это делало процесс вычисления емкости достаточно сложным и неточными. Чтобы устранить эту проблему, автор создал версию V2.0, которая была разработана таким образом, чтобы ток оставался постоянным на протяжении всего процесса разрядки.

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

Основные преимущества тестера емкости аккумуляторов:

  • Возможность измерять емкость элементов NiMH, NiCd, Li-Ion, Li-Poli и LiFePo4 различных размеров — AA, AAA, 18650 и др. Единственным условием является напряжение аккумулятора ниже 5 В.
  • Настраиваемый ток разряда аккумулятора.
  • Пользовательский интерфейс на основе легко читаемого OLED-дисплея.
  • Возможность использования устройства в качестве программируемой электронной нагрузки.

Для создания данного тестера нам понадобятся:

  • Печатная плата.
  • Arduino Nano .
  • Операционный усилитель LM358 .
  • Дисплей OLED с диагональю 0,96 дюйма.

Конструкция тестера аккумуляторов

Принципиальная схема показана на следующем рисунке:

Условно всю конструкцию можно разделить на следующие части:

  1. Источник питания.
  2. Нагрузка постоянного тока.
  3. Измерение напряжения аккумулятора.
  4. Интерфейс пользователя.
  5. Сигнализатор — зуммер.

Источник питания

Источник питания состоит из разъема для подключения внешнего источника питания (входное напряжение в диапазоне 7…9 В) и двух фильтрующих конденсаторов С1 и С2. Входное напряжение (Vin) подключено к выводу Vin Arduino. Схема использует встроенный стабилизатор напряжения Arduino.

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

Основным элементом этой схемы является интегральная схема LM358, которая включает в себя два операционных усилителя. ШИМ-сигнал с цифрового вывода D10 Arduino подается на фильтр нижних частот, состоящий из компонентов R1 и C3.

Далее он поступает на неинвертирующий вход операционного усилителя сконфигурированного вместе с полевым транзистором VT1 в качестве источника тока.

Операционный усилитель DD1 питается от стабилизированного напряжения 5 В, отфильтрованного конденсатором, который должен быть расположен как можно ближе к операционному усилителю.

ОУ DD1 вместе с R3 и VT1 , образует активную нагрузку постоянного тока, которая разряжает батарею. Ток, протекающий через резистор R3, управляется широтно-импульсной модуляцией (ШИМ), подаваемой с Arduino на транзистор VT1 .

Принцип работы источника питания, встроенного в эту систему, очень прост. Операционный усилитель DD1 сравнивает напряжение на контакте 2 (инвертирующий вход) и контакте 3 (неинвертирующий вход).

Сам операционный усилитель настроен как буфер с единичным усилением. Отфильтрованный ШИМ сигнал подается на неинвертирующий вход, что вызывает появление некоторого напряжения на выходе усилителя, который открывает затвор MOSFET.

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

Таким образом, ток, протекающий через нагрузочный резистор, будет пропорционален напряжению на неинвертирующем входе операционного усилителя. Напряжение на неинвертирующем входе, которое управляет работой источника тока, поступает от низкочастотного фильтра RC, на который подается прямоугольный сигнал с переменным заполнением, генерируемый Arduino.

На следующем рисунке показан ШИМ сигнал от Arduino (канал 1, желтый) и сигнал после фильтра (канал 2, зеленый). Таким образом, из ШИМ и RC-фильтра собран простой ЦАП.

Значения элементов фильтра RC могут быть подобраны с помощью осциллографа и анализа выходного сигнала от фильтра для различных значений аккумуляторов и/или частоты сигнала ШИМ.

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

Напряжение аккумулятора измеряется через контакт A0 (вход аналого-цифрового преобразователя в Arduino). Два конденсатора С1 и С2 используются для фильтрации помех, присутствующих в цепи испытуемого аккумулятора, которые возникают из-за пульсаций тока в цепи активной нагрузки. Эти помехи могут снизить точность измерения АЦП в Arduino.

Интерфейс пользователя

Схема интерфейса пользователя состоит из двух кнопок и 0,96-дюймового модуля OLED-дисплея, управляемого по I2C. Две кнопки (Вверх и Вниз) используются для увеличения или уменьшения ширины импульса ШИМ, что позволяет регулировать ток разрядки аккумулятора.

Резисторы R2 и R4 подтягивают обе линии, подключенные к кнопкам. Третья кнопка (RST) используется для сброса Arduino. Напряжение аккумулятора, ток разряда и измеренная емкость отображаются на OLED-дисплее.

Его разрешение составляет 128 × 64 пикселей, а связь с Arduino осуществляется через шину I2C, благодаря которой для передачи данных требуются только две сигнальные линии — контакт SCL (A5) и SDA (A4). Два других контакта платы дисплея являются источником питания (+5 В и GND).

Сигнализация — зуммер

5-вольтный зуммер подключен к цифровому выводу D9 Arduino. Этот выход управляет сигналом тревоги, который сигнализирует о начале и конце измерения емкости ячейки.

Программное обеспечение

Во время измерения емкости аккумулятора схема стабилизирует ток на заданном уровне и разряжает аккумулятор до получения установленного напряжения в зависимости от типа батареи (например, 3,2 В для литий-ионного элемента). Емкость (в мАч) рассчитывается как установленный ток разряда (в мА) умноженный на время (в часах) необходимое для разрядки до порогового напряжения.

Ток разряда можно регулировать путем изменения заполнения ШИМ-сигнала, который управляет источником тока. Прежде чем мы перейдем к саму скетчу, мы должны загрузить и установить две библиотеки:

  1. JC_Button — используется для управления кнопками.
  2. Adafruit_SSD1306 — поддержка дисплея OLED с драйвером SSD1306.

Скетч для Arduino

Перед компиляцией в коде необходимо заполнить два значения калибровки:

  • Массив значений тока для различных величин ШИМ и используемого силового резистора. Этот ток мы измеряем, подключая мультиметр последовательно с ячейкой, уже после сборки нашего устройства. Кнопками меняем заполнение управляющего сигнала и измеряем текущий для отдельных порогов ток ячейки. Полученные значения помещаем в переменную Current.
  • Уровень напряжения VCC в нашей схеме. Мы измеряем напряжение 5 В с помощью мультиметра на выводе VCC Arduino и вводим фактическое значение в переменную Vcc.

После вышеуказанной калибровки код программы готов к компиляции. Мы еще можем изменить значение переменной Low_BAT_ Level — это порог напряжения, до которого будет разряжаться элемент. Это зависит от типа аккумулятора. Хорошей идеей будет установить этот порог чуть выше минимально возможного напряжения для конкретного типа аккумулятора.

Далее следуют минимальные напряжения ячеек различной химии для разрядки ячеек током 1С:

  • Оксид лития-кобальта: напряжение = 2,5 В.
  • Оксид лития-марганца: напряжение = 2,5 В.
  • Фосфат лития и железа: напряжение = 2,5 В.
  • Титанат лития: напряжение = 1,8 В.
  • Литий-марганец-кобальт оксид: напряжение = 2,5 В.
  • Литий-никель-кобальт-алюминий оксид: напряжение = 3,0 В.

Скачать скетч и файлы печатной платы (142,0 KiB, скачано: 688)

Источник

Оцените статью