Простой измеритель ёмкости аккумуляторов своими руками

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

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

  • измерение ёмкости аккумуляторов

  • заряд и разряд аккумуляторов

  • измерение характеристик источников питания

Полная схема устройства

g7guono9chmaywqp7vro3uerjvc.png

Далее будут рассмотрены отдельные части электронной схемы с описанием моментов с которыми довелось столкнуться.

Микроконтроллер

bvupdramkrerfrrtujmdhuz5iwk.png

В схеме использован микроконтроллер ATmega328 в DIP корпусе с тактированием от внешнего кварцевого резонатора на 16 МГц. Внешний кварц нужен для более точного измерения временных промежутков что важно при подсчёте ёмкости аккумуляторов.

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

Прошивку пишу в VSCode на базе библиотек Arduino с использованием PlatformIO.

Изолированный USB UART преобразователь

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

krcvkmw9d2jl7wm6zwjo71cfwwu.jpeg

Печатные платы заказывал в Китае и использовал SMD компоненты. Схема типовая из даташита, но в отличии от других подобных модулей, есть поддержка линий DTR и CTS. В этом проекте CTS не используется, а DTR нужен для автоматического сброса микроконтроллера при прошивке.

q6h2gxxw-i9n2jieobf4ws_xxsi.png

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

Измерение тока и напряжения

olkx2ktfl_gwc9avanqwjy3ueh0.png

Для измерения напряжения и тока используется микросхема INA226. Для защиты её входа от обратной полярности и перенапряжения добавлена простая схема на диоде шоттки и стабилитроне (подробности есть тут). Шунт для измерения тока установлен на 20 А и его сопротивление 0,00375 Ом.

Для коммутации нагрузки использовано электромагнитное реле на 20 А. В первоначальном варианте был MOSFET транзистор IRF3205 с драйвером TPM27524, но возникли сложности в режиме четырёхпроводного измерения напряжения. В итоге поставил теплоотвод на стабилизатор и смирился с лишними 200 мА тока на питание силового реле.

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

Звуковая индикация

В тестере ёмкости ZB2L3 мне очень не хватало звуковой индикации окончания разряда. Добавил простую «пищалку» для привлечения внимания

cmqzt2j9u-y881eyq6uetc_ukou.png

Пищалка потребляет «заметный» ток и поэтому подключена через транзистор.

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

urc2uwwgspah4chbpixnqyrotok.png

Для питания схемы нужен источник постоянного напряжения от 7,5 В до 9 В и током 500 мА. От неправильной полярности защищает диод по входу, напряжение 5В берётся с выхода линейного стабилизатора L7805. Для надёжной работы стабилизатора напряжение на его входе должно быть примерно на 2 В выше напряжения стабилизации, плюс 0,7 В которые падают на защитном диоде.

Схема потребляет до 350 мА (если включены оба реле) и при питании от 9 В на стабилизаторе рассеивается около 1,2 Вт. Поскольку корпус TO-220 не может рассеять больше 1 Вт, то на линейном стабилизаторе установлен небольшой радиатор.

Кнопки управления

7rvqcmlfn042rfchmh5zty5ktx8.png

Используется внутренняя подтяжка (INPUT_PULLUP) к питанию в микроконтроллере. Защита от дребезга контактов программная.

LCD экран

vvdsuoptkzqbanpic8gq8a3q3de.png

Использовал символьный экран 20×4 с интерфейсом I2C. На плате для него есть отдельная колодка чтобы было легко разбирать корпус.

Осталось дописать прошивку и собрать все части проекта в один репозиторий.

© Habrahabr.ru