Я тестирую батарейки и аккумуляторы в проекте Batterytest.ru, но все модели, имеющиеся в продаже, протестировать невозможно, к тому же одни и те же батарейки из разных партий могут отличаться.
С помощью моего прибора каждый сможет протестировать любые батарейки и сравнить их между собой. Кроме того прибор поможет компаниям, выбирающим поставщика батареек и не доверяющим испытательным лабораториям.
Возможно у вас возник вопрос, зачем разрабатывать новый прибор, ведь в продаже можно встретить множество приборов для измерения ёмкости элементов питания. К сожалению все они либо очень дорогие, либо неточные, либо не универсальные, либо неудобные. Я постарался сделать простой, дешёвый, универсальный и точный прибор.
Основные параметры Народного измерителя BatteryTest:
- измерение ёмкости любых батареек (AA, AAA, CR2032, LR44, Крона и других);
- возможность измерения ёмкости аккумуляторов при условии своевременного ручного отключения после завершения теста;
- постоянный резистор в качестве нагрузки (это проще и точнее, чем электронная нагрузка);
- ток нагрузки от 1 до 800 мА (зависит от номинала сменного резистора);
- напряжение батареи от 1 до 15 вольт;
- время теста от 10 секунд до 1000 часов (около 42 суток);
- измеряемая энергия от 1 до 99999 мВтч;
- измеряемая ёмкость от 1 до 99999 мАч;
- постоянное отображение на экране напряжения, тока, ёмкости (мАч), энергии (мВтч) и времени;
- автоматическое определение напряжения окончания теста в зависимости от типа элемента питания;
- передача на компьютер данных тестирования (можно сохранять их и строить графики разряда);
- бесконечное отображение результатов после завершения теста;
- полное отсутствие органов управления.
Измерение напряжения и тока производится с помощью модуля на микросхеме Texas Instruments INA226.
В процессе теста батарейка полностью разряжается, поэтому протестированные батарейки придётся утилизировать.
В приборе не предусмотрено отключение нагрузочного резистора после окончания теста, поэтому если использовать прибор для тестирования ёмкости аккумуляторов придётся отслеживать момент завершения теста и вручную отключать аккумулятор, чтобы он не переразрядился.
При включении прибора на экране отображается заставка, номер версии и напоминание о необходимости подключить нагрузочный резистор и батарейку или аккумулятор. Как только резистор будет подключён, а батарейка установлена в держатель, на экране отобразится напряжение окончания разряда и параметры калибровки датчика напряжения и тока.
Через три секунды прибор перейдёт в режим отображения информации о тестировании: сверху время теста, в левой части экрана текущее напряжение и ток, в правой части экрана — отданная на текущий момент энергия в мВтч и заряд в мАч. Когда тест закончится, прибор покажет на экране дохлую батарейку, затем её изображение будет сменяться результатами: временем теста, отданной энергией и ёмкостью.
В процессе теста каждые 5 секунд данные передаются в компьютер через кабель USB и виртуальный COM-порт (скорость обмена 74880, именно такая скорость нужна, чтобы неотключаемая отладочная информация ESP8266 выводилась не кракозябрами).
Эти данные можно сохранить и использовать для построения графика разряда, например с помощью Excel.
На корпусе прибора установлены две контактные колодки. К центральным контактам подключается нагрузочный резистор. Для тестирования некоторых распространенных элементов питания используются следующие номиналы резисторов:
12 Ом — тест максимальной ёмкости батареек AA и AAA (75-130 мА);
3.9 Ом — тест батареек AA с повышенной нагрузкой (230-410 мА);
5.1 Ом — тест батареек AAA с повышенной нагрузкой (176-310 мА), тест NiMh аккумуляторов (176-235 мА);
230 Ом — тест батареек Крона (23-42 мА);
1 кОм — тест батареек CR2032 (2-3 мА).
К крайним контактам подключается сменный держатель элемента питания. Держатель для CR2032 подходит и для маленьких батареек-таблеток.
В программе, работающей в приборе, я постарался учесть все нюансы и нештатные ситуации: при отсутствии или сбое модуля измерения напряжения и тока на экране появится сообщение «Нет INA226», если батарейка подключена, а нагрузочный резистор нет, на экране появится сообщение «Подключите нагрузочный резистор», если за час после включения прибора батарейка и резистор так и не будут установлены, прибор сообщит «Долгий простой. Перезапуск». Если напряжение батарейки окажется выше допустимого, появится сообщение «Напряжение выше 15 вольт». Если время теста превысит предел, вместо времени появится надпись ">1000 часов". Через 1 минуту 45 секунд отображения итога измерения яркость экрана снижается для защиты OLED-экрана от выгорания.
В приборе используются недорогие компоненты: дешёвый микроконтроллер D1 mini на основе ESP8266, OLED-экран 0.96", готовый модуль INA226. Прибор может питаться от компьютера через USB-кабель или от любого адаптера питания 5 вольт с разъёмом USB, а также от некоторых пауэрбанков, способных не отключаться при небольшом потреблении (при питании 5В через разъём USB прибор потребляет 27 мА).
Я назвал прибор народным потому, что его сможет повторить любой желающий, способный спаять десяток проводов. Схема соединения трёх основных модулей и клеммных колодок очень проста.
Прошивку, исходный текст программы и ссылки на все детали для сборки прибора я разместил на странице проекта https://ammo1.ru/btest.
Для удобства экран устанавливается вверх ногами, контактами вниз (в программе экран перевёрнут, при желании можно установить экран как обычно и убрать из программы две строки, переворачивающие экран).
Модуль INA226 устанавливается как можно ближе к плюсовой клеммной колодке.
При желании можно установить в прибор аккумулятор формата 18650, плату зарядки и защиты, а также преобразователь напряжения, дающий на выходе 3.3 В (его выход подключается к линии питания 3.3 V, к которой подключены контакты питания экрана и модуля INA226) и выключатель между плюсовым контактом аккумулятора и входом преобразователя.
Аккумулятора 2600 мАч хватит приблизительно на 50-90 часов работы прибора (время работы зависит от типа преобразователя напряжения и его КПД).
Некоторые нюансы для тех, кто захочет собрать такой же прибор.
Можно использовать модули INA226 или INA231 (этот модуль вдвое дороже, у него лучше сделана разводка печатной платы, присутствуют сглаживающие помехи конденсаторы в линии измерения тока).
К сожалению на Aliexpress можно встретить плохие модули INA226 и INA231, в которых установлены отбракованные или поддельные микросхемы, в которых неправильно работает внутренний источник опорного напряжения, из-за чего напряжение и ток измеряются с большой ошибкой. У нормальных модулей отклонение напряжения не должно превышать двух знаков в третьем разряде после запятой (0.999 В — 1.001 В при измерении напряжения 1 В). Я добавил возможность корректировки напряжения в программу, чтобы можно было использовать бракованные модули, но лучше заказывать заведомо хорошие.
Точность измерения тока зависит от точности номинала резистора шунта 0.1 Ом, установленного в модуле. Желательно рассчитать калибровочное значение тока (calibrI в программе) с помощью хорошего мультиметра.
Готовая прошивка сделана для микроконтроллера D1 mini. Можно использовать любую версию с разъёмом Micro USB или Type C. Я рекомендую использовать D1 MINI V4.0.0, так как она самая дешёвая и у неё есть отверстия для крепления.
Можно использовать любую другую плату микроконтроллера (например, NodeMCU или Arduino Nano), достаточно откомпилировать программу под ваш контроллер и если в нём нет Wi-Fi, убрать команды, его отключающие.
Нагрузочные резисторы должны иметь большой запас по мощности, чтобы во время тестирования они не нагревались.
Не рекомендую использовать дешёвые колодки (холдеры) для батареек с красными проводами — из-за низкого качества контактов и проводов они могут иметь настолько большое сопротивление, что это существенно исказит результаты.
Это первая отлаженная и работоспособная версия прибора. В будущем я хочу добавить следующие возможности:
- удобная калибровка прибора по напряжению и току двумя кнопками, скрытыми внутри корпуса;
- отображение на экране уровня заряда аккумулятора при его наличии;
- сохранение данных тестирования на SD-карту;
- передача данных тестирования по Wi-Fi.
Если вы хотите присоединиться к разработке, буду рад.
Кроме того, планируется создание многоканальной версии прибора для одновременного тестирования нескольких батареек или аккумуляторов.
Для тех, кто хочет получить готовый прибор или повторить его, я постараюсь сделать два варианта: готовый откалиброванный прибор и набор для самостоятельной сборки с прошитым и откалиброванным контроллером.
Если найдутся энтузиасты, готовые тестировать батарейки с помощью этого прибора, подумаем о том, чтобы сделать на batterytest.ru раздел с народными результатами, и конечно же таким энтузиастам я готов предоставить приборы бесплатно.
© 2024, Алексей Надёжин
Комментарии (45)
gleb_l
10.04.2024 17:00Супервещь! Вам бы еще коммутировать банк нагрузочных резисторов не с помощью отвертки, а скажем, поляризованными реле (чтобы обмотки не потребляли ток вместе с разрядом элементов)..
AlexeyNadezhin Автор
10.04.2024 17:00+4В этом нет необходимости. Я не думаю, что кто-то будет с помощью прибора постоянно тестировать разные батарейки.
Возможно в будущих версиях будет просто электронная нагрузка, но пока так.Xander_d
10.04.2024 17:00Мне кажется проще установить резисторы параллельно и переключать цепь между ними
jar_ohty
10.04.2024 17:00+4У этого реле будет свое и притом нестабильное сопротивление контактов. Так что лучше отвертки тут ничего нет из простого.
gleb_l
10.04.2024 17:00+2Да ну, не такие уж реле и несовершенные, как Вы представляете, тем более на большом токе. Это может проявляться при коммутации микровольтовых цепей, а здесь - все достаточно стандартно. Типичное сопротивление контактной пары - сотые доли Ома, а изменение во времени/температуры - уж точно меньше такового для обычного углеродного резистора даже 5% линейки.
Этот прибор по сути - почти индикатор, точность выше 5% здесь малоосмысленна (тем более, что товарные партии батарей могут запросто отличаться на больший процент); а вот реле применяются успешно и в достаточно прецизионной аппаратуре - так что не в том стане ловим предателей ;)
FelixTheMagnificent
10.04.2024 17:00+1Он хоть и индикатор, но для сравнительного теста, имхо, хорош весьма.
AvArAr
10.04.2024 17:00+1Здравствуйте, хороший проект, тоже заморачивался таким, но я делал с измерением внутреннего сопротивления. Для сортировки скажем 18650
AlexeyNadezhin Автор
10.04.2024 17:00+2Для измерения внутреннего сопротивления есть хороший готовый прибор YR1035+.
AvArAr
10.04.2024 17:00Да, согласен, но он стоит порядка 3000 руб, а на базе Вашего практически ничего не будет стоить, разве что немного добавить кода. Получится более универсально) Просто это даст возможность быстрой сортировки / отбраковки.
AlexeyNadezhin Автор
10.04.2024 17:00+1Это будет совсем другое устройство. Измерить внутреннее сопротивление с неотключаемой резистивной нагрузкой не получится.
AvArAr
10.04.2024 17:00Вам нужно померять напряжение под нагрузкой и без нагрузки. Ток в цепи вы уже и так измеряете. И знать точное сопротивление нагрузочного резистора, но я думаю Вы и без меня разберетесь, просто хотел подкинуть идею усовершенствования)
sergeyns
10.04.2024 17:00С таким подходом вы получите точность плюс-минус тапок, что в принципе и так известно...
AvArAr
10.04.2024 17:00Вся точность на самом деле зависит от точности измерения сопротивления резистора, точности ващего опорного напряжения и точности резисторов в делители, если например измерения будут отностительно внутреннего опорного напряжения микроконтроллера 1.1v через делитель, точность в 3 знака после нуля Вам обеспечена! Сравнивал таким образом показания с эталонным мультиметром (Fluke, UT).
Winnie_The_Pooh
10.04.2024 17:00Алексей, а зачем видеть начальные сообщения при старте 8266 на нестандартной скорости? Всегда использую 115200 или больше, ну да, начальные сообщения видятся кракозябрами, ну и что?
Предлагаю использовать стандартную скорость 115200 для обмена с компом.
AlexeyNadezhin Автор
10.04.2024 17:00+1Чтобы не было кракозябр.)
Если хочется другую скорость, её можно изменить в скетче.serafims
10.04.2024 17:00Не всякий монитор COM порта имеет такую скорость в числе штатных. Зато можно посылать ESC команду очистки терминала. Кстати, для Esp8266 есть библиотека remote debug, чтобы по Telnet подключаться через Putty и до эмуляторами и терминала по WiFi.
iqp
10.04.2024 17:00Народный измеритель ёмкости батареек и аккумуляторов
На пилюле-клоне STM32 вроде как народные устройства такого типа делаются. И без дополнительных аналоговых измерительных модулей, - точности встроенных вроде как должно хватить. Базовый вариант как по мне должен через MAX232 подключаться к натуральному COM разъему мат.платы, он есть на многих компьютерах все еще, в т.ч. на новых. Да и без дисплея можно обойтись в базовом варианте, весь вывод на компьютер кроме как на несколько светодиодов на устройстве. При всем этом плюс в статью.
AlexeyNadezhin Автор
10.04.2024 17:00+2Основных задач у меня было две:
- сделать устройство, которым сможет пользоваться неквалифицированный пользователь. Без подключений к компьютеру и настроек: вставил батарейку, подождал, показало результат.
- сделать устройство, которое очень легко повторить без каких-либо настроек. Если использовать АЦП микроконтроллера, во-первых понадобится это всё настраивать, во-вторых понадобится дополнительная электроника в виде операционного усилителя и его обвязки.iqp
10.04.2024 17:00+2Основных задач у меня было две:- сделать устройство, которым сможет пользоваться неквалифицированный пользователь. Без подключений к компьютеру и настроек: вставил батарейку, подождал, показало результат.- сделать устройство, которое очень легко повторить без каких-либо настроек. Если использовать АЦП микроконтроллера, во-первых понадобится это всё настраивать, во-вторых понадобится дополнительная электроника в виде операционного усилителя и его обвязки.
Я бы так приоритеты расставил:
Прочитавший статью мог бы стартовать с минимумом усилий, необязательно сверхдешево. Компьютер есть у всех, COM-порт на мат.плате - почти у всех. Взять макетную плату, впаять в нее MAX232, светодиоды с резисторами, разъемы, подключить к компьютеру и убедиться, что на C# можете мигать светодиодами на этой платке.
Теперь надо определиться с микроконтроллером, ESP8266 из другой оперы, я бы ее не тащил сюда на этом этапе. Как по мне, так какая-нибудь 8-пиновая STM32G030J6M6 была бы уместна здесь. Если нет опыта с программированием STM32, то тогда бы купил Nucleo с этим микроконтроллером. Из-за санкций - не особо дешево, но можно быстро стартовать. АЦП у этого STM32G030 12-битное, с возможностью нарастить до 16-битного разными ухищрениями, оп. усилитель навряд ли понадобится в этом проекте.
Собираете на этом тандеме - макетная плата с MAX232 плюс Nucleo прототип, запускаете его. Теперь можно купить STM32G030J6M6, установить ее на макетную плату с MAX232. Можно приклеить ее к плате вверх ногами и тонкими проводами развести эти 8 ног. Когда все это работает, можно взять CAD, и набрать макет уже там, послать в Китай, получить платки, собрать и вместе с кодом на C# представить хабро-общественности. Простейшее, без корпуса изделие, народ сам соорудит корпус, можно и свой предложить, но это уже следующий этап.
Проходить этапы неплохо бы инкрементально, если намешать все в кучу, то потом тяжелее продать свои скилы, выглядеть со стороны будет так себе.
Kudriavyi
10.04.2024 17:00+2Com порт у каждого компьютера? Я никогда им не пользовался, единственный раз хотел его использовать, когда ковырял 486 с помойки. А все микроконтроллеры программирую с ноутбука, и usb uart за 100 рублей - мой друг. Статья, все-таки, про любительский проект, а не про пром автоматизацию.
IDDQDesnik
10.04.2024 17:00COM-порт на мат.плате - почти у всех.
Почти ни у кого. К примеру статистика по моделям из Регарда:
Материнские платы - 7 из 345;
Неттопы: 30 из 159;
Ноутбуки: 1 из 1577;
Понятно, что если надо, то всегда можно выкрутиться с помощью usb переходника, но может в 2024 году сразу заложить usb в базу?
axe_chita
10.04.2024 17:00+1Даже если COM порт есть на материнке, то скорее всего он существует в виде гребенки, которой потребуется планка с разъёмом и кабелем. А она дефицит, поскольку востребована магазинами всех масштабов от мелких до супермаркетов, для связи со всякими легаси устройствами.
Так что нужно смотреть в сторону USB реализации, программной или аппаратной.
DvoiNic
10.04.2024 17:00голые MAX232 +STM32G030J6M6 будут стоить примерно столько же, сколько стоят использованный WeMos D1 Mini, имеющий на борту и контроллер, и CH340G, + INA219. И без всяких кадов, заказов плат в китае, пайки микросхем и smd, и т.п. - паяется проводками (а то и соединяется шлейфами с разъемами) без дополнительных знаний и умений. Т.е. "неэстэтично - зато дёшево, надежно и практично"®.
DGN
10.04.2024 17:00+1А оно не умеет переключать mAh в Ah? Как бы 41236 mAh выглядит менее читабельно чем 41.24 Ah
А с учетом непрецезионной точности прибора, ещё и идеологически неверно.
Знает ли оно про lifepo4? Что кроны бывают 6 и 7 банковыми?
Внутреннее сопротивление по ВЧ, не всегда эквивалентно сопротивлению по постоянному току. Хорошо бы иметь замер свежей батарейки, 50% и на уровне разряда.
AlexeyNadezhin Автор
10.04.2024 17:00Оно сделано в первую очередь для батареек АА и ААА, где счёт идёт не более, чем до 3500 Мач. Никогда не видел 7-баночные кроны.
jar_ohty
10.04.2024 17:00Крона-ВЦ воздушно-цинковая была семибаночной, потому что воздушно-цинковый элемент дает 1,3 В.
Jury_78
10.04.2024 17:00Почему не используете wifi, если взяли esp? Можно еще упростить жизнь если использовать micropython.
AlexeyNadezhin Автор
10.04.2024 17:00В будущем возможно будет использоваться. Сейчас я хотел сделать максимально простое в использовании устройство.
fio
10.04.2024 17:00Алексей, огромный респект за ваш труд.
Немного нескромно назвать его народным. Скорее "открытый", "опенсорсный". Звание народного он и сам заслужит - когда будет много форков, улучшений.
AlexeyNadezhin Автор
10.04.2024 17:00+2Возможно Вы правы. "Народный" в смысле дешёвый и легкоповторяемый. Ну и как преемственность "Народного измерителя пульсации".
siberianlaika
10.04.2024 17:00Исходный код имеет смысл выложить на какой-нибудь хостинг с контролем версий. На международный github.com или если хочется в России, то есть gitflic.ru и др. Это сильно упростит внесение изменений и сделает более прозрачным контроль их приема. И в целом, когда код в публичной системе контроля версий, с ясно обозначенной лицензией, это вызывает больше доверия в собществе.
Zara6502
10.04.2024 17:00Прочитал заголовок и первый абзац, посмотрел на гору своих батареек, кинулся собирать инструменты и готовиться к пайке, а потом читаю "В процессе теста батарейка полностью разряжается, поэтому протестированные батарейки придётся утилизировать", хнык.
Tomasina
10.04.2024 17:00На всякий случай оставлю ссылочку, кому-то может аукнуться.
https://mysku.club/blog/aliexpress/98541.html
falcon4fun
Надежкин, как обычно, хорош :) Делаешь вещи. Спасибо банально за тесты :)
AlexeyNadezhin Автор
Спасибо!
Spaceoddity
Да, за таблицу спасибо)) Недавно выбирал себе лампы с Ra повыше - пригодилась (Navigator Supervision взял).