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




Я тестирую батарейки и аккумуляторы в проекте 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)


  1. falcon4fun
    10.04.2024 17:00
    +17

    Надежкин, как обычно, хорош :) Делаешь вещи. Спасибо банально за тесты :)


    1. AlexeyNadezhin Автор
      10.04.2024 17:00
      +4

      Спасибо!


      1. Spaceoddity
        10.04.2024 17:00
        +1

        Да, за таблицу спасибо)) Недавно выбирал себе лампы с Ra повыше - пригодилась (Navigator Supervision взял).


  1. gleb_l
    10.04.2024 17:00

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


    1. AlexeyNadezhin Автор
      10.04.2024 17:00
      +4

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


      1. Xander_d
        10.04.2024 17:00

        Мне кажется проще установить резисторы параллельно и переключать цепь между ними


    1. jar_ohty
      10.04.2024 17:00
      +4

      У этого реле будет свое и притом нестабильное сопротивление контактов. Так что лучше отвертки тут ничего нет из простого.


      1. gleb_l
        10.04.2024 17:00
        +2

        Да ну, не такие уж реле и несовершенные, как Вы представляете, тем более на большом токе. Это может проявляться при коммутации микровольтовых цепей, а здесь - все достаточно стандартно. Типичное сопротивление контактной пары - сотые доли Ома, а изменение во времени/температуры - уж точно меньше такового для обычного углеродного резистора даже 5% линейки.

        Этот прибор по сути - почти индикатор, точность выше 5% здесь малоосмысленна (тем более, что товарные партии батарей могут запросто отличаться на больший процент); а вот реле применяются успешно и в достаточно прецизионной аппаратуре - так что не в том стане ловим предателей ;)


        1. FelixTheMagnificent
          10.04.2024 17:00
          +1

          Он хоть и индикатор, но для сравнительного теста, имхо, хорош весьма.


  1. AvArAr
    10.04.2024 17:00
    +1

    Здравствуйте, хороший проект, тоже заморачивался таким, но я делал с измерением внутреннего сопротивления. Для сортировки скажем 18650


    1. AlexeyNadezhin Автор
      10.04.2024 17:00
      +2

      Для измерения внутреннего сопротивления есть хороший готовый прибор YR1035+.


      1. AvArAr
        10.04.2024 17:00

        Да, согласен, но он стоит порядка 3000 руб, а на базе Вашего практически ничего не будет стоить, разве что немного добавить кода. Получится более универсально) Просто это даст возможность быстрой сортировки / отбраковки.


        1. AlexeyNadezhin Автор
          10.04.2024 17:00
          +1

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


          1. AvArAr
            10.04.2024 17:00

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


            1. sergeyns
              10.04.2024 17:00

              С таким подходом вы получите точность плюс-минус тапок, что в принципе и так известно...


              1. AvArAr
                10.04.2024 17:00

                Вся точность на самом деле зависит от точности измерения сопротивления резистора, точности ващего опорного напряжения и точности резисторов в делители, если например измерения будут отностительно внутреннего опорного напряжения микроконтроллера 1.1v через делитель, точность в 3 знака после нуля Вам обеспечена! Сравнивал таким образом показания с эталонным мультиметром (Fluke, UT).


  1. Winnie_The_Pooh
    10.04.2024 17:00

    Алексей, а зачем видеть начальные сообщения при старте 8266 на нестандартной скорости? Всегда использую 115200 или больше, ну да, начальные сообщения видятся кракозябрами, ну и что?

    Предлагаю использовать стандартную скорость 115200 для обмена с компом.


    1. AlexeyNadezhin Автор
      10.04.2024 17:00
      +1

      Чтобы не было кракозябр.)
      Если хочется другую скорость, её можно изменить в скетче.


      1. serafims
        10.04.2024 17:00

        Не всякий монитор COM порта имеет такую скорость в числе штатных. Зато можно посылать ESC команду очистки терминала. Кстати, для Esp8266 есть библиотека remote debug, чтобы по Telnet подключаться через Putty и до эмуляторами и терминала по WiFi.


  1. vanxant
    10.04.2024 17:00

    Шрифт огонь!)


    1. AlexeyNadezhin Автор
      10.04.2024 17:00
      +1

      Экран малюсенький. Там он отлично выглядит.


  1. vis_inet
    10.04.2024 17:00

    Алексей, отличная идея и разработка измерителя ёмкости!


  1. KOT2K
    10.04.2024 17:00

    Спасибо за материал! Так держать!


  1. iqp
    10.04.2024 17:00

    Народный измеритель ёмкости батареек и аккумуляторов

    На пилюле-клоне STM32 вроде как народные устройства такого типа делаются. И без дополнительных аналоговых измерительных модулей, - точности встроенных вроде как должно хватить. Базовый вариант как по мне должен через MAX232 подключаться к натуральному COM разъему мат.платы, он есть на многих компьютерах все еще, в т.ч. на новых. Да и без дисплея можно обойтись в базовом варианте, весь вывод на компьютер кроме как на несколько светодиодов на устройстве. При всем этом плюс в статью.


    1. AlexeyNadezhin Автор
      10.04.2024 17:00
      +2

      Основных задач у меня было две:
      - сделать устройство, которым сможет пользоваться неквалифицированный пользователь. Без подключений к компьютеру и настроек: вставил батарейку, подождал, показало результат.
      - сделать устройство, которое очень легко повторить без каких-либо настроек. Если использовать АЦП микроконтроллера, во-первых понадобится это всё настраивать, во-вторых понадобится дополнительная электроника в виде операционного усилителя и его обвязки.


      1. 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# представить хабро-общественности. Простейшее, без корпуса изделие, народ сам соорудит корпус, можно и свой предложить, но это уже следующий этап.

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


        1. Kudriavyi
          10.04.2024 17:00
          +2

          Com порт у каждого компьютера? Я никогда им не пользовался, единственный раз хотел его использовать, когда ковырял 486 с помойки. А все микроконтроллеры программирую с ноутбука, и usb uart за 100 рублей - мой друг. Статья, все-таки, про любительский проект, а не про пром автоматизацию.


        1. IDDQDesnik
          10.04.2024 17:00

          COM-порт на мат.плате - почти у всех.

          Почти ни у кого. К примеру статистика по моделям из Регарда:

          Материнские платы - 7 из 345;

          Неттопы: 30 из 159;

          Ноутбуки: 1 из 1577;

          Понятно, что если надо, то всегда можно выкрутиться с помощью usb переходника, но может в 2024 году сразу заложить usb в базу?


        1. axe_chita
          10.04.2024 17:00
          +1

          Даже если COM порт есть на материнке, то скорее всего он существует в виде гребенки, которой потребуется планка с разъёмом и кабелем. А она дефицит, поскольку востребована магазинами всех масштабов от мелких до супермаркетов, для связи со всякими легаси устройствами.
          Так что нужно смотреть в сторону USB реализации, программной или аппаратной.


        1. DvoiNic
          10.04.2024 17:00

          голые MAX232 +STM32G030J6M6 будут стоить примерно столько же, сколько стоят использованный WeMos D1 Mini, имеющий на борту и контроллер, и CH340G, + INA219. И без всяких кадов, заказов плат в китае, пайки микросхем и smd, и т.п. - паяется проводками (а то и соединяется шлейфами с разъемами) без дополнительных знаний и умений. Т.е. "неэстэтично - зато дёшево, надежно и практично"®.


  1. DGN
    10.04.2024 17:00
    +1

    А оно не умеет переключать mAh в Ah? Как бы 41236 mAh выглядит менее читабельно чем 41.24 Ah

    А с учетом непрецезионной точности прибора, ещё и идеологически неверно.

    Знает ли оно про lifepo4? Что кроны бывают 6 и 7 банковыми?

    Внутреннее сопротивление по ВЧ, не всегда эквивалентно сопротивлению по постоянному току. Хорошо бы иметь замер свежей батарейки, 50% и на уровне разряда.


    1. AlexeyNadezhin Автор
      10.04.2024 17:00

      Оно сделано в первую очередь для батареек АА и ААА, где счёт идёт не более, чем до 3500 Мач. Никогда не видел 7-баночные кроны.


      1. jar_ohty
        10.04.2024 17:00

        Крона-ВЦ воздушно-цинковая была семибаночной, потому что воздушно-цинковый элемент дает 1,3 В.


  1. axe_chita
    10.04.2024 17:00

    Класс! Всё прямо как в старой ТВ передаче "Это вы можете" ;)


  1. Jury_78
    10.04.2024 17:00

    Почему не используете wifi, если взяли esp? Можно еще упростить жизнь если использовать micropython.


    1. AlexeyNadezhin Автор
      10.04.2024 17:00

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


      1. Jury_78
        10.04.2024 17:00

        Вы просто руку на Си набили, а так python проще и с wifi в том числе :)


        1. SuperTEHb
          10.04.2024 17:00

          Мне ещё нравится вариант с LUA для этого контроллера.


  1. fio
    10.04.2024 17:00

    Алексей, огромный респект за ваш труд.

    Немного нескромно назвать его народным. Скорее "открытый", "опенсорсный". Звание народного он и сам заслужит - когда будет много форков, улучшений.


    1. AlexeyNadezhin Автор
      10.04.2024 17:00
      +2

      Возможно Вы правы. "Народный" в смысле дешёвый и легкоповторяемый. Ну и как преемственность "Народного измерителя пульсации".


    1. AVX
      10.04.2024 17:00
      +4

      Немного нескромно 

      - Ему можно уже давно и нескромно :)


  1. AlexM2001
    10.04.2024 17:00
    +1

    Алексей, спасибо большое за публикацию! Интересно!


  1. siberianlaika
    10.04.2024 17:00

    Исходный код имеет смысл выложить на какой-нибудь хостинг с контролем версий. На международный github.com или если хочется в России, то есть gitflic.ru и др. Это сильно упростит внесение изменений и сделает более прозрачным контроль их приема. И в целом, когда код в публичной системе контроля версий, с ясно обозначенной лицензией, это вызывает больше доверия в собществе.


  1. Zara6502
    10.04.2024 17:00

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


  1. Tomasina
    10.04.2024 17:00

    На всякий случай оставлю ссылочку, кому-то может аукнуться.
    https://mysku.club/blog/aliexpress/98541.html