Thiết kế mạch sạc pin Li-ion | Vuidulich.vn

Or you want a quick look: Linh kiện để thiết kế mạch sạc pin Li-ion

Thiết kế mạch sạc pin Li-ion : Trong phần hướng dẫn trước, chúng tôi đã thảo luận những kiến ​​thức cơ bản về pin Lithium-ion . Ngoài ra, chúng ta đã thảo luận về một cách quan trọng là phải xử lý những viên pin này một cách cẩn thận. như đã đề cập trong hướng dẫn trước, pin Lithium-ion cần được sạc bằng phương pháp CC-CV, trong hướng dẫn này, bộ sạc pin Li-ion cho pin Li-ion một cell có điện áp danh định 3,7 V sẽ được thiết kế. 

Hình 1:  Mạch sạc pin

Về cơ bản có hai cấu trúc cơ bản để thiết kế mạch sạc :

1.  Bộ sạc sử dụng : Bộ điều chỉnh tuyến tính

2.  Bộ sạc sử dụng : Bộ điều chỉnh chuyển mạch

Có các mô-đun hoặc bộ sạc có sẵn trên thị trường có thể được sử dụng để sạc pin Li-ion. Trong hướng dẫn này, một bộ sạc được chế tạo bằng các thành phần điện tử cơ bản bao gồm Bộ điều chỉnh tuyến tính sẽ được thiết kế từ đầu. Mạch sạc sẽ được tùy chỉnh theo thông số kỹ thuật của pin và yêu cầu sạc. 

Pin Li-ion 3,7 V thông thường có điện áp định mức tối đa là 4,2 V trên mỗi cell. Điều đó có nghĩa là, khi điện áp của pin đạt đến 4,2 V, nó sẽ được sạc đầy và không thể lưu trữ điện tích vượt quá mức đó. Ở trạng thái đẳng áp, bộ sạc đặt với tốc độ không đổi tại các đầu cực của pin. Cố gắng sạc pin bằng cách đặt điện áp cao hơn mức này có thể sạc pin nhanh nhưng làm giảm tuổi thọ của pin.

Ngoài điện áp danh định lớn nhất hoặc điện áp cực đại của đầu nối, một điểm quan trọng khác cần lưu ý khi thiết kế mạch sạc là tốc độ C (C-rate là thước đo tốc độ pin được xả so với dung lượng tối đa của nó. Tốc độ 1C có nghĩa là dòng phóng điện sẽ xả toàn bộ pin trong 1 giờ. Đối với pin có công suất 100 Amp-giờ, điều này tương đương với dòng phóng điện 100 Amps.). Nếu pin Li-ion 3000 mAh được sạc với dòng điện tối đa 1500 mA thì nó sẽ được gọi là tốc độ sạc 0,5 C. Vì lý do an toàn, pin Li-ion phải được sạc với tốc độ sạc từ 0,5 C đến 0,8 C.

Chu kỳ sạc của Pin Li-ion về cơ bản có hai giai đoạn: 

1.  Sạc dòng điện không đổi (viết tắt là chế độ CC)

2.  Sạc điện áp không đổi (viết tắt là chế độ CV)

Nhưng một số bộ sạc được thiết kế để bỏ qua hoặc thêm nhiều giai đoạn trong quá trình sạc. Trong hướng dẫn này, bộ sạc được thiết kế sẽ có cả hai giai đoạn cơ bản bao gồm chế độ Dòng điện không đổi và Điện áp không đổi. Hãy xem hướng dẫn trước – “Khái niệm cơ bản về cách sạc pin Li-ion” để tìm hiểu về các nguyên tắc cơ bản của pin Li-ion và phương pháp sạc của chúng. 

Mạch sạc được thiết kế trong hướng dẫn này được chia thành hai phần: 

a) Thiết kế nguồn điện áp không đổi và dòng điện không đổi

b) Thiết kế cơ chế chuyển mạch 

Trong hướng dẫn này, việc thiết kế Nguồn điện áp không đổi và Dòng điện không đổi sẽ được thảo luận và thiết kế cơ chế chuyển mạch sẽ được thảo luận trong hướng dẫn tiếp theo. Vì vậy, trong hướng dẫn này, đầu tiên, Nguồn dòng điện không đổi có tốc độ sạc là 0,5 C sẽ được thiết kế. Tiếp theo sẽ là thiết kế Nguồn điện áp không đổi là 4,2 V.

Linh kiện để thiết kế mạch sạc pin Li-ion

Các thành phần cần thiết khi thiết kế Nguồn dòng điện không đổi và Nguồn điện áp không đổi sử dụng bộ điều chỉnh tuyến tính được liệt kê trong bảng dưới đây: 

Hình 2: Danh sách các thành phần cần thiết cho Nguồn điện áp không đổi và dòng điện không đổi cho bộ sạc pin Li-ion một cell

Sơ đồ khối – 

Hình 3: Sơ đồ khối của nguồn điện áp không đổi và dòng điện không đổi cho bộ sạc pin Li-ion một cell

Kết nối mạch – 

Mạch sạc tuân theo thuật toán sạc sau: 

Hình 4 : Sơ đồ thuật toán sạc cho Bộ điều chỉnh tuyến tính dựa trên Bộ sạc pin Lithium-Ion 3.7 V

Để thiết kế nguồn dòng điện không đổi và nguồn điện áp không đổi cho mạch sạc, các bước sau được thực hiện: 

1) Kiểm tra các thông số kỹ thuật của pin 

READ  Tạo ký tự khoảng trống FF, kí tự dấu cách Free Fire | Vuidulich.vn

2) Xác định các thông số thiết kế của mạch sạc

3) Thiết kế nguồn dòng điện không đổi sử dụng IC LM317

4) Thiết kế nguồn điện áp không đổi sử dụng IC LM317

Kiểm tra thông số kỹ thuật của pin  

Trước khi thiết kế bộ sạc, điều quan trọng đầu tiên là phải xác minh các thông số kỹ thuật của pin. Trước hết, điều quan trọng là phải kiểm tra tốc độ sạc tối đa cho pin. Trong mạch này, pin Li-ion 18650 với điện áp danh định tối đa là 4,2 V / 1000 mAh đã được sử dụng để sạc. Nếu pin này được sạc với tốc độ sạc 0,5 C, điều đó có nghĩa là dòng điện tối đa do mạch bộ sạc cung cấp cho pin phải là 500 mA.

Đầu tiên, pin sẽ được kiểm tra ở chế độ CC và sẽ được sạc với dòng điện tối đa là 500 mA. Trong chế độ này, điện áp của pin phải nằm trong khoảng từ 3 V đến 4 V theo điện áp danh định lớn nhất của pin. Ở chế độ CC, dòng sạc phải là 500 mA nhưng điện áp sạc phải được xác định cho chế độ này. Điện áp này có thể được xác định bằng đường cong sạc của pin được hiển thị bên dưới. 

Hình 5:  Biểu đồ hiển thị Đường cong sạc của Pin Li-ion

Có thể quan sát thấy rằng ở chế độ CC, điện áp sạc của ắc quy tương đương với điện áp thực của ắc quy. Do đó, ở chế độ này, pin phải có điện áp rơi trên nó phải bằng điện áp thực của nó. Khi điện áp của pin đạt đến 4,0 V thì phải cung cấp cho nó một Điện áp không đổi bằng điện áp danh định lớn nhất của pin, tức là 4,2 V. Sau đó, dòng sạc pin sẽ bắt đầu giảm và khi nó đạt đến 0,1 C tức là 100 mA, thì pin phải được coi là đã sạc đầy. 

Xác định các thông số Thiết kế mạch sạc pin Li-ion

Thực tế, các thông số kỹ thuật về pin trên giấy có vẻ ít hữu ích hơn. Đối với dòng điện tối đa là 500 mA, có thể thiết kế nguồn dòng không đổi sử dụng IC tuyến tính. Bằng nguồn dòng điện không đổi này, khi cố gắng sạc pin Li-ion ở chế độ CC, người ta quan sát thấy rằng trong quá trình sạc, điện áp thực tế của pin là 3,5 V, khi sạc bằng dòng điện tối đa 500 mA, điện áp pin vượt quá 4 V. Theo tiêu chuẩn, pin có thể chịu được mà không có bất kỳ sự sai lệch nào về điện áp thực tế của nó lên đến tốc độ sạc 1C. Nhưng quan sát thấy rằng điện áp pin có độ lệch so với điện áp thực của nó ở chế độ CC. Mặc dù trên nhãn pin ghi 1000 mAh nhưng nó không được sạc ở 0,5 C. Do đó, sau khi kiểm tra mạch sạc ban đầu, có thể dễ dàng kết luận rằng pin không được sạc ở 500 mA. 

Vì vậy, để sạc pin này, dòng sạc phải được giảm xuống để có thể đạt được điện áp mong muốn tại các cực của pin. Vì vậy, pin được thử nghiệm ở các dòng điện khác nhau nhỏ hơn 500 mA. Trải qua một số thử nghiệm và thử nghiệm, người ta quan sát thấy rằng điện áp của pin gần gần với điện áp thực của nó ở dòng sạc 60 mA. Vì vậy mạch sạc phải được thiết kế để sạc pin ở 60 mA ở chế độ CC. 

Cuối cùng, thông số thiết kế của mạch sạc sau khi thử nghiệm ban đầu của pin với mạch sạc như sau: 

– Dòng sạc ở chế độ CC phải là 60 mA

– Điện áp sạc ở chế độ CV phải là 4,2 V

Để sạc pin ở chế độ CC và CV, cần thiết kế riêng biệt dòng điện không đổi và nguồn điện áp không đổi. Cả hai nguồn điện áp không đổi và dòng điện không đổi đều có thể được thiết kế bằng cách sử dụng IC điều chỉnh điện áp LM317. Cần sử dụng hai IC LM317 riêng biệt, một IC hoạt động như một nguồn Điện áp Không đổi và một IC khác hoạt động như một Nguồn Dòng điện Không đổi. 

Hoạt động của LM317 như Nguồn dòng điện không đổi và Nguồn điện áp không đổi có thể được hiểu từ các hướng dẫn sau:  

– LM317 làm nguồn dòng điện không đổi có thể điều chỉnh

– Nguồn cung cấp LM317

Thiết kế nguồn dòng điện không đổi

Mạch sau đây của LM317 hoạt động như một nguồn dòng điện không đổi –

Hình 6:  Sơ đồ mạch của nguồn dòng điện không đổi LM317 cho bộ sạc tuyến tính pin Lithium Ion

Để thiết kế mạch này, giá trị của điện trở R phải được xác định. Giá trị của nó có thể được tính bằng cách sử dụng phương trình trực tiếp cho mạch nguồn dòng điện không đổi. Ở đây điện trở R quyết định dòng điện ở đầu ra và giá trị của nó có thể được tính theo phương trình sau:

READ  Văn bản hợp nhất 03/VBHN-BGDĐT

I = 1,25 / R s   (Công thức được đưa ra trong biểu dữ liệu của LM317)

Dòng điện mong muốn, I = 60mA

s = 1,25 / 0,06

s = 20 ohm (ước chừng)

Giá trị của dòng điện không đổi mong muốn có thể được thay đổi bằng cách thay đổi giá trị của R s. Vì LM317 có thể cung cấp dòng điện tối đa là 1,5 A, đó là lý do tại sao giá trị của R s không thể nhỏ hơn 0,83E.

Trong việc lựa chọn bất kỳ điện trở nào, về cơ bản có hai thông số phải được xem xét, một là điện trở của nó và một là đánh giá công suất của nó. Định mức công suất được biểu thị bằng watt phụ thuộc vào dòng điện tối đa có thể chạy qua điện trở mà không làm hỏng điện trở. Vì vậy, nếu một điện trở watt thấp được sử dụng, thì dòng điện cao sẽ làm nóng điện trở và làm hỏng nó. Vì vậy, điều quan trọng không kém là xác định định mức công suất của điện trở. Nó có thể được tính như sau:

Dòng điện cực đại phải chạy qua điện trở R s là 60mA.

Vì vậy, Công suất = (điện áp rơi trên R s ) * (dòng điện tối đa trên R s )

Công suất = 1,25 * 0,06

Công suất = 75 mW (ước chừng)

Do đó, công suất cực đại do R s tiêu tán là 75 mW.

Tùy theo tình trạng sẵn có, có thể sử dụng điện trở 0,25W hoặc 250 mW.

Cần lưu ý rằng mạch sạc đã được thiết kế cho dòng sạc 60 mA ở chế độ CC. Nhưng theo dòng sạc của một pin cụ thể, nó có thể thay đổi đến giá trị cực đại 1,25 A bằng cách thay đổi giá trị của điện trở R s trong mạch LM317. 

Thiết kế nguồn điện áp không đổi

Đoạn mạch sau đây của LM317 hoạt động như một nguồn có hiệu điện thế không đổi.

Hình 7: Sơ đồ mạch của nguồn điện áp không đổi LM317 cho bộ sạc tuyến tính pin Lithium Ion

Để sử dụng LM317 làm nguồn điện áp không đổi, một mạch phân áp điện trở được sử dụng giữa chân đầu ra và đất. Mạch phân áp có một điện trở lập trình (Điện trở R ) và một điện trở khác là điện trở đặt đầu ra (Điện trở R ). Bằng cách lấy một tỷ lệ hoàn hảo của điện trở lập trình và điện trở đầu ra, giá trị mong muốn của điện áp đầu ra có thể được xác định. Điện áp đầu ra V ra có thể được tính theo công thức sau:

out = 1,25 * (1 + (R c / R p ) (Phương trình được đưa ra trong biểu dữ liệu của LM317)

Giá trị điển hình của điện trở R p phải từ 220E đến 240E để mạch ổn định. Trong mạch này, giá trị của điện trở lập trình R p được lấy là 220E. Bây giờ theo yêu cầu, điện áp đầu ra phải là 4,2V, vì vậy giá trị của điện trở R c sẽ như sau:

Điện áp đầu ra mong muốn, V ra = 4.2V

Điện trở bộ đầu ra, R p = 220E

Đưa các giá trị của V ra và R p vào phương trình,

4.2 = 1.25*(1+ (Rc / 220)

Sau khi giải phương trình, giá trị của Rc được tính như sau:

c = 520 ohm ( ước chừng ) để sử dụng LM317 làm nguồn điện áp không đổi, một mạch phân áp điện trở được sử dụng giữa chân đầu ra và đất. Mạch phân áp có một điện trở lập trình (Điện trở R ) và một điện trở khác là điện trở đặt đầu ra (Điện trở R ). Bằng cách lấy một tỷ lệ hoàn hảo của điện trở lập trình và điện trở đầu ra, giá trị mong muốn của điện áp đầu ra có thể được xác định. Điện áp đầu ra V ra có thể được tính theo công thức sau:

out = 1,25 * (1 + (R c / R p ) (Phương trình được đưa ra trong biểu dữ liệu của LM317)

Giá trị điển hình của điện trở R p phải từ 220E đến 240E để mạch ổn định. Trong mạch này, giá trị của điện trở lập trình R p được lấy là 220E. Bây giờ theo yêu cầu, điện áp đầu ra phải là 4,2V, vì vậy giá trị của điện trở R c sẽ như sau:

Điện áp đầu ra mong muốn, V ra = 4.2V

Điện trở bộ đầu ra, R p = 220E

Đưa các giá trị của V ra và R p vào phương trình,

4.2 = 1.25*(1+ (Rc / 220)

Sau khi giải phương trình, giá trị của Rc được tính như sau:

c = 520 ohm (ước chừng)

Do đó, bằng cách sử dụng hai IC LM317, Nguồn dòng điện không đổi 60 mA và Nguồn điện áp không đổi 4,2 V cuối cùng đã được thiết kế. Cả hai mạch nhỏ hơn này sẽ là một phần của mạch sạc cho pin Li-ion. 

Hình 8: Sơ đồ mạch của nguồn điện áp không đổi và nguồn dòng điện không đổi trong bộ sạc tuyến tính pin Lithium Ion

Điều quan trọng là phải kiểm tra dòng điện định mức và điện áp danh định lớn nhất của pin trước khi thiết kế bộ sạc và sử dụng mạch sạc với nó. Điện áp sạc của ắc quy phải lớn hơn điện áp danh định lớn nhất của nó ở chế độ CV. Pin phải được sạc với tốc độ sạc từ 0,5 C đến 0,8 C. Điện trở R phải có định mức watt thích hợp để ngăn điện trở khỏi bất kỳ hư hỏng nào. 

READ  Thông số kỹ thuật và bảng giá xe tải Suzuki tại Việt Nam

Không được vượt quá giới hạn điện áp đầu vào và dòng điện đầu ra của IC LM317 vì điều này có thể làm hỏng IC điều chỉnh. Các thông số kỹ thuật này phải được kiểm tra từ biểu dữ liệu của IC. Nếu dòng điện cao (500 mA trở lên) được sử dụng ở chế độ CC từ IC LM317, thì phải sử dụng bộ tản nhiệt với nó để hỗ trợ làm mát và tăng tuổi thọ của nó. Tản nhiệt cũng là một vật dẫn điện vì vậy cần chú ý không để các chân của IC bị chập với tản nhiệt vì có thể dẫn đến chập và hỏng IC. 

Trong hướng dẫn tiếp theo, cơ chế chuyển đổi để chuyển từ chế độ dòng điện không đổi sang chế độ điện áp không đổi sẽ được thảo luận và mạch sạc hoàn chỉnh cho pin Li-ion 3,7 V sử dụng bộ điều chỉnh tuyến tính sẽ được thiết kế. 

Code Thiết kế mạch sạc pin Li-ion

//Program to 

*Linear regulator single 3.7V Li-ion battery charger 

*Charges the battery in Constant Current(CC) with 60mA current and in Constant Voltage(CV) mode with 4.2V 

*/

/*IN/OUT Pin connection 

*Sense battery voltage - A0

*Sense resistor voltage - A1

*BJT for Switching state relay - 11

*BJT for isolation relay - 12

*CC mode LED - 9

*CV mode LED - 8

*Fully charged battery LED - 7

*/


// They're used to give names

// to the pins used:

#define analogInPin_V_bat A0    // Analog input pin at battery positive

#define analogInPin_I_bat A1    // Analog input pin at sense resistor

#define switch_pin 11           // switching state relay 

#define isolation_pin 12        // Isolation pin relay 

//#define PowerSupply 10        // PowerSupply relay 

#define CC_LED 9                // LED indication for cv mode 

#define CV_LED 8                // LED indication for cc mode

#define BAT_FULL_LED 7          // LED indication for FULLY CHARGE battery 

int Flag = 0;                   // variable to set CC and CV mode


/////function declaration

float senseVoltage(void);              // Battery Voltage sensing 

float senseCurrent(float);             // Charging current sensing


/////Function definition

/*

* Function Name - senseVoltage

* Function to read voltage of battery

* Input parameters - none

* Return - float

*/

float senseVoltage(){

///read analog voltage

int senseV_bat = analogRead(analogInPin_V_bat);

// map it to the range of the analog out:

float  V_bat =(senseV_bat/1024.0)*5.0;   

Serial.println("currentBatteryVoltage");

Serial.println(V_bat);

return(V_bat);

}



/*

* Function Name - senseCurrent

* Function to read charging current of battery

* Input parameters - float

* Return - float

*/

float senseCurrent(float currentBatteryVoltage){

///read analog voltage

float senseResistor = analogRead(analogInPin_I_bat);

// map it to the range of the analog out:

float  senseResistorVoltage =(senseResistor/1024.0)*5.0; 

float actualResistor_Voltage = (senseResistorVoltage-currentBatteryVoltage); 

////calculating current from voltage difference of sense resistor 

float I_bat = (actualResistor_Voltage)*1000;

//print at serial monitor

Serial.println("currentBatteryVoltage");

Serial.println(currentBatteryVoltage);

Serial.println("senseResistorVoltage");

Serial.println(senseResistorVoltage);

Serial.println("actualResistor_Voltage");

Serial.println(actualResistor_Voltage);

Serial.println("I_bat");

Serial.println(I_bat);

return(I_bat);

}


void setup() {

  // initialize serial communications at 9600 bps:

 Serial.begin(9600);

  /////////set IN/OUT pins

  pinMode(switch_pin,OUTPUT);

  pinMode(isolation_pin,OUTPUT);

  pinMode(CC_LED,OUTPUT);

  pinMode(CV_LED,OUTPUT);

  pinMode(BAT_FULL_LED,OUTPUT);

  

  //initially both relays are OFF

  digitalWrite(switch_pin,LOW);

  digitalWrite(isolation_pin,LOW);

}


void loop() {

uint8_t BatteryState=0 ;                         // Variable to keep track of battery state


//Every time eet these pin low

digitalWrite(isolation_pin,LOW);

digitalWrite(CC_LED,LOW);

digitalWrite(CV_LED,LOW);



//////////****read the analogvalues

  float batteryVoltage = senseVoltage();                 //return battery voltage

  float  batteryCurrent = senseCurrent(batteryVoltage);  // return battery charging current

 if(Flag == 1)

 {

  // After CC mode enter in CV mode

  BatteryState = 2;

  Flag = 0;}// Battery enter in CV mde after CC mode

  

 else if(Flag == 2){

  while(batteryVoltage>=4.0){

    batteryVoltage = senseVoltage(); 

    //check for when battery is removed or battery is discharged below 4V

    if(batteryVoltage <4){

    Flag = 0;

    digitalWrite(BAT_FULL_LED,LOW);

    break;}}}// battery fully charged scanning for battery removed or not

    

 else if(batteryVoltage < 3.0){

 //do nothing

  }// No Battery or bad battery,Ideal state


 else if(batteryVoltage<4.0 && batteryVoltage>3.0){

   digitalWrite(isolation_pin,LOW);

   BatteryState = 1;

   }//charge battery in CC MODE


 else if(batteryVoltage >= 4.0){

  BatteryState = 2;

  }//charge battery in CV MODE


  /////////////*****MODE SELECT****///////////

  switch(BatteryState){

    case 1: // CC MODE

    ///Switch ON CC mode LED and trigger relay 

    digitalWrite(isolation_pin,HIGH);         

    digitalWrite(switch_pin,HIGH);

    digitalWrite(CC_LED,HIGH);

    Serial.println("CC mode");

    //when battery voltage is in between 3V and 4V enter in while loop

    while(batteryVoltage <4.0 && batteryVoltage>=3.0){

    batteryVoltage = senseVoltage();

    

  //check for when battery is charging in CC mode

    if(batteryVoltage>=4.0){

    digitalWrite(isolation_pin,LOW);

    //delay to compensate switching time of relay with software

    delay(100);

    Flag = 1;

    digitalWrite(CC_LED,LOW);

    break;}

    //check for when battery is removed

    else if(batteryVoltage<3.0){   

    digitalWrite(isolation_pin,LOW);

    digitalWrite(switch_pin,LOW);

    digitalWrite(CC_LED,LOW);

    Serial.println("EXIT ");

     //delay to compensate switching time of relay with software

    delay(100);

    break;}

    }

    break;  /// exit case 1.

    

    case 2: // CV MODE

     ///Switch ON CV mode LED and trigger relay 

    digitalWrite(isolation_pin,HIGH);

    digitalWrite(CV_LED,HIGH);

    Serial.println("Cv mode");

  

    batteryVoltage = senseVoltage(); 

    //when battery voltage is in 4V enter in while loop

    while(batteryVoltage >=4.0 ){

    batteryVoltage = senseVoltage();

    batteryCurrent = senseCurrent(batteryVoltage);


     //check for when battery is charging in CV mode

    if(batteryCurrent < 10){

    digitalWrite(isolation_pin,LOW); 

    //delay to compensate switching time of relay with software

    delay(100); 

    digitalWrite(CV_LED,LOW);

    digitalWrite(BAT_FULL_LED,HIGH);

    Flag = 2;

    Serial.println("Battery charged");

    break;}

    //check for when battery is removed

    else if(batteryVoltage<3.0){

    digitalWrite(isolation_pin,LOW);  

    //delay to compensate switching time of relay with software

    delay(100); 

    digitalWrite(CV_LED,LOW); 

    break;}

  }

  break; /////end of switch case 2.

  }

}

Sơ đồ mạch Thiết kế mạch sạc pin Li-ion

Sơ đồ mạch sạc pin Li-ion click để xem phóng to :

See more articles in the category: TIN TỨC

Leave a Reply