Тестер аккумуляторов на ардуино

На сегодняшний день на прилавках магазинов можно увидеть огромное количество видов батареек типоразмеров AA и AAA от разных производителей. При таком ассортименте ни на одной батарейке покупатель не найдет информации о том, какое количество энергии она способна отдать. Вместо этого, на каждой из них красуется надпись типа «Плюс», «Super», «Ultra» и пр., при этом цены на них очень разные. Многие люди, при покупках в магазинах, сравнивают товары по соотношению цена-киллограм или цена-литр. В случае с батарейками такого критерия нет. Поэтому автор решил, что настало время экспериментов, и сконструировал тестер емкости батареек, который позволил сравнить их по одному из важных параметров.

Идея была очень простой: необходима была схема, которая полностью разряжала бы батарейку, и при этом измеряла количество энергии, которую она производит, в Джоулях и в Ватт-часах. Наличие платы Arduino и модуля ЖК индикатора позволило создать отдельное компактное устройство. После сборки первого варианта, были добавлены дополнительные функции: измерение окружающей температуры во время тестирования и использование USB интерфейса для передачи данных в терминальную программу для дальнейшего анализа. Введение датчика окружающей температуры обусловлено зависимостью емкости батарейки от температуры.

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

Схема устройства достаточно проста, т.к. основана на платформе Arduino UNO SMD. Принципиальная схема платформы Arduino UNO показана на Рисунке 1. На схеме изображен микроконтроллер Atmel ATmega8, автор использовал вариант платы с микроконтроллером ATmega328, но конфигурация выводов и подключение в схеме для этих микроконтроллеров идентичны.

Рисунок 1. Принципиальная схема отладочной платы Arduino UNO.

К плате Arduino подключается модуль 2-строчного ЖК индикатора, цифровой датчик температуры DS18B20 и держатель батареи с нагрузочным резистором (Рисунок 2).

Рисунок 2. Принципиальная схема тестера батареек на базе платформы Arduino UNO

Схема работает следующим образом: при установке тестируемой батарейки в держатель, микроконтроллер измеряет напряжение на постоянной нагрузке каждую секунду, до тех пор, пока напряжение не упадет ниже уровня 0.2 В. Для упрощения схемы использовалась резистивная нагрузка 5.5 Ом, образованная четырьмя включенными параллельно резисторами номиналом 22 Ом (оптимальным было бы включение одного мощного резистора номиналом 4.0 Ом).

Плата Arduino питается от интерфейса USB или от внешнего источника питания, к тестируемой батарейке подключен только нагрузочный резистор.

Тестер смонтирован в подходящий корпус, в котором размещается плата Arduino, модуль ЖК индикатора и плата на которой установлены внешние компоненты (датчик температуры, резистор регулировки контрастности индикатора, нагрузочные резисторы).

Работа с тестером

После подачи питания и инициализации, тестер ожидает установки тетсируемой батарейки в держатель, о чем свидетельствует сообщение на экране индикатора. После установки батарейки на испытания начнется цикл измерений напряжения и температуры один раз в секунду. На экране индикатора будут отображаться результаты: совокупная энергия в Джоулях и Ватт-часах, напряжение на батарейке, температура окружающего воздуха и время тестирования. Эти же данные отправляются один раз в секунду по USB интерфейсу в терминальную программу, чтобы их можно было сохранить и проанализировать.

Рисунок 3. Отображение данных на ЖК индикаторе тестера батареек

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

Результаты тестирования батареек различных производителей

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

Рисунок 4. Изменение напряжения батареек различных брэндов на постоянной резистивной нагрузке.

В основном для теста в магазинах приобретались батарейки в комплекте из 4 шт., поэтому интерес представляет соотношение стоимости батарейки и ее емкости.

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

Поэтому сегодня мы покажем вам, как сделать Li-ion измеритель емкости, используя микроконтроллер Ардуино.

Шаг 1. Всё, что нам нужно

Ниже перечислим комплектующие для проекта:

  1. PCB (печатная плата);
  2. Силовой резистор;
  3. Резистор 10К;
  4. OLED (светодиодный дисплей)
  5. Ардуино
  6. Зуммер
  7. Разъемы для подключения винтовых клемм
  8. 40-контактный разъем/коннектор (или меньше)
  9. Транзистор IRFZ44N

Шаг 2. Что такое емкость?

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

Если вы посмотрите на любую литий-ионную емкость (см. фото выше), то на неё будет упомянута ее емкость — на рисунке 2600 мАч.

В основном, это означает, что если мы подключим нагрузку на нее, которая составит 2.6A, эта батарея будет работать в течение часа. Точно так же, если у меня есть аккумулятор емкостью 1000 мАч и нагрузка 2A, то он длительность составит 30 минут. Примерно это означают мАч или Ач.

Шаг 3. Практически невозможно

Но вычисление таким образом практически невозможно, потому что все мы знаем V = IR. Первоначально, напряжение батареи будет 4,2 В, если мы будем поддерживать постоянное сопротивление, будет протекать некоторый ток, протекающий через нагрузку. Но с течением времени напряжение батареи будет уменьшаться, а также наш ток. Это сделает наши вычисления намного сложнее, чем ожидалось, потому что нам нужно будет измерить ток и время для каждого раза.

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

Шаг 4. Наша схема

У нас был SPI OLED, который валялся без дела, поэтому мы преобразовали его в I2C и использовали. Если вы хотите узнать, как преобразовать SPI в OLED, то мы обязательно это разберем в ближайших уроках.

Схему проекта смотрите выше. И вот как работает эта схема. Сначала Arduino измеряет падение напряжения, создаваемое резистором 10 Ом, если выше 4,3 В, тогда она отключит высокое напряжение дисплея MOSFET, если оно меньше 2,9 В, оно отображает низкое напряжение и выключает MOSFET, а если находится между 4,3 В и 2,9 В, то она включит MOSFET. Батарея начнет разряжаться через резистор, начнется измерение тока, используя закон Ома. Ардуино также использует функцию Миллиса для измерения времени, а произведение тока и времени дает нам пропускную способность.

Шаг 5. Скетч для Ардуино

Вы можете взять код или скачать его ниже:

Шаг 6. Финальный результат

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

После пайки, когда вы подключаете мощность, всё может работать не так, как ожидалось. Возможно, потому что мы забыли добавить, так называемые, Pull Up резисторы на интерфейсе шины I2C, поэтому мы вернулись к коду и использовали встроенные резисторы Ардуино.

Теперь Ардуино тестер литий-ионных батарей работает отлично.

Представлен проект измерителя емкости аккумуляторов, основанный на микроконтроллере, который может измерять практически все типы аккумуляторов. Измеритель может подключаться к компьютеру и давать полную информацию о аккумуляторе — график разряда и емкости.
Обратите внимание, что это мой первый серьёзный проект на Arduino.

Что должно получится в итоге

На этом графике произведены замеры аккумулятора с заявленной емкостью 2000 mAh. Реальная емкость оказалась 1580 mAh:

График измерений Li-Ion аккумулятора:

Все графики сформированны из текстового документа, с значениями измерений, на ПК.

Начало начал – Arduino

Эту копию Arduino Diecimila я ждал примерно 2 недели, поэтому я купил ATmega168 и подумал что смогу заставить её работать не хуже Arduino без нескольких компонентов (в частности без кварца). Но это не получилось и мне пришлось ждать 16МГц кварц и два конденсатора 22 пФ.

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

К транзистору подключен резистор 2.2Ом 10 Вт. К резистору я подключил два A/D контакта Arduino и измерял падение напряжения на нем, вычисляя из этого значения ток I = DeltaV/R.
Я также добавил зуммер для оповещения окончания заряда и необходимости отключения аккумулятора.

Для индикации я использовал ЖК-дисплей 2*16. Я нашел документацию и пример работы с ним на сайте Arduino и начала разрабатывать программу.

Тип используемого аккумулятора (NiMH/NiCD или Li-ION) определяется по диапазону напряжения. После определения типа аккумулятора, начнется его разрядка для определения параметров.

Цикл разряда аккумулятора длится 30-120 минут. Длительность цикла зависит от емкости аккумулятора.

Параллельно резистору подключаются 2 A/D контакта.
Vr = Vbat-Vfet.

Программа

Схема подключения LCD к Arduino — стандартная. Посмотреть можно на официальном сайте по Arduino.

Оцените статью
Topsamoe.ru
Добавить комментарий