Заміри великого струму з INA226
Для своєї збірки акумулятора (4S LiFePO4 100Ah) я вирішив додати систему “розумного” моніторингу. Звісно, можна було б просто купити готову smart BMS із Bluetooth/Wifi, але це не мій шлях. Я хочу розібратися в усьому процесі та створити щось своє.
Перш за все, мені потрібно відстежувати струм заряду та розряду. На основі цих даних згодом можна буде розробити алгоритм для підрахунку відсотка залишку енергії. Я не буду стверджувати, що це буде якийсь прецизійний прилад — це зовсім не так. Це скоріше «показометр», за допомогою якого можна буде орієнтуватися: чи все гаразд, чи споживання стало аномально великим і щось пішло не так.
Для вимірювання струму скористаємося модулем INA226. Зазвичай на таких платах встановлено шунт опором 0.1 Ом (100 мОм), що дозволяє вимірювати струм лише в діапазоні ±0.8 А. Для контролю силової батареї цього замало, тому я покажу, як модифікувати модуль під власні потреби.
Як вимірює струм INA226? Взагалі-то — ніяк. Насправді цей чіп вимірює падіння напруги між виводами IN+ та IN- у діапазоні від -81.92 мВ до +81.92 мВ.
Точність цього вимірювання становить 2.5 мкВ. Вже маючи значення напруги та знаючи точний опір шунта, ми можемо за законом Ома розрахувати силу струму. Отже, це непряме вимірювання. Щоб розширити діапазон вимірюваного струму, достатньо просто замінити штатний шунт на інший, з меншим опором.
Шунт — це резистор з дуже малим і точним опором. Найчастіше зустрічаються такі варіанти:
Керамічні (цементні) резистори — найдешевший варіант, але мають низьку точність. Головний недолік: при нагріванні їхній опір суттєво змінюється, що призводить до великих похибок у вимірюваннях.
Скоби з константану — виготовляються зі спеціального сплаву (мідь, нікель, марганець), який є термостабільним. Проте вони часто потребують індивідуального калібрування, оскільки реальний опір може відрізнятися від заявленого через довжину ніжок або спосіб впаювання.
SMD-шунти — компактні прецизійні резистори для монтажу безпосередньо на друковану плату. Найпоширеніші силові типорозміри: 2512, 3920 та 5930. Вони зручні для автоматизованого монтажу та займають мінімум місця.
Виносні шунти — масивні рішення (наприклад, серія FL-2, габарити близько 116 x 23 x 26 мм) для великих струмів (та ж FL-2 від 10 до 600 ампер). Зазвичай розраховані на падіння напруги 75 мВ при максимальному струмі. Такі шунти мають дві масивні клеми для підключення силових кабелів та дві меньші клеми для зняття вимірювальної напруги. Це дозволяє виключити опір контактів і самих кабелів з результатів вимірювання, що критично важливо при роботі з мілівольтами.
У моєму випадку має підійде шунт на 1 мОм, але наразі його немає під рукою. Зрештою, як показала практика, краще поступово експериментувати з меншими струмами та виправляти виявлені помилки, аніж одразу намагатися зібрати потужний вимірювальний пристрій.
Поки замовлення в дорозі, я скористаюся константановою скобою на 5 мОм. Це дозволить вимірювати струм у діапазоні до ~16 А, чого цілком достатньо для перших тестів та налагодження софту.
Шунт розмістимо на додатковій платі, яка буде під’єднана до модуля INA226.
Зачищаю плату дремелем та свердлю отвори під гвинти — це будуть наші клеми для підключення силових дротів. Також роблю виводи від шунта безпосередньо до контактів модуля.
Струм 16 Ампер — це вже чимале навантаження, тому я не буду покладатися лише на тонкий шар фольги текстоліту. Для зниження опору та кращого розподілу тепла додам мідні проставки (8 мм х 0.15 мм).
Тепер усе це ретельно залуджуємо.
Ідеально рівно посадити проставки в мене не вийшло — звичайним паяльником це зробити важко. Як тільки припій розігрівається, то одна, то інша сторона постійно намагається зміститися.
На завершення демонтуємо комплектний SMD-шунт із модуля та надійно пропаюємо перехідні отвори між модулем і платою нового шунта. Також ставимо краплю-перемичку між IN- та VBUS. Це необхідно для того, щоб модуль міг вимірювати напругу безпосередньо на одній зі сторін шунта.
Перевірка та калібрування
Заміряємо опір після всіх маніпуляцій:
Міллілометр показав 4.29 мОм. Час під’єднати мікроконтролер, трохи «пошаманити» з кодом та подивитися, що ми отримаємо на виході. Для тестів я взяв популярний модуль на базі ESP32 з дисплеєм — його ще називають Cheap Yellow Display (CYD).
Нуль збігається ідеально. Я чув, що на деяких екземплярах INA226 завжди є невелике зміщення (offset), але мені пощастило. Для калібрування я зробив по кілька замірів для кожного значення струму в діапазоні від 1 А до 10 А. Після перерахунку та усереднення даних отримане розрахункове значення опору шунта склало 4.392 мОм. Це трохи відрізняється від початкового заміру мультиметром, і саме це уточнене значення я використав у коді для ESP32.
Порівняємо результат із показниками UNI-T UT61:
Відхилення є, але воно незначне — приблизно 30–40 мА. Для “показометра” це чудовий результат.
Помилки та проблеми
Нагрів. Вже при струмі 10А тепловізор чітко фіксує підвищення температури. При 17А нагрів можна відчути навіть рукою - шунт розігрівся до 45 градусів.
Можна подумати: «Та грець із ним, лише 45 градусів, на що це впливає?». А насправді - впливає. Я помітив, що після такого навантаження показник не повертається в нуль одразу після вимкнення живлення. Протягом деякого часу на шунті залишаються десяті долі мілівольта, які перетворюються на десятки фантомних міліампер на екрані.
Це відбувається внаслідок ефекту термо-ЕРС (або ефект Зеєбека). Оскільки місця пайки шунта мають різну температуру або складаються з різних металів, вони починають працювати як термопара, генеруючи напругу. За кілька хвилин, коли вузол охолоджується, цей ефект зникає.
Ця проблема з фантомними струмами через нагрів - мабуть, найцікавіший виклик у всьому проєкті. Коли ти бачиш 50 мА там, де має бути нуль, це дратує, особливо якщо ти хочеш рахувати рівень заряду АКБ.
Поки що бачу декілька варіантів вирішення:
на рівні софта фільтрувати такі випадки
можливо додати термодатчик, і з його допомогою робити корекцію
поставити охолодження. Радіатор аьо навіть куллер, що вмикаєтсья при великих струмах.
спробувати шунт з іншого матеріалу. Google та AI рекомендують спробувати манганін. В нього набагато ніжчий рівень утворення термо ЕДС.











Коментарі
Дописати коментар