Вимірюємо ємність літій-іонних акумуляторів за допомогою arduino - lazy electronics

Нещодавно я купив на Аліекспрессе купку літієвих акумуляторів для своїх майбутніх проектів, з ємністю 1200 мА * год і 6000 мА * ч. Але вірити написаному китайцями - справа невдячна, і я вирішив зробити досить просту схему, яка дозволить мені виміряти реальну ємність цих акумуляторів.

Крім того, у поганих джерел живлення може виявитися завищеними такий показник, як внутрішній опір. В такому випадку, при підключенні навантаження напруга джерела живлення значно знижується. Так що, буду вимірювати і його.

Що являють собою ці міліампер-годинник. зазначені на акумуляторі?

Грубо кажучи, ємність в 6000 міліампер-годин означає, що акумулятор може віддавати струм в 1 ампер протягом 6 годин, поки не розрядиться до допустимого нижньої межі напруги. Як виміряти ємність акумулятора. Потрібно підключити акумулятор до навантаження і через регулярні проміжки часу вимірювати силу струму в ланцюзі. Силу струму множимо на тривалість цього проміжку часу, і всі ці твори складаємо.

Тепер питання - як виміряти силу струму в ланцюзі? Ну, тут просто. Згідно із законом Ома (I = U / R), якщо ми знаємо опір навантаження, і падіння напруги на цьому навантаженні - то розділивши падіння напруги на опір - отримаємо силу струму.

Вимірюємо ємність літій-іонних акумуляторів за допомогою arduino - lazy electronics
Принципова схема вимірювання ємності і внутрішнього опору акумулятора

Як виміряти це падіння напруги? За допомогою Arduino. у якого є така чудова функція, як АЦП - аналого-цифровий перетворювач. Він порівнює напруга на вході АЦП з напругою живлення (5В), і видає результат від 0 до 1024. Беремо отримане значення, множимо на 5 Вольт, ділимо на 1024 - і отримуємо напругу. А так як нам потрібна різниця напруги між двома висновками навантаження - то будемо використовувати два входи АЦП Arduino.

Тепер - як виміряти внутрішній опір. Для цього потрібно спочатку виміряти напругу на ненавантаженому акумуляторі, потім підключити на грузку, виміряти напругу при навантаженні. Різниця цих напруг - це ту напругу, яка втрачається на внутрішньому опорі. Якщо цю різницю розділити на силу струму (а її ми вже визначили, вона однакова на все х ділянках ланцюга при послідовному підключенні) - то отримаємо значення внутрішнього опору.

Трохи про навантаження для акумулятора. Я використовував 6 Ом. У подібних схемах частіше використовуються резистори c меншим опором - зазвичай 2-3 Ом. З одного боку, з таким резистором буде більше сила струму - і, відповідно, для розряду акумулятора потрібно буде менше часу. Але я помітив, що в цьому випадку вимірюється ємність набагато менше, ніж при меншій силі струму. Зате через кілька хвилин напруга акумулятора знову дещо підвищується - тобто, при високих струмах розряду хімічні компоненти просто не встигають повністю вступити в реакцію. Тому я вирішив проводити розряд з малою силою струму, і робити між циклами розряду (по 1 сек.) Невеликі паузи (по 0.5 сек.), Щоб електроди могли частково відновитися.

Для того, щоб вмикати-вимикати струм в ланцюзі, будемо використовувати польовий транзистор. на базу якого будемо подавати керуючий сигнал від 7 цифрового виводу Arduino.

Висновок інформації найпростіше зробити через LCD екран від Nokia 5110.

Список деталей:

- Arduino. Можна взяти будь-який, бажано з 5 вольт на висновках. Тому як використовуваний в якості ключа польовика - IRFZ44N - при напрузі нижче 4 вольт майже не відкривається.

- резистори для навантаження. Я використовував 6 штук 1-омних. Але можна взяти один резистор від 2 до 10 Ом, розрахований на велику потужність. 5 ват мінімум, адже на цьому резисторі буде виділятися у вигляді тепла вся енергія, запасена в акумуляторі.

- резистори 10 кОм - 2 шт.

- резистор 100 кОм - 1 шт.

- резистор 100 Ом - 1 шт.

- Польовий транзистор. Я взяв один з найпоширеніших і недорогих - IRFZ 44 N.

- Екранчик від Nokia 5110

- і, власне, акумулятори для тестування.

Схема і програма:

Вимірюємо ємність літій-іонних акумуляторів за допомогою arduino - lazy electronics
Схема тестера ємності акумуляторів на Arduino

Результат вимірювання: акумулятор UltraFire YF 14500 із заявленою ємністю 1 200 мА * ч видав всього 378 мА * ч. А його більший побратим SJ 18650 замість належних 6000 зміг видавити з себе 1119 мА * ч.

Справедливості заради варто відзначити один нюанс. Нижня межа напруги, після якого розряд акумулятора припиняється, я виставив в 3.5 В. Чесно кажучи, не став ризикувати - деякі пишуть, що дешеві акумулятори небезпечно розряджати нижче цього напруги. Хоча інші розряджають і до 3 В. Але це в планах. Також планую виміряти ємність наявних куплених давно на ринку нікелевих акумуляторів.


Завантажити програму для Arduino і схему можна тут.

Ну, зарядний пристрій для акумуляторів у мене і так є. А якби й не було - то у китайців модулі контролю заряду для літій-іонних акумуляторів менше долара стоять - навіщо город городити?