Πίνακας περιεχομένων:

Arduino LTC6804 BMS - Μέρος 2: Πίνακας ισορροπίας: 5 βήματα
Arduino LTC6804 BMS - Μέρος 2: Πίνακας ισορροπίας: 5 βήματα

Βίντεο: Arduino LTC6804 BMS - Μέρος 2: Πίνακας ισορροπίας: 5 βήματα

Βίντεο: Arduino LTC6804 BMS - Μέρος 2: Πίνακας ισορροπίας: 5 βήματα
Βίντεο: Lithium-Ion Battery Management System | BMS | LTC6804-2 2024, Ιούλιος
Anonim
Arduino LTC6804 BMS - Μέρος 2: Πίνακας υπολοίπου
Arduino LTC6804 BMS - Μέρος 2: Πίνακας υπολοίπου

Το 1ο μέρος είναι εδώ

Ένα Σύστημα Διαχείρισης Μπαταρίας (BMS) περιλαμβάνει λειτουργικότητα για την αίσθηση σημαντικών παραμέτρων της μπαταρίας, συμπεριλαμβανομένων τάσεων κυψέλης, ρεύματος μπαταρίας, θερμοκρασίας κυψέλης κ.λπ., ή μπορεί να ληφθεί άλλη κατάλληλη ενέργεια. Σε προηγούμενο έργο (https://www.instructables.com/id/Arduino-LTC6804-Battery-Management-System/) συζήτησα τον σχεδιασμό μου BMS, ο οποίος βασίζεται στο τσιπ Linear Technology LTC6804 Multicell Battery Monitor και έναν μικροελεγκτή Arduino Το Αυτό το έργο επεκτείνει το έργο BMS προσθέτοντας εξισορρόπηση πακέτων μπαταριών.

Τα πακέτα μπαταριών δημιουργούνται από μεμονωμένα κελιά σε παράλληλες και/ή σειρές διαμορφώσεις. Για παράδειγμα, ένα πακέτο 8p12s θα κατασκευαστεί χρησιμοποιώντας 12 σετ συνδεδεμένα σετ από 8 παράλληλα συνδεδεμένα κελιά. Θα υπήρχαν συνολικά 96 κύτταρα στη συσκευασία. Για καλύτερη απόδοση και τα 96 κύτταρα θα πρέπει να έχουν στενά αντιστοιχισμένες ιδιότητες, ωστόσο, θα υπάρχει πάντα κάποια διακύμανση μεταξύ των κελιών. Για παράδειγμα, ορισμένα κελιά μπορεί να έχουν μικρότερη χωρητικότητα από άλλα κελιά. Καθώς το πακέτο φορτίζεται, τα κύτταρα χαμηλότερης χωρητικότητας θα φτάσουν στη μέγιστη ασφαλή τάση πριν από το υπόλοιπο πακέτο. Το BMS θα ανιχνεύσει αυτήν την υψηλή τάση και θα διακόψει την περαιτέρω φόρτιση. Το αποτέλεσμα θα είναι ότι ένα μεγάλο μέρος της συσκευασίας δεν φορτίζεται πλήρως όταν το BMS διακόψει τη φόρτιση λόγω της υψηλότερης τάσης του πιο αδύναμου στοιχείου. Μια παρόμοια δυναμική μπορεί να συμβεί κατά την εκφόρτιση, όταν τα κύτταρα μεγαλύτερης χωρητικότητας δεν μπορούν να αποφορτιστούν πλήρως, επειδή το BMS αποσυνδέει το φορτίο όταν η ασθενέστερη μπαταρία φτάσει στο όριο χαμηλής τάσης. Η συσκευασία είναι επομένως τόσο καλή όσο οι πιο αδύναμες μπαταρίες της, όπως μια αλυσίδα που είναι τόσο ισχυρή όσο ο πιο αδύναμος κρίκος της.

Μια λύση σε αυτό το πρόβλημα είναι να χρησιμοποιήσετε έναν πίνακα ισορροπίας. Ενώ υπάρχουν πολλές στρατηγικές για την εξισορρόπηση του πακέτου, οι πιο απλοί «παθητικοί» πίνακες ζυγοστάθμισης έχουν σχεδιαστεί για να εξαφανίζουν μέρος της φόρτισης των κυψελών υψηλότερης τάσης όταν το πακέτο πλησιάζει την πλήρη φόρτιση. Ενώ σπαταλάται κάποια ενέργεια, το πακέτο μπορεί στο σύνολό του να αποθηκεύσει περισσότερη ενέργεια. Η αιμορραγία γίνεται με τη διάχυση κάποιας ισχύος μέσω ενός συνδυασμού αντίστασης/διακόπτη που ελέγχεται από έναν μικροελεγκτή. Αυτό το εκπαιδευτικό περιγράφει ένα παθητικό σύστημα εξισορρόπησης συμβατό με το arduino/LTC6804 BMS από προηγούμενο έργο.

Προμήθειες

Μπορείτε να παραγγείλετε το PCB Balance Board από το PCBWays εδώ:

www.pcbway.com/project/shareproject/Balance_board_for_Arduino_BMS.html

Βήμα 1: Θεωρία Λειτουργίας

Θεωρία Λειτουργίας
Θεωρία Λειτουργίας

Η σελίδα 62 του φύλλου δεδομένων LTC6804 συζητά την εξισορρόπηση κυττάρων. Υπάρχουν δύο επιλογές: 1) χρήση του εσωτερικού MOSFETS καναλιού N για εξαέρωση ρεύματος από τις υψηλές κυψέλες ή 2) χρήση του εσωτερικού MOSFETS για έλεγχο εξωτερικών διακοπτών που μεταφέρουν το ρεύμα εξαέρωσης. Χρησιμοποιώ τη δεύτερη επιλογή επειδή μπορώ να σχεδιάσω το δικό μου κύκλωμα εξαέρωσης για να χειρίζομαι υψηλότερο ρεύμα από αυτό που θα μπορούσε να γίνει χρησιμοποιώντας τους εσωτερικούς διακόπτες.

Τα εσωτερικά MOSFETS είναι διαθέσιμα μέσω των ακίδων S1-S12, ενώ η πρόσβαση στα ίδια τα κελιά γίνεται χρησιμοποιώντας τις ακίδες C0-C12. Η παραπάνω εικόνα δείχνει ένα από τα 12 ίδια κυκλώματα εξαέρωσης. Όταν το Q1 είναι ενεργοποιημένο, το ρεύμα θα ρέει από το C1 στη γείωση μέσω του R5, διασκορπίζοντας μέρος του φορτίου στο κελί 1. Επέλεξα μια αντίσταση 6 Ohm, 1 Watt, η οποία θα πρέπει να μπορεί να χειριστεί αρκετά milliamps ρεύματος αιμορραγίας. προστέθηκε ένα LED έτσι ώστε ο χρήστης να μπορεί να δει ποια κύτταρα ισορροπούν ανά πάσα στιγμή.

Οι ακίδες S1-S12 ελέγχονται από το CFGR4 και τα πρώτα 4 bits των ομάδων καταχωρητών CFGR5 (δείτε σελίδες 51 και 53 του φύλλου δεδομένων LTC6804). Αυτές οι ομάδες καταχωρήσεων ορίζονται στον κώδικα Arduino (που συζητείται παρακάτω) στη συνάρτηση balance_cfg.

Βήμα 2: Σχηματικό

Σχηματικός
Σχηματικός

Το σχήμα για τον πίνακα ισορροπίας BMS σχεδιάστηκε χρησιμοποιώντας το Eagle CAD. Είναι αρκετά απλό. Υπάρχει ένα κύκλωμα εξαέρωσης για κάθε τμήμα σειράς μπαταριών. Οι διακόπτες ελέγχονται με σήματα από το LTC6804 μέσω της κεφαλίδας JP2. Το ρεύμα εξαέρωσης ρέει από τη μπαταρία μέσω της κεφαλίδας JP1. Σημειώστε ότι το ρεύμα εξαέρωσης ρέει στο επόμενο χαμηλότερο τμήμα της μπαταρίας, για παράδειγμα, το C9 διοχετεύεται στο C8, κ.λπ. στο αρχείο zip. Ακολουθεί η λίστα με τα μέρη (Για κάποιο λόγο η λειτουργία μεταφόρτωσης αρχείου Instructables δεν λειτουργεί για μένα …)

Περιγραφή ανταλλακτικών συσκευασίας συσκευής Qty Value

12 LEDCHIPLED_0805 CHIPLED_0805 LED1, LED2, LED3, LED4, LED5, LED6, LED7, LED8, LED9, LED10, LED11, LED12, LED12 LED 12 BSS308PEH6327XTSA1 MOSFET-P SOT23-R Q1, Q2, Q3, Q4, Q5, Q6, Q6, Q5, Q6, Q6, Q6, Q6, Q6, Q6, Q6, Q6, Q6, Q6, Q6, Q6, Q6, Q6, Q6, Q6, Q6, Q6, Q6, Q6, Q6, Q6, Q6, Q6, Q6, Q6, Q6, Q6, Q6, Q5, Q6, Q6, Q6, Q6, Q6, Q6, Q6, Q5, Q6, Q6, Q6, Q6, Q6, Q6, Q5, Q6, Q6, Q5, Q6, Q6, Q6, Q6, Q5, Q6, Q6, Q5, Q5, Q6, Q5, Q6, Q5, Q6, Q5, Q6, Q9, Q10, Q11, Q12 P-Channel Mosfet 2 PINHD-1X13_BIG 1X13-BIG JP1, JP2 PIN HEADER 12 16 R-US_R2512 R2512 R5, R7, R9, R11, R13, R15, R17, R19, R21, R23, R25, R27 RESISTOR, Αμερικανικό σύμβολο 12 1K R-US_R0805 R0805 R4, R6, R8, R10, R12, R14, R16, R18, R20, R22, R24, R26 RESISTOR, αμερικανικό σύμβολο 12 200 R-US_R0805 R0805 R1, R2, R3, R28, R29, R30, R31, R32, R33, R34, R35, R36 RESISTOR, αμερικανικό σύμβολο

Βήμα 3: Διάταξη PCB

Διάταξη PCB
Διάταξη PCB

Η διάταξη καθορίζεται ως επί το πλείστον από τον σχεδιασμό του κύριου συστήματος BMS που συζητείται σε ξεχωριστό οδηγό (https://www.instructables.com/id/Arduino-LTC6804-Battery-Management-System/). Οι κεφαλίδες JP1 και JP2 πρέπει να ταιριάζουν με τις αντίστοιχες κεφαλίδες στο BMS. Οι Mosfets, οι αντιστάσεις αιμορραγίας και τα LED είναι διατεταγμένα με λογικό τρόπο στην ασπίδα Arduino Uno. Τα αρχεία Gerber δημιουργήθηκαν χρησιμοποιώντας το Eagle CAD και τα PCB στάλθηκαν στα κυκλώματα Sierra για κατασκευή.

Το συνημμένο αρχείο "Gerbers Balance Board.zip.txt" είναι στην πραγματικότητα ένα αρχείο zip που περιέχει το Gerbers. Μπορείτε απλά να διαγράψετε το.txt μέρος του ονόματος του αρχείου και στη συνέχεια να το αποσυμπιέσετε σαν ένα κανονικό αρχείο zip.

Στείλτε μου ένα μήνυμα εάν θέλετε να πάρετε ένα PCB, μπορεί να μου έχουν μείνει ακόμα.

Βήμα 4: Συναρμολόγηση PCB

Τα PCB του ισοζυγίου συγκολλήθηκαν με το χέρι χρησιμοποιώντας έναν σταθμό συγκόλλησης Weller WESD51 ελεγχόμενης θερμοκρασίας με μια άκρη ETB ET 0,093 "κατσαβίδι" και κόλληση 0,3 mm. Παρόλο που οι μικρότερες συμβουλές μπορεί να φαίνονται καλύτερες για περίπλοκη εργασία, δεν διατηρούν τη θερμότητα και στην πραγματικότητα κάνουν τη δουλειά πιο δύσκολη. Χρησιμοποιήστε ένα στυλό ροής για να καθαρίσετε τα μαξιλάρια PCB πριν από τη συγκόλληση. Η συγκόλληση 0,3 mm λειτουργεί καλά για τα μέρη συγκόλλησης SMD. Τοποθετήστε ένα κομμάτι κόλλησης σε ένα μαξιλάρι και στη συνέχεια τοποθετήστε το μέρος με ένα τσιμπιδάκι ή ένα μαχαίρι x-acto και κολλήστε το. Το υπόλοιπο μαξιλάρι μπορεί στη συνέχεια να κολληθεί χωρίς να μετακινηθεί το εξάρτημα. Βεβαιωθείτε ότι δεν υπερθερμαίνετε το εξάρτημα ή τα τακάκια PCB. Επειδή τα περισσότερα από τα εξαρτήματα είναι αρκετά μεγάλα σύμφωνα με τα πρότυπα SMD, το PCB είναι αρκετά εύκολο να συναρμολογηθεί.

Βήμα 5: Κωδικός

Κώδικας
Κώδικας

Ο πλήρης κωδικός Arduino παρέχεται στο προηγούμενο εκπαιδευτικό που συνδέεται με το παραπάνω. Εδώ θα επιστήσω την προσοχή σας στην ενότητα που ελέγχει την ισορροπία κυττάρων. Όπως αναφέρθηκε παραπάνω, το S1-S12 ελέγχεται από το CFGR4 και τα πρώτα 4 bits των ομάδων καταχώρισης CFGR5 στο LTC6804 (δείτε σελίδες 51 και 53 του φύλλου δεδομένων LTC6804). Η λειτουργία βρόχου του κώδικα Arduino ανιχνεύει το τμήμα μπαταρίας υψηλότερης τάσης και τοποθετεί τον αριθμό του στη μεταβλητή cellMax_i. Εάν η τάση του cellMax_i είναι μεγαλύτερη από το CELL_BALANCE_THRESHOLD_V, ο κώδικας θα καλέσει τη συνάρτηση balance_cfg (), περνώντας τον αριθμό του υψηλού τμήματος, cellMax_i. Η συνάρτηση balance_cfg ορίζει τις τιμές του κατάλληλου καταχωρητή LTC6804. Στη συνέχεια, μια κλήση στο LTC6804_wrcfg γράφει αυτές τις τιμές στο IC, ενεργοποιώντας τον πείρο S που σχετίζεται με το cellMax_i.

Συνιστάται: