Ψηφιακός μετρητής χωρητικότητας και εσωτερικής αντίστασης μπαταριών. Μια συσκευή για τη μέτρηση της χωρητικότητας της μπαταρίας. Βασικές μέθοδοι Κύκλωμα μέτρησης της χωρητικότητας μιας μπαταρίας ιόντων λιθίου

Αυτή η συσκευή έχει σχεδιαστεί για τη μέτρηση της χωρητικότητας των μπαταριών Li-ion και Ni-Mh, καθώς και για τη φόρτιση μπαταριών Li-ion με επιλογή του αρχικού ρεύματος φόρτισης.

Ελεγχος

Συνδέουμε τη συσκευή σε σταθεροποιημένη παροχή ρεύματος 5V και ρεύμα 1Α (για παράδειγμα, από κινητό τηλέφωνο). Η ένδειξη εμφανίζει το αποτέλεσμα της προηγούμενης μέτρησης χωρητικότητας "xxxxmA/c" για 2 δευτερόλεπτα και στη δεύτερη γραμμή την τιμή του καταχωρητή OCR1A "S.xxx". Τοποθετούμε την μπαταρία. Εάν πρέπει να φορτίσετε την μπαταρία, πατήστε στιγμιαία το κουμπί CHARGE, εάν θέλετε να μετρήσετε τη χωρητικότητα και, στη συνέχεια, πατήστε στιγμιαία το κουμπί TEST. Εάν πρέπει να αλλάξετε το ρεύμα φόρτισης (την τιμή του καταχωρητή OCR1A), πατήστε το κουμπί CHARGE για μεγάλο χρονικό διάστημα (2 δευτερόλεπτα). Μεταβείτε στο παράθυρο προσαρμογής μητρώου. Ας αφήσουμε το κουμπί. Πατώντας στιγμιαία το κουμπί CHARGE, αλλάζουμε τις τιμές καταχωρητή (50-75-100-125-150-175-200-225) σε κύκλο, η πρώτη γραμμή δείχνει το ρεύμα φόρτισης μιας άδειας μπαταρίας στην επιλεγμένη τιμή (με την προϋπόθεση ότι έχετε αντίσταση 0 στο κύκλωμα, 22 Ohm). Πατήστε σύντομα το κουμπί TEST οι τιμές του καταχωρητή OCR1A αποθηκεύονται σε μη πτητική μνήμη.
Εάν έχετε πραγματοποιήσει διάφορους χειρισμούς με τη συσκευή και πρέπει να επαναφέρετε το ρολόι ή τη μετρημένη χωρητικότητα, πατήστε το κουμπί TEST για μεγάλο χρονικό διάστημα (οι τιμές του καταχωρητή OCR1A δεν επαναφέρονται). Μόλις ολοκληρωθεί η φόρτιση, ο οπίσθιος φωτισμός της οθόνης σβήνει. Για να ενεργοποιήσετε τον οπίσθιο φωτισμό, πατήστε στιγμιαία το κουμπί TEST ή CHARGE.

Η λογική λειτουργίας της συσκευής είναι η εξής:

Όταν γίνεται τροφοδοσία, η ένδειξη εμφανίζει το αποτέλεσμα της προηγούμενης μέτρησης της χωρητικότητας της μπαταρίας και την τιμή του καταχωρητή OCR1A, που είναι αποθηκευμένη σε μη πτητική μνήμη. Μετά από 2 δευτερόλεπτα, η συσκευή μεταβαίνει στη λειτουργία προσδιορισμού του τύπου της μπαταρίας από την τάση στους ακροδέκτες.

Εάν η τάση είναι μεγαλύτερη από 2 V, τότε πρόκειται για μπαταρία ιόντων λιθίου και η τάση πλήρους εκφόρτισης θα είναι 2,9 V, διαφορετικά είναι μπαταρία Ni-MH και η τάση πλήρους εκφόρτισης θα είναι 1 V. Τα κουμπιά ελέγχου είναι διαθέσιμα μόνο μετά τη σύνδεση της μπαταρίας. Στη συνέχεια, η συσκευή περιμένει να πατηθούν τα κουμπιά Test ή Charge. Στην οθόνη εμφανίζεται η ένδειξη "_STOP". Όταν πατήσετε στιγμιαία το κουμπί Test, το φορτίο συνδέεται μέσω MOSFET.

Το μέγεθος του ρεύματος εκφόρτισης καθορίζεται από την τάση στην αντίσταση 5,1 Ohm και αθροίζεται με την προηγούμενη τιμή κάθε λεπτό. Η συσκευή χρησιμοποιεί χαλαζία 32768 Hz για να λειτουργεί το ρολόι.

Στην οθόνη εμφανίζεται η τρέχουσα τιμή της χωρητικότητας της μπαταρίας "xxxxmA/s" και του άκρου αποφόρτισης "A.xxx", καθώς και η ώρα "xx:xx:xx" από τη στιγμή που πατήθηκε το κουμπί. Εμφανίζεται επίσης ένα κινούμενο εικονίδιο χαμηλής μπαταρίας. Στο τέλος της δοκιμής για την μπαταρία Ni-MH, εμφανίζεται το μήνυμα «_STOP», το αποτέλεσμα της μέτρησης εμφανίζεται στην οθόνη «xxxxmA/c» και απομνημονεύεται.

Εάν η μπαταρία είναι Li-ion, τότε το αποτέλεσμα της μέτρησης εμφανίζεται επίσης στην οθόνη "xxxxmA/c" και απομνημονεύεται, αλλά η λειτουργία φόρτισης ενεργοποιείται αμέσως. Στην οθόνη εμφανίζονται τα περιεχόμενα του καταχωρητή OCR1A "S.xxx". Εμφανίζεται επίσης ένα κινούμενο εικονίδιο φόρτισης μπαταρίας.

Το ρεύμα φόρτισης ρυθμίζεται χρησιμοποιώντας PWM και περιορίζεται από μια αντίσταση 0,22 Ohm. Στο υλικό, το ρεύμα φόρτισης μπορεί να μειωθεί αυξάνοντας την αντίσταση από 0,22 Ohm σε 0,5-1 Ohm. Στην αρχή της φόρτισης, το ρεύμα αυξάνεται σταδιακά στην τιμή του καταχωρητή OCR1A ή έως ότου η τάση στους ακροδέκτες της μπαταρίας φτάσει τα 4,22 V (αν η μπαταρία έχει φορτιστεί).

Η ποσότητα του ρεύματος φόρτισης εξαρτάται από την τιμή του καταχωρητή OCR1A - όσο μεγαλύτερη είναι η τιμή, τόσο μεγαλύτερο είναι το ρεύμα φόρτισης. Όταν η τάση στους ακροδέκτες της μπαταρίας υπερβαίνει τα 4,22 V, η τιμή του καταχωρητή OCR1A μειώνεται. Η διαδικασία επαναφόρτισης συνεχίζεται έως ότου η τιμή καταχωρητή OCR1A είναι 33, η οποία αντιστοιχεί σε ρεύμα περίπου 40 mA. Αυτό τερματίζει τη χρέωση. Ο οπίσθιος φωτισμός της οθόνης σβήνει.

Ρυθμίσεις

1. Συνδέστε το ρεύμα.
2. Συνδέστε την μπαταρία.
3. Συνδέστε το βολτόμετρο στην μπαταρία.
4. Χρησιμοποιώντας τα προσωρινά κουμπιά + και - (PB4 και PB5) διασφαλίζουμε ότι οι ενδείξεις του βολτόμετρου στην οθόνη ταιριάζουν με το βολτόμετρο αναφοράς.
5. Πατήστε παρατεταμένα το κουμπί TEST (2 δευτερόλεπτα), γίνεται απομνημόνευση.
6. Αφαιρέστε την μπαταρία.
7. Συνδέστε το βολτόμετρο στην αντίσταση 5,1 Ohm (σύμφωνα με το διάγραμμα κοντά στο τρανζίστορ 09N03LA).
8. Συνδέστε το ρυθμιζόμενο τροφοδοτικό στους ακροδέκτες της μπαταρίας, ρυθμίστε την παροχή ρεύματος στα 4V.
9. Πατήστε στιγμιαία το κουμπί TEST.
10. Μετράμε την τάση στην αντίσταση 5,1 Ohm - U.
11. Υπολογίστε το ρεύμα εκφόρτισης I=U/5.1
12. Χρησιμοποιώντας τα προσωρινά κουμπιά + και - (PB4 και PB5) ρυθμίζουμε το υπολογιζόμενο ρεύμα εκφόρτισης I στην ένδειξη "A.xxx".
13. Πατήστε παρατεταμένα το κουμπί TEST (2 δευτερόλεπτα), γίνεται απομνημόνευση.

Η συσκευή τροφοδοτείται από σταθεροποιημένη πηγή με τάση 5 Volt και ρεύμα 1Α. Ο χαλαζίας στα 32768Hz έχει σχεδιαστεί για ακριβή διατήρηση του χρόνου. Ο ελεγκτής ATmega8 είναι χρονισμένος από έναν εσωτερικό ταλαντωτή με συχνότητα 8 MHz και είναι επίσης απαραίτητο να ρυθμίσετε την προστασία διαγραφής EEPROM με τα κατάλληλα bit διαμόρφωσης. Κατά τη σύνταξη του προγράμματος ελέγχου, χρησιμοποιήθηκαν εκπαιδευτικά άρθρα από αυτόν τον ιστότοπο.

Οι τρέχουσες τιμές των συντελεστών τάσης και ρεύματος (Ukof. Ikof) μπορούν να φανούν εάν συνδέσετε μια οθόνη 16x4 (το 16x4 είναι προτιμότερο για εντοπισμό σφαλμάτων) στην τρίτη γραμμή. Ή στο Ponyprog εάν ανοίξετε το αρχείο υλικολογισμικού EEPROM (διαβάστε από τον ελεγκτή EEPROM).
1 byte - OCR1A, 2 byte - I_kof, 3 byte - U_kof, 4 και 5 byte είναι το αποτέλεσμα της προηγούμενης μέτρησης χωρητικότητας.

Βίντεο της συσκευής:


Η προτεινόμενη συσκευή έχει σχεδιαστεί για τη μέτρηση της χωρητικότητας και της εσωτερικής αντίστασης των μπαταριών Ni-Cd και Ni-MH. Υπάρχει ηχητική ένδειξη υπερβολικά χαμηλής τάσης μπαταρίας, καθώς και η στιγμή λήξης της εκφόρτισής της.

Η μέτρηση της χωρητικότητας μιας μπαταρίας βασίζεται στην εκφόρτισή της με σταθερό ρεύμα, στη μέτρηση του χρόνου εκφόρτισης και στον πολλαπλασιασμό αυτών των τιμών. Κατά τη μέτρηση της εσωτερικής αντίστασης, η συσκευή μετρά την τάση της μπαταρίας χωρίς φορτίο, στη συνέχεια υπό φορτίο με ρεύμα 1 Α και, βάσει αυτών των δεδομένων, υπολογίζει την εσωτερική αντίσταση της μπαταρίας.

Το διάγραμμα της συσκευής φαίνεται στο Σχ. 1. Η βάση του είναι ο μικροελεγκτής ATmedav (DD1). Το πληκτρολόγιο με διεπαφή μονού καλωδίου αποτελείται από έξι κουμπιά SB1-SB6. Πληροφορίες σχετικά με τις μετρούμενες παραμέτρους της μπαταρίας εμφανίζονται στην εννεαψήφια ένδειξη LED HG1. Για την εκφόρτιση της συνδεδεμένης μπαταρίας, χρησιμοποιείται μια πηγή ρεύματος ελεγχόμενης τάσης (VTUN) στον ενισχυτή op-amp DA2, στο τρανζίστορ VT1, στις αντιστάσεις R9, R10, R19-R21, R23 και στους πυκνωτές C7, C9.

Εάν η τάση της συνδεδεμένης μπαταρίας είναι κάτω από 1 V, το πληκτρολόγιο της συσκευής είναι κλειδωμένο και η κάψουλα BF1 εκπέμπει τρεις διακοπτόμενους παλμούς ήχου σε συχνότητα 600 Hz. Εάν η τάση της μπαταρίας είναι πάνω από 1 V, η κάψουλα BF1 εκπέμπει δύο διακοπτόμενους παλμούς ήχου σε συχνότητα 3000 Hz όταν είναι συνδεδεμένη η μπαταρία και επίσης όταν τελειώσει η αποφόρτιση στην καθορισμένη τάση

Αφού συνδέσετε την μπαταρία, ρυθμίστε την τάση στην οποία πρέπει να αποφορτιστεί πατώντας τα κουμπιά SB3 και SB4. Το βήμα ρύθμισης όταν πατηθεί στιγμιαία είναι 0,1 V. Όταν κρατάτε πατημένο το κουμπί, οι τιμές των δέκα πρώτων βημάτων είναι 0,1 V και μετά 1 V. Στη συνέχεια, πατώντας τα κουμπιά SB1 και SB2, ρυθμίζεται το ρεύμα εκφόρτισης. Εάν κρατήσετε αυτά τα κουμπιά για λιγότερο από πέντε δευτερόλεπτα, η τρέχουσα τιμή δεν αλλάζει και εμφανίζεται η τρέχουσα τιμή, όπως φαίνεται στη φωτογραφία στο Σχ. 2 (σύμβολο і στην κάτω θέση). Εάν τα κουμπιά SB1 και SB2 κρατηθούν για περισσότερο από πέντε δευτερόλεπτα, η τρέχουσα τιμή θα αλλάξει σε μεταβλητά βήματα: πρώτα 50 mA, μετά 150 mA. Σε αυτήν την περίπτωση, το σύμβολο і θα εμφανίζεται στην επάνω θέση, όπως φαίνεται στη φωτογραφία στο Σχ. 3.

Η μέγιστη τιμή του ρεύματος εκφόρτισης είναι 2,55 A Μόλις το ρεύμα εκφόρτισης φτάσει σε τιμή μεγαλύτερη από το μηδέν (όταν η τάση της μπαταρίας είναι μεγαλύτερη από το καθορισμένο κατώφλι ή ίση με αυτό), το ηχητικό σήμα θα εξαφανιστεί και το LED HL1 θα ξεκινήσει να αναβοσβήνει σε συχνότητα 0,25 Hz. Όταν πατάτε το κουμπί SB5, μετριέται και αποθηκεύεται η τάση χωρίς φορτίο και στη συνέχεια υπό φορτίο υπολογίζεται η εσωτερική αντίσταση σε ohms, η οποία εμφανίζεται στα ψηφία χαμηλής τάξης του δείκτη με το σύμβολο g, όπως φαίνεται στη φωτογραφία στο Σχ. 4.

Όταν πατάτε το κουμπί SB6, τα υψηλότερα ψηφία της ένδειξης HG1 εμφανίζουν την τρέχουσα τάση της μπαταρίας. Όταν δεν πατιέται κανένα κουμπί, τα υψηλά ψηφία της ένδειξης HG1 δείχνουν την τάση στην οποία πρέπει να αποφορτιστεί η μπαταρία και τα χαμηλά ψηφία δείχνουν τη χωρητικότητα σε μορφή XX,XX αμπέρ-ώρες. Ασήμαντα μηδενικά δεκάδων βολτ και αμπερώρες ακυρώνονται από λογισμικό.

Τα περισσότερα από τα εξαρτήματα είναι τοποθετημένα σε μια πλακέτα τυπωμένου κυκλώματος κατασκευασμένη από υαλοβάμβακα μονής όψης με επικάλυψη φύλλου, ένα σχέδιο του οποίου φαίνεται στο Σχ. 5 Λεπτά ορθογώνια δείχνουν τα εξαρτήματα επιφανειακής βάσης R7, R8 και C5 που είναι εγκατεστημένα στο πλάι των αγωγών τυπωμένου κυκλώματος.

Για να εξασφαλιστεί η γραμμικότητα του ρεύματος ITUN σε όλο το διάστημα, είναι απαραίτητο να χρησιμοποιηθεί ο op-amp DA2 με τη χαμηλότερη δυνατή μηδενική τάση μετατόπισης και το τρανζίστορ VT1 με χαμηλή τάση κατωφλίου. Στο αντίγραφο του συγγραφέα, η μηδενική τάση πόλωσης του op-amp DA2 είναι περίπου 4 mV και του τρανζίστορ VT1 με τάση κατωφλίου 1,85 V σε ρεύμα αποστράγγισης 1 A, η μη γραμμικότητα του ρεύματος ITUN δεν υπερβαίνει το 10%. Η ελάχιστη τιμή του ρεύματος ITUN δεν είναι μεγαλύτερη από 2 mA. Το τρανζίστορ VT1 εγκαθίσταται χωρίς ψύκτρα. Ένας ανεμιστήρας από έναν επεξεργαστή υπολογιστή χρησιμοποιείται για την ψύξη του. Ο ανεμιστήρας και η συσκευή λαμβάνουν ρεύμα από έναν μη σταθεροποιημένο προσαρμογέα δικτύου με τάση εξόδου 9.. 12 V και ρεύμα φορτίου τουλάχιστον 0,5 A.

Η ρύθμιση αποτελείται από την επιλογή των αντιστάσεων R6 και R9. Επιλέγοντας την αντίσταση R6, οι ενδείξεις των πιο σημαντικών ψηφίων του δείκτη HG1 προσδιορίζονται χρησιμοποιώντας ένα τυπικό βολτόμετρο. Στη συνέχεια, πατώντας τα κουμπιά SB1 και SB2, εμφανίζεται η απαιτούμενη τιμή του ρεύματος εκφόρτισης στον δείκτη HG1, μετρήστε το ρεύμα ITUN με ένα τυπικό αμπερόμετρο και επιλέξτε την αντίσταση R9 και ρυθμίστε το μετρούμενο ρεύμα ίσο με τις ενδείξεις του δείκτη HG1 .

ΥΣΤΕΡΟΓΡΑΦΟ. Εάν δεν υπάρχει αυτοδιέγερση της γεννήτριας ρολογιού του μικροελεγκτή, οι ακίδες 9 και 10 της θα πρέπει να συνδεθούν στο κοινό καλώδιο μέσω πυκνωτών ίδιας χωρητικότητας 12...22 pF.

Μπορείτε να κατεβάσετε προγράμματα μικροελεγκτών.


Ημερομηνία έκδοσης: 07.06.2012


Οι απόψεις των αναγνωστών
  • [email προστατευμένο] / 18.07.2019 - 21:40
    Αγαπητέ Ozolin M.A. Έφτιαξα μια διάταξη του κυκλώματος σας Radio No. 7, 2015 στο ATtiny26 Όπως καταλαβαίνω, υπάρχει ένα σφάλμα με χαλαζία στο κύκλωμα. Το διάγραμμα δείχνει έναν συντονιστή ρολογιού 32768 Hz. Και οι ασφάλειες (H-17, L-EE) άρχισαν να λειτουργούν με χαλαζία 4 MHz. Ίσως οι ασφάλειες υποδεικνύονται λανθασμένα; Πες μου σε παρακαλώ.. Πού είναι το τυπογραφικό λάθος; Έτσι ώστε το LED να αναβοσβήνει σε συχνότητα 0,5Hz όπως στην περιγραφή. Ίσως χρειάζεστε λιγότερο χαλαζία; Τύπος 3,2MHz/3,579575/3,68640/ Πιεζοκεραμικός συντονιστής ZTA 3,58 MHz; Το διάγραμμα είναι απλό και δροσερό. Δεν υπάρχει τίποτα περιττό. Λειτουργεί στα 4MHz προς το παρόν. Χάρη σε εσένα. Αν μου πεις για χαλαζία, θα είναι απολύτως υπέροχο. Με σεβασμό, Ρομάν.
  • Ozolin M. A / 05/11/2015 - 10:26
    Η αντίσταση R8 πρέπει να είναι 1, όχι 10 kOhm! ΛΑΘΟΣ ΤΩΝ ΣΥΝΤΑΚΤΩΝ ΤΟΥ ΡΑΔΙΟΠΕΔΙΚΟΥ ΚΑΙ ΑΥΤΟΥ ΠΟΥ ΧΩΡΙΣ ΝΑ ΚΟΙΤΑΞΕΙ ΑΝΑΡΤΗΣΕ ΤΟ ΑΡΘΡΟ ΕΔΩ. Τους επεσήμανα αυτό το λάθος αμέσως μετά τη δημοσίευση του άρθρου και η διόρθωση δημοσιεύθηκε στην ενότητα «η διαβούλευση μας». Σύνδεσμος στο διάγραμμα εργασίας http://maxoz.ru/newAk/newAk.gif
  • Ozolin M. A / 05/11/2015 - 10:13
    Κύριοι Boris και Alexander K.G, ελέγξτε τη δυνατότητα συντήρησης των εξαρτημάτων ή αναζητήστε σφάλματα στην εγκατάσταση! Το υλικολογισμικό λειτουργεί και έχει δοκιμαστεί πολλές φορές!
  • Αλέξανδρος Γ.Κ. / 23/04/2015 - 10:02
    Συμφωνώ με τον Boris - το σχέδιο ΔΕΝ λειτουργεί! Μετά το «χόρεψε με ντέφι», δεν ξεκίνησε ποτέ. Το μόνο πράγμα που μπορεί να ανιχνευθεί είναι η τάση πάνω ή κάτω από 1 V. (τρία ή δύο «μπιπ» κ. Μ. Οζολίν, μην ανταποκρίνεστε (!) - *.ΗΕΞ δεν θα ρωτήσω. Κακή επιχείρηση....
  • Sergey / 18/09/2013 - 07:36
    Πώς να ρυθμίσετε τις ασφάλειες για το υλικολογισμικό του ελεγκτή;
  • Boris / 28/05/2013 - 06:59
    Το κύκλωμα δεν λειτουργεί όταν πατηθεί, όλα τα κουμπιά εμφανίζουν τους ίδιους αριθμούς στα δύο λιγότερο σημαντικά ψηφία. Κύριε Μ. Οζολίν, θα απαντήσετε;
  • Vitaly / 16/11/2012 - 03:55
    B (ITUN) - για να αποκτήσετε καλή γραμμικότητα, είναι προτιμότερο να αντικαταστήσετε τον op-amp LM357N με ένα MCP601.
  • Αλέξανδρος / 22.10.2012 - 17:10
    Μπορούν να ελεγχθούν οι μπαταρίες Li-ion και Li-pol με αυτόν τον μετρητή;

Χαιρετισμούς, πολίτες της Δαταγοριάς! Επιτρέψτε μου να σας παρουσιάσω την επόμενη δημιουργία μου - έναν ελεγκτή χωρητικότητας μπαταρίας. Η συσκευή, φυσικά, δεν είναι για κάθε μέρα, αλλά μερικές φορές δεν μπορείτε να κάνετε χωρίς αυτήν!

Χρειάστηκε να μετρήσω την υπολειπόμενη χωρητικότητα της μπαταρίας οξέος, το χειμώνα, τελικά, κάθε Αμπέρ μετράει, ίσως ήρθε η ώρα να αντικαταστήσω την μπαταρία; Απλές δοκιμές με πιρούνι φορτίου και μετρήσεις πυκνότητας δεν μου έδωσαν πληροφορίες για το αν θα είχα αρκετή ενέργεια για να ζεστάνω το αυτοκίνητο για 40 λεπτά στο RV (περίπου 8 A/h) και μετά να ξεκινήσω το αυτοκίνητο. με τη μίζα.

Κύκλωμα ελέγχου χωρητικότητας μπαταρίας

Όπως κάθε παιδί, έτσι και αυτό γεννήθηκε με πόνο. Κυρίως λόγω των λαθών του «μαιευτήρα».

Εξαιρείται το τμήμα. Το περιοδικό μας υπάρχει με δωρεές αναγνωστών. Η πλήρης έκδοση αυτού του άρθρου είναι διαθέσιμη μόνο



Ελεγκτής ελεγχόμενης εκκένωσης



Τοποθέτηση ασφαλειών κατά τον προγραμματισμό του ATmega8A MK


5. Όλες οι αξιολογήσεις ανταλλακτικών υποδεικνύονται στο λογισμικό.

--
Σας ευχαριστώ για την προσοχή σας!
Igor Kotov, αρχισυντάκτης του περιοδικού Datagor


Πλακέτα τυπωμένου κυκλώματος σε LayOut: ▼ 🕗 24/10/14 ⚖️ 144,03 Kb ⇣ 124 Γεια σου αναγνώστη!Το όνομά μου είναι Igor, είμαι 45, είμαι Σιβηρίας και μανιώδης ερασιτέχνης ηλεκτρονικός μηχανικός. Βρήκα, δημιούργησα και διατηρώ αυτόν τον υπέροχο ιστότοπο από το 2006.
Για περισσότερα από 10 χρόνια, το περιοδικό μας υπάρχει μόνο με δικά μου έξοδα.

Καλός! Το freebie τελείωσε. Αν θέλετε αρχεία και χρήσιμα άρθρα, βοηθήστε με!

Πρόσφατα, άρχισα να παρατηρώ ότι το smartphone μου άρχισε να αποφορτίζεται πιο γρήγορα. Η αναζήτηση για ένα λογισμικό "energy eater" δεν απέδωσε καρπούς, οπότε άρχισα να αναρωτιέμαι αν ήρθε η ώρα να αντικαταστήσω την μπαταρία. Αλλά δεν υπήρχε απόλυτη βεβαιότητα ότι η μπαταρία ήταν η αιτία. Επομένως, πριν παραγγείλω μια νέα μπαταρία, αποφάσισα να προσπαθήσω να μετρήσω την πραγματική χωρητικότητα της παλιάς. Για να γίνει αυτό, αποφασίστηκε να συναρμολογηθεί ένας απλός μετρητής χωρητικότητας μπαταρίας, ειδικά επειδή αυτή η ιδέα είχε επωαστεί για μεγάλο χρονικό διάστημα - υπάρχουν πολλές μπαταρίες και συσσωρευτές που μας περιβάλλουν στην καθημερινή ζωή και θα ήταν ωραίο να μπορέσουμε να τα δοκιμάζω κατά καιρούς.

Η ίδια η ιδέα στην οποία βασίζεται η λειτουργία της συσκευής είναι εξαιρετικά απλή: υπάρχει μια φορτισμένη μπαταρία και ένα φορτίο με τη μορφή αντίστασης υπολογίστε τη χωρητικότητά του. Κατ 'αρχήν, μπορείτε να τα βγάλετε πέρα ​​με ένα βολτόμετρο και ένα αμπερόμετρο, αλλά το να κάθεστε πολλές ώρες στα όργανα είναι μια αμφίβολη ευχαρίστηση, επομένως μπορείτε να το κάνετε πολύ πιο εύκολα και με μεγαλύτερη ακρίβεια χρησιμοποιώντας ένα καταγραφικό δεδομένων. Χρησιμοποίησα την πλατφόρμα Arduino Uno ως τέτοια συσκευή εγγραφής.

1. Σχέδιο

Δεν υπάρχουν προβλήματα με τη μέτρηση της τάσης και του χρόνου στο Arduino - υπάρχει ADC, αλλά για να μετρήσετε το ρεύμα χρειάζεστε διακλάδωση. Είχα την ιδέα να χρησιμοποιήσω την ίδια την αντίσταση φορτίου ως διακλάδωση. Δηλαδή, γνωρίζοντας την τάση σε αυτό και έχοντας προηγουμένως μετρήσει την αντίσταση, μπορούμε πάντα να υπολογίσουμε το ρεύμα. Επομένως, η απλούστερη έκδοση του κυκλώματος θα αποτελείται μόνο από ένα φορτίο και μια μπαταρία, συνδεδεμένα στην αναλογική είσοδο του Arduino. Αλλά θα ήταν ωραίο να προβλεφθεί η απενεργοποίηση του φορτίου όταν επιτευχθεί η οριακή τάση στην μπαταρία (για Li-Ion αυτή είναι συνήθως 2,5-3V). Ως εκ τούτου, συμπεριέλαβα ένα ρελέ στο κύκλωμα, που ελέγχεται από την ψηφιακή ακίδα 7 μέσω ενός τρανζίστορ. Η τελική έκδοση του κυκλώματος φαίνεται στο παρακάτω σχήμα.

Τοποθέτησα όλα τα στοιχεία του κυκλώματος σε ένα κομμάτι breadboard, το οποίο είναι εγκατεστημένο απευθείας στο Uno. Ως φορτίο χρησιμοποίησα μια σπείρα από σύρμα nichrome πάχους 0,5 mm, με αντίσταση περίπου 3 Ohms. Αυτό δίνει ένα υπολογισμένο ρεύμα εκφόρτισης 0,9-1,2A.

2. Μέτρηση ρεύματος

Όπως αναφέρθηκε παραπάνω, το ρεύμα υπολογίζεται με βάση την τάση στη σπείρα και την αντίστασή της. Αλλά αξίζει να ληφθεί υπόψη ότι η σπείρα θερμαίνεται και η αντίσταση του νιχρώμου εξαρτάται πολύ έντονα από τη θερμοκρασία. Για να αντισταθμίσω το σφάλμα, απλώς έλαβα το χαρακτηριστικό ρεύμα-τάσης του πηνίου χρησιμοποιώντας ένα εργαστηριακό τροφοδοτικό και το άφησα να ζεσταθεί πριν από κάθε μέτρηση. Στη συνέχεια, δημιούργησα την εξίσωση γραμμής τάσης στο Excel (παρακάτω γράφημα), η οποία δίνει μια αρκετά ακριβή εξάρτηση i(u) λαμβάνοντας υπόψη τη θέρμανση. Φαίνεται ότι η γραμμή δεν είναι ευθεία.

3. Μέτρηση τάσης

Δεδομένου ότι η ακρίβεια αυτού του ελεγκτή εξαρτάται άμεσα από την ακρίβεια της μέτρησης της τάσης, αποφάσισα να δώσω ιδιαίτερη προσοχή σε αυτό. Άλλα άρθρα έχουν ήδη αναφέρει επανειλημμένα μια μέθοδο που σας επιτρέπει να μετράτε με μεγαλύτερη ακρίβεια την τάση με ελεγκτές Atmega. Θα επαναλάβω μόνο εν συντομία - η ουσία είναι να προσδιορίσετε την εσωτερική τάση αναφοράς χρησιμοποιώντας τον ίδιο τον ελεγκτή. Χρησιμοποίησα τα υλικά σε αυτό το άρθρο.

4. Πρόγραμμα

Ο κώδικας δεν είναι κάτι περίπλοκο:

Κείμενο προγράμματος

#define A_PIN 1 #define NUM_READS 100 #define pinRelay 7 const float typVbg = 1.095; // 1,0 -- 1,2 float Voff = 2,5; // Τάση διακοπής λειτουργίας float I; float cap = 0; float V; float Vcc; floatWh = 0; ανυπόγραφο μακρύ prevMillis? ανυπόγραφο μακρύ testStart? void setup() ( Serial.begin(9600); pinMode(pinRelay, OUTPUT); Serial.println("Πατήστε οποιοδήποτε πλήκτρο για να ξεκινήσετε τη δοκιμή..."); ενώ (Serial.available() == 0) ( ) Serial.println("Serial.print"); Vcc"); digitalWrite(pinRelay, HIGH); testStart = millis(); prevMillis = millis(); void loop() ( Vcc = readVcc(); //read reference τάσης V = (readAnalog(A_PIN) ) * Vcc) / 1023.000, //διαβάζοντας την τάση της μπαταρίας εάν (V > 0,01) I = -13,1 * V + 344,3 * V + 23,2 //υπολογισμός του ρεύματος σύμφωνα με το χαρακτηριστικό I-V της σπείρας; millis() - prevMillis) / 3600000 //υπολογισμός της χωρητικότητας της μπαταρίας σε mAh Wh += I * V * (millis() - prevMillis) //υπολογισμός της χωρητικότητας της μπαταρίας σε Wh prevMillis (); // αποστολή δεδομένων στη σειριακή θύρα εάν (V< Voff) { //выключение нагрузки при достижении порогового напряжения digitalWrite(pinRelay, LOW); Serial.println("Test is done"); while (2 >1) ( ) ) ) void sendData() ( Serial.print((millis() - testStart) / 1000); Serial.print(" "); Serial.print(V, 3); Serial.print(" ") Serial.print(I, 1 Serial.print, 0 Serial.println(Vcc, 3)); Τιμές και ταξινομήστε τις για να λάβετε τη λειτουργία int sortedValues ​​για (int i = 0; i< NUM_READS; i++) { delay(25); int value = analogRead(pin); int j; if (value < sortedValues || i == 0) { j = 0; //insert at first position } else { for (j = 1; j < i; j++) { if (sortedValues <= value && sortedValues[j] >= τιμή) ( / j είναι αλλαγή θέσης εισαγωγής; ) ) ) για (int k = i; k >< (NUM_READS / 2 + 5); i++) { returnval += sortedValues[i]; } return returnval / 10; } float readVcc() { // read multiple values and sort them to take the mode float sortedValues; for (int i = 0; i < NUM_READS; i++) { float tmp = 0.0; ADMUX = _BV(REFS0) | _BV(MUX3) | _BV(MUX2) | _BV(MUX1); ADCSRA |= _BV(ADSC); // Start conversion delay(25); while (bit_is_set(ADCSRA, ADSC)); // measuring uint8_t low = ADCL; // must read ADCL first - it then locks ADCH uint8_t high = ADCH; // unlocks both tmp = (high << 8) | low; float value = (typVbg * 1023.0) / tmp; int j; if (value < sortedValues || i == 0) { j = 0; //insert at first position } else { for (j = 1; j < i; j++) { if (sortedValues <= value && sortedValues[j] >= τιμή) ( // j είναι αλλαγή θέσης εισαγωγής; ) ) ) για (int k = i; k > j; k--) ( // μετακινήστε όλες τις τιμές υψηλότερα από την τρέχουσα ανάγνωση προς τα πάνω κατά μία θέση ταξινομημένεςΤιμές[k ] = sortedValues ​​) sortedValues[j] = value; //εισαγωγή τρέχουσας ένδειξης ) //return κλιμακούμενη λειτουργία 10 τιμών float returnval = 0; για (int i = NUM_READS / 2 - 5; i< (NUM_READS / 2 + 5); i++) { returnval += sortedValues[i]; } return returnval / 10; }

Κάθε 5 δευτερόλεπτα, δεδομένα σχετικά με το χρόνο, την τάση της μπαταρίας, το ρεύμα εκφόρτισης, τη χωρητικότητα ρεύματος σε mAh και Wh και την τάση τροφοδοσίας μεταδίδονται στη σειριακή θύρα. Το ρεύμα υπολογίζεται χρησιμοποιώντας τη συνάρτηση που ελήφθη στο βήμα 2. Όταν επιτευχθεί η οριακή τάση Voff, η δοκιμή σταματά.
Κατά τη γνώμη μου, το μόνο ενδιαφέρον σημείο στον κώδικα είναι η χρήση ψηφιακού φίλτρου. Το γεγονός είναι ότι κατά την ανάγνωση της τάσης, οι τιμές αναπόφευκτα "χορεύουν" πάνω-κάτω. Στην αρχή προσπάθησα να μειώσω αυτό το αποτέλεσμα κάνοντας απλώς 100 μετρήσεις σε 5 δευτερόλεπτα και λαμβάνοντας τον μέσο όρο. Όμως το αποτέλεσμα και πάλι δεν με ικανοποίησε. Κατά τις αναζητήσεις μου, συνάντησα ένα τέτοιο φίλτρο λογισμικού. Λειτουργεί με παρόμοιο τρόπο, αλλά αντί να υπολογίζει τον μέσο όρο, ταξινομεί και τις 100 τιμές μέτρησης σε αύξουσα σειρά, επιλέγει το κεντρικό 10 και υπολογίζει τον μέσο όρο τους. Το αποτέλεσμα με εντυπωσίασε - οι διακυμάνσεις των μετρήσεων σταμάτησαν εντελώς. Αποφάσισα να το χρησιμοποιήσω για να μετρήσω την εσωτερική τάση αναφοράς (συνάρτηση readVcc στον κώδικα).

5. Αποτελέσματα

Τα δεδομένα από την οθόνη σειριακής θύρας εισάγονται στο Excel με μερικά κλικ και μοιάζουν με αυτό:

Στην περίπτωση του Nexus 5 μου, η δηλωμένη χωρητικότητα της μπαταρίας BL-T9 είναι 2300 mAh. Αυτό που μέτρησα είναι 2040 mAh με εκφόρτιση έως και 2,5 V. Στην πραγματικότητα, ο ελεγκτής είναι απίθανο να επιτρέψει στην μπαταρία να αδειάσει σε τόσο χαμηλή τάση, πιθανότατα η τιμή κατωφλίου είναι 3V. Η χωρητικότητα σε αυτή την περίπτωση είναι 1960 mAh. Ενάμιση χρόνο τηλεφωνικής εξυπηρέτησης οδήγησε σε απώλεια χωρητικότητας κατά περίπου 15%. Αποφασίστηκε να σταματήσει η αγορά μιας νέας μπαταρίας.
Χρησιμοποιώντας αυτόν τον ελεγκτή, αρκετές άλλες μπαταρίες Li-Ion έχουν ήδη αποφορτιστεί. Τα αποτελέσματα φαίνονται πολύ ρεαλιστικά. Η μετρούμενη χωρητικότητα των νέων μπαταριών συμπίπτει με τη δηλωμένη χωρητικότητα με απόκλιση μικρότερη από 2%.
Αυτός ο ελεγκτής είναι επίσης κατάλληλος για μπαταρίες AA υδριδίου μετάλλου. Το ρεύμα εκφόρτισης σε αυτή την περίπτωση θα είναι περίπου 400 mA.