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

 
» » » Устройство проверки емкости литий-ионного аккумулятора на основе Arduino

Устройство проверки емкости литий-ионного аккумулятора на основе Arduino

Автор: Mike(admin) от 21-09-2020, 07:55

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

 

Устройство проверки емкости литий-ионного аккумулятора на основе Arduino

 

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

 

На рынке есть много поставщиков аккумуляторов, которые продают дешевые копии литий-ионных аккумуляторов со странными характеристиками по очень низкой цене, что слишком хорошо, чтобы быть правдой. Когда вы покупаете эти элементы, они либо вообще не работают, либо, если они работают, емкость заряда или ток настолько мал, что они вообще не могут работать с требовательным приложением. Итак, как проверить литиевую батарею? Один из методов – измерить напряжение холостого хода без нагрузки, но это совсем не надежно.

 

Устройство проверки емкости литий-ионного аккумулятора на основе Arduino

 

В связи с этим мы создадим тестер емкости аккумулятора литий-ионного аккумулятора 18650, который будет разряжать полностью заряженный аккумулятор 18650 через резистор, одновременно измеряя ток, протекающий через резистор, для расчета его емкости. Если вы не получите заявленную емкость аккумулятора, когда напряжение на элементе находится в указанных пределах, значит, этот элемент неисправен, и вам не следует его использовать, поскольку состояние заряда элемента будет истощаться с очень высокой скоростью под нагрузкой, создавая токовую петлю, что может привести к нагреву и, возможно, возгоранию. Компоненты, которые нам понадобятся для нашего устройства проверки емкости аккумулятора:

 

Устройство проверки емкости литий-ионного аккумулятора на основе Arduino

 

Полная принципиальная схема тестера емкости аккумуляторов 18650 показана далее.

 

Устройство проверки емкости литий-ионного аккумулятора на основе Arduino

 

Эта схема дополнительно разделена на две части: первая – это схема низкого напряжения 5 В для Arduino Nano и буквенно-цифрового ЖК-экрана 16×2, а также их соединения для отображения результатов измерений тока и напряжения в реальном времени. Схема питается от источника питания 12 В или вы можете использовать аккумулятор 12 В, а максимальный ток будет около 60-70 мА для питания Arduino и ЖК-экрана.

 

Устройство проверки емкости литий-ионного аккумулятора на основе Arduino

 

Чтобы понизить напряжение до 5 В, мы будем использовать линейный стабилизатор напряжения, который может принимать на входе до 35 В для обеспечения регулируемого питания 5 В, а избыточное напряжение рассеивается в виде тепла, следовательно, если ваш вход превышает 12 В, тогда подумайте о добавлении радиатора, чтобы он не повредился. ЖК-дисплей питается от источника питания 5 В от 7805, подключен к Arduino и работает в 4-битном режиме. Мы также добавили потенциометр 10 кОм для управления контрастностью ЖК-дисплея.

 

Вторая часть схемы – это цепь нагрузки с постоянным током на основе ШИМ, которая делает ток нагрузки, протекающий через резистор, управляемым и постоянным, чтобы не возникала ошибка, возникающая из-за изменения тока со временем, когда напряжение аккумуляторного элемента падает. Она состоит из ОУ LM741 и полевого транзистора IRF540N, который управляет током, протекающим через полевик, путем включения и выключения полевика в соответствии с установленным нами уровнем напряжения.

 

Устройство проверки емкости литий-ионного аккумулятора на основе Arduino

 

Операционный усилитель работает в режиме компаратора, значит, в этом режиме выходной сигнал операционного усилителя будет высоким, когда напряжение на неинвертирующем выводе операционного усилителя выше, чем на инвертирующем выводе. Точно так же, если напряжение на инвертирующем выводе операционного усилителя выше, чем на неинвертирующем выводе, выход операционного усилителя будет понижен. В данной схеме уровень напряжения неинвертирующего вывода контролируется ШИМ-выводом D9 Arduino NANO, который переключается с частотой 500 Гц, которая затем проходит через RC-фильтр нижних частот со значением сопротивления 33 кОм и конденсатор емкостью 0,47 мкФ, чтобы обеспечить почти постоянный сигнал постоянного тока на неинвертирующем выводе. Инвертирующий вывод подключен к нагрузочному резистору, который считывает напряжение на резисторе и общем GND. Выходной контакт ОУ подключен к клемме затвора полевого МОП-транзистора, чтобы включить или выключить его. ОУ попытается уравнять напряжения на обоих своих выводах, переключая подключенный полевик, чтобы ток, протекающий через резистор, был пропорционален значению ШИМ, которое вы установили на выводе D9. В этом проекте максимальный ток, который мы ограничили для своей схемы, составляет 1,3 А, что является разумным, поскольку у нас есть элемент на 10 А в качестве максимального номинального тока.

 

Максимальное напряжение стандартного полностью заряженного литий-ионного элемента составляет от 4,1 В до 4,3 В, что меньше предела напряжения 5 В аналоговых входных контактов Arduino Nano, который имеет внутреннее сопротивление более 10 кОм, так что мы можем напрямую подключить к любому из аналоговых входных контактов, не беспокоясь о протекающем через них токе. Итак, в этом проекте нам необходимо измерить напряжение элемента, чтобы мы могли определить, находится ли элемент в правильном рабочем диапазоне напряжения и полностью ли он разряжен.

 

Нам также необходимо измерить ток, протекающий через резистор, для этого мы не можем использовать токовый шунт, так как сложность схемы будет увеличиваться, а увеличение сопротивления на пути нагрузки уменьшит скорость разряда элемента. Использование шунтирующих резисторов меньшего размера потребует дополнительной схемы усилителя, чтобы считываемое с него напряжение считывалось на Arduino. Таким образом, мы непосредственно считываем напряжение на нагрузочном резисторе, а затем, используя закон Ома, делим полученное напряжение на значение нагрузочного резистора, чтобы получить ток, протекающий через него. Отрицательный вывод резистора подключен непосредственно к GND, поэтому мы можем с уверенностью предположить, что напряжение, которое мы читаем на резисторе, является падением напряжения на резисторе.

 

Устройство проверки емкости литий-ионного аккумулятора на основе Arduino

 

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

 


#include <LiquidCrystal.h>
const int rs = 3, en = 4, d4 = 5, d5 = 6, d6 = 7, d7 = 8;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
const float BAT_LOW = 3.0;
const float BAT_HIGH = 4.5;
const int MOSFET_Pin=9;
const int PWM_VALUE=50;
unsigned long previousMillis = 0;
unsigned long millisPassed = 0;
float Capacity=0;
float Resistor=2.2;
float mA;
void setup() {
Serial.begin(9600);
lcd.begin(16, 2);
lcd.setCursor(0, 0);
lcd.print("Battery Capacity");
lcd.setCursor(0,1);
lcd.print("Tester Circuit");
delay(3000);
lcd.clear();
}
void loop() {
analogWrite(MOSFET_Pin, PWM_VALUE);
int sensorValue_voltage_Cell = analogRead(A0);
float voltage = sensorValue_voltage_Cell * (5.12 / 1023.0)*1.2;
Serial.print("VOLTAGE: ");
Serial.println(voltage);
lcd.setCursor(0, 0);
lcd.print("Voltage: ");
lcd.print(voltage);
delay(100);
int sensorValue_Shunt_Resistor= analogRead(A1);
float voltage1= sensorValue_Shunt_Resistor *(5.00 / 1023.0);
float current= voltage1/Resistor;
Serial.print("Current: ");
Serial.println(current);
lcd.setCursor(0, 1);
lcd.print("Current: ");
lcd.print(current);
if ( voltage > BAT_HIGH)
{
digitalWrite(MOSFET_Pin, LOW);
Serial.println( "Warning High-V! ");
lcd.clear();
lcd.setCursor(0,0);
lcd.print("HIGH VOLTAGE!!");
delay(2000);
lcd.clear();
}
else if(voltage < BAT_LOW)
{
digitalWrite(MOSFET_Pin, LOW);
Serial.println( "Warning Low-V! ");
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Low Voltage!!!");
delay(2000);
lcd.clear();
lcd.setCursor(0,0);
lcd.print("CAPACITY:");
lcd.setCursor(0,1);
lcd.print(Capacity);
delay(10000);
}
else if(voltage > BAT_LOW && voltage < BAT_HIGH )
{
millisPassed = millis() - previousMillis;
mA = current * 1000.0 ;
Capacity = Capacity + (mA * (millisPassed / 3600000.0));
previousMillis = millis();
//Serial.print("DATA,TIME,"); Serial.print(voltage); Serial.print(","); Serial.println(Capacity);
delay(1000);
lcd.clear();
}
}

 

Теперь, когда мы разработали и протестировали различные участки нашей схемы на макетной плате и убедившись, что все они работают должным образом, мы используем перфорированную плату для пайки всех компонентов вместе, поскольку это гораздо более профессиональный и надежный метод проверки схемы. . При желании вы можете спроектировать свою собственную печатную плату в AutoCAD Eagle, EasyEDA или Proteus ARES или в любом другом программном обеспечении, которое вам нравится.

 

Устройство проверки емкости литий-ионного аккумулятора на основе Arduino

 

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

 

Устройство проверки емкости литий-ионного аккумулятора на основе Arduino

 

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



© digitrode.ru


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




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

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

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