цифровая электроника
вычислительная техника
встраиваемые системы

 
» » » Измеритель емкости литиевых аккумуляторов на основе Arduino своими руками


Измеритель емкости литиевых аккумуляторов на основе Arduino своими руками

Автор: Mike(admin) от 13-01-2021, 07:35

Сегодня мы покажем вам, как сделать тестер емкости литий-ионных аккумуляторов с помощью Arduino. Тестер емкости аккумулятора разряжает полностью заряженный литий-ионный элемент через резистор, одновременно измеряя ток, протекающий через резистор, для расчета его емкости.


Измеритель емкости литиевых аккумуляторов на основе Arduino своими руками

Это устройство очень простое и состоит всего из нескольких компонентов: микроконтроллер Arduino Nano, ЖК дисплей, маленькое реле на 5В, резистор 5 Вт, два небольших резистора и кнопка.


Когда мы нажимаем кнопку пуска, тестовая батарея подключается параллельно резистору 4 Ом и разряжается через него. Напряжение считывается микроконтроллером каждые полсекунды, поэтому за один час получается 7200 измерений. Используя закон Ома, можно узнать ток, подаваемый на нагрузку. Затем просто умножаем 1 из 7200 часов на текущее значение и складываем полученные числа до тех пор, пока батарея не разрядится ниже 3 В, а затем на дисплее отобразится результат измерения в мА в час.


Для начала нам нужно подключить полностью заряженный аккумулятор. На дисплее отображается текущее напряжение аккумулятора. Как только мы нажимаем кнопку пуска, начинается тестирование батареи. Следующая информация будет отображаться на экране: количество выполненных измерений, напряжение батареи, а также мощность по времени в милиампер в час. Тест заканчивается, когда напряжение достигает 3 вольт и аккумулятор считается разряженным. Это может занять некоторое время в зависимости от емкости аккумулятора.


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


Измеритель емкости литиевых аккумуляторов на основе Arduino своими руками

Код программы для этого тестера батарей следующий:



#include <LiquidCrystal.h>

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
const int buttonPin = 9; 
int sensorPin = A0; 
int sensorValue = 0;  
const int relay= 10;
int buttonState = 0;
float mah = 0.0;
long timestart  ;

void setup() {
  lcd.begin(16, 2);
  lcd.print("Batt life tester");
  pinMode(relay, OUTPUT);
pinMode(buttonPin, INPUT);
}

void loop() {
  digitalWrite(relay, 0 );
 
  while (buttonState == LOW ) {
  sensorValue = analogRead(sensorPin);
  
  buttonState = digitalRead(buttonPin);

  lcd.setCursor(0, 1);
  lcd.print((sensorValue*4.98)/1023);
  lcd.print(" Volts");
  delay(500);
  } 
  digitalWrite(relay, 1 );
  lcd.setCursor(0, 0);
  lcd.print("Testing              ");
  lcd.setCursor(0, 1);
  lcd.print("                         ");
  mah = 0.0;
  timestart = millis( );
  while ( ((sensorValue*4.98)/1023) > 3.00 ) {
     lcd.setCursor(0, 1);    
     lcd.print((sensorValue*4.98)/1023);
     lcd.print(" V ");
     sensorValue = analogRead(sensorPin);
     mah = mah + (((sensorValue*4.98)/1023)/4 )/7.2;
     lcd.print(mah);
     lcd.print(" mAh ");
     delay ( 500 ) ;
     lcd.setCursor(8,0);
     lcd.print((millis( )- timestart)/1000); 
  } 
    digitalWrite(relay, 0 );
 
   lcd.setCursor(0, 0);
   lcd.print(mah);
   lcd.print(" mAH ");
   lcd.print((millis( )- timestart)/1000);
   lcd.print(" S ");
   buttonState = digitalRead(buttonPin);
  
}



© digitrode.ru


Теги: Arduino, аккумулятор




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

Комментарии:

Оставить комментарий