Найти в Дзене
Мастерю понемногу.

Зарядник Ардуино. Новая прошивка - новые возможности

Всем привет и хорошего настроения. Давно не выкладывал информации о новых версиях скетча для моего зарядного устройства. Трудился над прошивкой. В этой статье постараюсь описать все новшества и изменения за прошедшее время. Ссылка на Яндекс диск со всеми файлами проекта. С момента предыдущего поста (прошивка версии 0.9.5.6) вышло 2 версии 0.9.6 и последняя 0.9.7. Проведена большая работа, добавлено много нового. Сперва крупные нововведения. ПОСЛЕ ПРОШИВКИ СРАЗУ СДЕЛАТЬ СБРОС НАСТРОЕК! Так как добавлена новая структура для сохранения параметров в памяти. При включении, когда отобразится версия прошивки, удержать Стоп или энкодер, выбрать ОК, нажать Пуск или энкодер. Либо сделать сброс в настройках. Во первых добавил независимые профили 0 - 9 всего 10 шт. В профилях хранятся все настройки и выставленные параметры заряда/разряда. Во вторых добавил возможность выбора различных типов аккумуляторов: "Pb Ca/Ca" свинцово-кислотные кальций/кальций "Pb Ca+" свинцово-кислотные кальций/су

Всем привет и хорошего настроения. Давно не выкладывал информации о новых версиях скетча для моего зарядного устройства. Трудился над прошивкой. В этой статье постараюсь описать все новшества и изменения за прошедшее время.

Ссылка на Яндекс диск со всеми файлами проекта.

С момента предыдущего поста (прошивка версии 0.9.5.6) вышло 2 версии 0.9.6 и последняя 0.9.7. Проведена большая работа, добавлено много нового. Сперва крупные нововведения.

ПОСЛЕ ПРОШИВКИ СРАЗУ СДЕЛАТЬ СБРОС НАСТРОЕК! Так как добавлена новая структура для сохранения параметров в памяти. При включении, когда отобразится версия прошивки, удержать Стоп или энкодер, выбрать ОК, нажать Пуск или энкодер. Либо сделать сброс в настройках.

Во первых добавил независимые профили 0 - 9 всего 10 шт. В профилях хранятся все настройки и выставленные параметры заряда/разряда.

Во вторых добавил возможность выбора различных типов аккумуляторов: "Pb Ca/Ca" свинцово-кислотные кальций/кальций

"Pb Ca+" свинцово-кислотные кальций/сурьмянистый

"Pb Sur" свинцово-кислотные сурьмянистый

"Pb AGM" свинцово-кислотные AGM

"Pb Gel" свинцово-кислотные GEL гелевый

"Li-ion" литий-ионные

"LiFePo4" литий-железо-фосфатные

"LiTit" литий-титанатные

"NiCd/Mh" никель-кадмиевые/металлгидридные

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

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

При изменении типа аккумулятора, емкости, напряжения автоматически рассчитываются оптимальные значения заряда, дозаряда, разряда и время заряда.

В в третьих добавил пункт Калибровка. Здесь можно провести калибровку чтения напряжения от блока питания. Изменить коэффициент коррекции падения напряжения на проводах и клеммах от зарядника к аккумулятору, чтобы точно измерять напряжение на аккумуляторе при больших токах заряда/разряда. Изменить коэффициент коррекции шунта для точного измерения тока.

Виктор Леонтьев in Зарядное устройство Ардуино ViktoRi

Видео по калибровке в Телеграмм.

Коэффициент коррекции падения напряжения на проводах - это отношение напряжения на аккумуляторе к напряжению на заряднике (к примеру: 12,3 / 12,6 = 0,0813) в зависимости от тока ( 12,3 + Ток * 0,0831 = 12,6).

Коэффициент коррекции тока (шунта) - целочисленное значение для подстройки под реальное сопротивление шунта. Сохраняется в памяти Ардуино и при включении записывается в регистр INA226. Применяется для более точного измерения тока.

В четвертых - в скетче вынес в "дефайны" все возможные настройки, пины Ардуино можно изменять на свое усмотрение (главное с умом). Возможность включения/отключения различных модулей.

-5

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

-6

В "дефайнах" можно выбирать режим работы кулера - плавная регулировка (ШИМ) и режим включено-отключено. Устанавливать все параметры по температуре и току на свое усмотрение.

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

Для Атмега 328 рекомендую использовать ядро от Алекса Гайвера https://alexgyver.ru/lessons/gyvercore-doc/ Прошивка получается на 2-3кБ меньше.

Вместо стандартной, громоздкой библиотеки для I2C Wire рекомендую использовать microWire - https://github.com/GyverLibs/microWire от Алекса Гайвера. Лёгкая библиотека со стандартным набором инструментов для работы с аппаратным I2C. Прошивка выходит на 1,5кБ легче. Совместимость AVR ATmega168/328p (nano, uno, mini), ATmega32U4 (leonardo, micro), ATmega2560 (mega). Плохо то что она не работает с LGT8F328P. Скопируй в свои библиотеки из архива либо установи через менеджер библиотек.

Добавил функцию PowerLight(volt_in, volt) - проверяет напряжение от блока питания и если оно больше чем на аккумуляторе то включает пин 10(по умолчанию), для светодиода.

Добавил функцию для управления защитным транзистором (по умолчанию через пин А2). Срабатывает только если сгорел силовой транзистор (пока что).

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

Исправление в функции разряда - была ошибка в определении завершении разряда.

Исправление ошибки вычисления коэффициента изменения ШИМ заряда/разряда.

Дозаряд работает только для свинцово-кислотных аккумуляторов.

Чуть изменил интерфейс изменения параметров.

Изменил функцию сохранения настроек в памяти.

При включении производятся проверки некоторых блоков зарядника:

  • проверяется наличие INA226, если сигнала от нее нет то программа выдаст ошибку и остановится;
  • проверяется наличие датчика температуры, если он есть то выводится значение температуры, если нет то выводится ошибка и работа продолжается без него;
  • проверяется кулер - он включается на 3 секунды и отключается, при его наличии;
  • проверяется динамик (пищалка) - выдается писк-приветствие, при его наличии. Шим сигнал (50%) выводится на пин А1 (по умолчанию) с частотой около 1200Гц. Можно использовать пищалку от компьютера напрямую подключив к пину и GND;

Обновил схему зарядника и печатную плату до версии 1.5. Схема создана в KiCad 6, вместе с готовыми гербер файлами будет выложена на Яндекс диск.