Гражданская радиосвязь в Кургане
Главная | Проверка ёмкости литиевых аккумуляторов. - Форум | Регистрация | Вход
 
Вторник, 05.11.2024, 10:27
Приветствую Вас Гость | RSS
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Проверка ёмкости литиевых аккумуляторов.
RA9QATДата: Воскресенье, 06.12.2015, 21:36 | Сообщение # 1
Генерал-полковник
Группа: Проверенные
Сообщений: 1009
Статус: Offline
Последнее время в портативке Zastone ZT-2R стал быстро сдыхать аккумулятор. Неудобно, только начнёшь передавать дорожную обстановку, и бряк... облом. Дешёвый запасной, до этого год лежавший без дела, тоже стал вести себя не очень... Задумался над тем, как проверить ёмкость 3.7 вольтовых аккумуляторов без использования дорогого (из-за нынешнего курса рубля) зарядника iMax. Нашёл статью о тестере аккумуляторов на Arduino https://www.electronicsblog.net/very-si....monitor

Раньше, пока не купил зарядник  LaCrosse RS700, пальчиковые аккумуляторы я тестировал нагружая лампочкой. Допустим, ток ее потребления 300 мА, прогорела лампочка 2 часа, значит ёмкость аккумулятора 600 мА в час. Нагрузку в виде лампочки я использовал потому, что в отличие от резистора, у неё есть некоторый эффект стабилизации тока, т.к. её сопротивление зависит от нагрева нити. При нагрузке аккумулятора резистором ток в цепи будет уменьшаться пропорционально уменьшению напряжения, таким образом, точно его ёмкость не измерить. Правильный измеритель ёмкости каждую секунду измеряет напряжение на аккумуляторе нагруженном резистором с известным сопротивлением. Зная эти параметры, вычисляем ток в цепи. Общая ёмкость аккумулятора складывается из суммы значений силы тока, измеряемых каждую секунду, разделённых на 3600.

Программа автора у меня не заработала, в ней процедура измерения каждую секунду должна была вызываться по таймеру, я сделал её вызов в цикле с задержкой в 1 секунду.
Добавил звуковой сигнал при снижении напряжения ниже 3 вольт, чтобы во-время отключить аккумулятор, на случай, если у него нет защиты от разряда. Отображение времени разряда сделал не в секундах, а в формате ч:мм:сс, время считается при наличии напряжения на клеммах.

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



Подключение к Arduino: плюс аккумулятора ко входу Analog In A0, минус к ближайшему GND, параллельно аккумулятору резистор сопротивлением около 8 Ом составленный из двух двухваттных МЛТ-2. У меня не было двух резистров близкого номинала, поэтому, через меньший протекает больший ток и он нагревается до 90 градусов, но не чернеет,  что допустимо. Сопротивление Вашего резистора нужно измерить и внести в константу resistor в третьей строке программы. При измерении сначала замкните щупы между собой, запомните сопротивление проводов мультиметра, около 0.5 Ом, потом вычтите его из значения сопротивления резистора, которое покажет прибор. Выключатель в разрыве провода особо не нужен. Пьезик подключен к выводу Digital 8 и ближайшему GND.



Что имеем в итоге: ёмкость родного аккумулятора рации оказалась 40 мА/ч smile запасного 500 мА/ч вместо 1000. Измерил ёмкость аккумуляторов из смартфона, самый первый, который прослужил три года с 1500 деградировал до 980, купленный недавно с ebay вместо 1650 оказался 1370. Ну, а китайский аккумулятор бренда Mi-Power, после года эксплуатации в Nokia 3310 вместо 800 показал 720, что в общем-то не плохо, т.к родные нокиевские были вроде на 650, просто, видимо отвык, что Нокия прожорливая, съедает его за два-три дня.

Мой код:
#define LED 13
#define SoundPin 8
#define resistor 8
float capacity=0, value, voltage, current;
boolean x=true;
word time=0;
byte hh, mm, ss;
void measure (void) {
  value= analogRead(0);
  voltage=value/1024*5.0;
  current = voltage/resistor;
  capacity=capacity+current/3600;
  // Count time when connected only
  if (voltage > 0.5) {time++;} 
 
  hh = byte(time/3600);
  mm = byte((time-hh*3600)/60);
  ss = byte(time-hh*3600-mm*60);
 
  Serial.print("Voltage = ");
  Serial.print(voltage);
  Serial.print("V Current = ");
  Serial.print(current);
  Serial.print("A Capacity = ");
  Serial.print(capacity);
  Serial.print("Ah ");
  Serial.print("Discharging time = ");
  Serial.print(hh);  Serial.print(":");
  if (mm < 10) {Serial.print("0");} Serial.print(mm);  Serial.print(":");
  if (ss < 10) {Serial.print("0");} Serial.print(ss);
  Serial.print("\n");
  // Sound warning when you should disconnect battery
 
  if (voltage <= 3) {tone(SoundPin, 700, 50);}
 
}
void setup() {
  pinMode(LED, OUTPUT);
  Serial.begin(115200);
  Serial.print("Connected!");
  Serial.print("\n");
 
};
void loop () {
  if (x) 
    {digitalWrite(LED, HIGH);}
  else
    {digitalWrite(LED, LOW);}
 
  measure();
  delay(1000);
  x=!x;
 
};


Позывной на CB, LPD: Планер 576
 
  • Страница 1 из 1
  • 1
Поиск:


Copyright MyCorp © 2024Сайт управляется системой uCoz