Inhaltsverzeichnis:

Arduino Batterietester mit WEB-Benutzeroberfläche. - Gunook
Arduino Batterietester mit WEB-Benutzeroberfläche. - Gunook

Video: Arduino Batterietester mit WEB-Benutzeroberfläche. - Gunook

Video: Arduino Batterietester mit WEB-Benutzeroberfläche. - Gunook
Video: 🌎 Просто о том, как за 8 минут сделать WEB-сервер для Arduino на Ethernet shield W5100 своими руками 2024, Juli
Anonim
Arduino Batterietester mit WEB-Benutzeroberfläche
Arduino Batterietester mit WEB-Benutzeroberfläche

Heutzutage verwenden elektronische Geräte Pufferbatterien, um den Zustand zu speichern, in dem der Betrieb beim Ausschalten des Geräts oder beim versehentlichen Ausschalten des Geräts belassen wurde. Der Benutzer kehrt beim Einschalten an den Punkt zurück, an dem er sich aufgehalten hat, und verschwendet somit weder Zeit noch die Reihenfolge der Ausführung seiner Aufgaben.

Schritt 1: Einführung

Einführung
Einführung

Ich mache ein Projekt, um den Zustand von Batterien mit unterschiedlichen Kapazitäten und Spannungen mit der Methode zu messen: Zweistufige DC-Last. Bei dieser Methode wird der Batterie 10 Sekunden lang ein kleiner Strom und 3 Sekunden lang ein hoher Strom entnommen (IEC 61951-1: 2005 Standards). Aus dieser Messung wird der Innenwiderstand und damit sein Zustand berechnet.

Die Workstation besteht aus mehreren Anschlüssen, einem für jeden Batterietyp, und einem PC. Dazu ist eine Benutzeroberfläche (UI) notwendig. Der wichtigste Teil dieses Tutorials ist die Benutzeroberfläche, da diese Methoden des Batterietests in anderen Anleitungen beschrieben wurden. Ich versuchte Processing und erzielte gute Ergebnisse, entschied mich aber, meine eigene Software mit einem lokalen Webserver zu erstellen und das Potenzial von HTML, CSS und PHP zu nutzen.

Es ist bekannt, dass es sehr schwierig ist, Informationen von Arduino an einen Windows-PC zu senden, aber am Ende ist es mir gelungen. Alle Programme sind in diesem Tutorial enthalten.

Schritt 2: Was wir messen und wie

Was wir messen und wie
Was wir messen und wie
Was wir messen und wie
Was wir messen und wie

Interner Widerstand.

Jede echte Batterie hat einen Innenwiderstand. Wir gehen immer davon aus, dass es sich um eine ideale Spannungsquelle handelt, das heißt, wir können viel Strom bekommen, wenn die Nennspannung konstant bleibt. Batteriegröße, chemische Eigenschaften, Alter und Temperatur beeinflussen jedoch alle die Strommenge, die eine Batterie liefern kann. Als Ergebnis können wir ein besseres Modell einer Batterie mit einer idealen Spannungsquelle und einem Widerstand in Reihe erstellen, wie in Abb. 1 gezeigt.

Eine Batterie mit niedrigem Innenwiderstand kann mehr Strom liefern und hält kalt, eine Batterie mit hohem Widerstand bewirkt jedoch eine Erwärmung der Batterie und einen Spannungsabfall unter Last, was eine vorzeitige Abschaltung auslöst.

Der Innenwiderstand kann aus der Strom-Spannungs-Beziehung berechnet werden, die durch zwei Punkte in einer Entladekurve gegeben ist.

Die zweistufige DC-Lastmethode bietet eine alternative Methode, indem zwei sequentielle Entladelasten mit unterschiedlichen Strömen und Zeitdauern angewendet werden. Die Batterie entlädt sich zuerst 10 Sekunden lang bei niedrigem Strom (0,2 C), gefolgt von 3 Sekunden bei höherem Strom (2 C) (siehe Abbildung 2); das Ohmsche Gesetz berechnet die Widerstandswerte. Die Auswertung der Spannungssignatur unter den beiden Lastbedingungen bietet zusätzliche Informationen über die Batterie, aber die Werte sind streng ohmsch und geben keinen Aufschluss über den Ladezustand (SoC) oder die Kapazitätsschätzungen. Der Lasttest ist die bevorzugte Methode für Batterien, die Gleichstromlasten versorgen.

Wie bereits erwähnt, gibt es viele Methoden zum Messen von Batterien, die in anderen Anleitungen behandelt werden und die mit dem Arduino implementiert werden können. In diesem Fall bietet es jedoch keine vollständige Bewertung des Batteriezustands, aber Werte, die sein können verwendet, um ihr zukünftiges Verhalten abzuschätzen.

Der Innenwiderstand ergibt sich aus der Beziehung

Woher

Ri = (V1 - V2) / (I2 - I1)

?1-Spannung wird bei niedrigem Strom und längerem Zeitpunkt gemessen;

?2-Spannung gemessen während des hohen Stroms und des kürzeren Zeitpunkts;

?1 - Strom während längerer Zeit;

?2 - Strom während des kürzeren Zeitpunkts.

Schritt 3: Schaltung

Schaltkreis
Schaltkreis
Schaltkreis
Schaltkreis
Schaltkreis
Schaltkreis

Die Schaltung ist eine Stromquelle, die 0,2 C (in diesem Fall 4 mA) und 2 C (in diesem Fall 40 mA) aus Batterien zieht, wobei nur eine Schaltung verwendet wird, die mit dem PWM-Signal von Arduino gesteuert wird. Auf diese Weise ist es möglich, alle Pufferbatterien mit C = 20mAh zu messen, unabhängig von deren Spannung im Bereich von 1,2V bis 4,8V und auch andere Batterien mit einer anderen Kapazität. In der ersten Version habe ich zwei Transistoren mit jeweils einer Last verwendet, um 4 mA und die anderen 40 mA abzuleiten. Diese Variante war für die Zukunft nicht geeignet, da man andere Batterien mit anderen Kapazitäten messen wollte und dieses Schema eine große Anzahl von Widerständen und Transistoren erforderte.

Die Schaltung mit einer Stromquelle ist in Abb. 3 dargestellt. Die Frequenz des PWM-Signals von Pin 5 des Arduino-Boards beträgt 940 Hz, deshalb beträgt der Fc des Tiefpassfilters (LPF) 8 Hz, was bedeutet, dass die erste Harmonische von Das PWM-Signal (940 Hz) wird um 20 dB gedämpft, da die RC-Filter eine Dämpfung von 10 dB pro Dekade bieten (alle 10 mal Fc – die Dämpfung beträgt 10 dB bei 80 Hz und 20 dB bei 800 Hz). Der Transistor IRFZ44n ist überdimensioniert, da zukünftig Batterien mit größerer Kapazität getestet werden. Der LM58n, dualer Operationsverstärker (OA), ist die Schnittstelle zwischen dem Arduino-Board und dem IRFZ44n. Der LPF wurde zwischen den 2 Operationsverstärkern eingefügt, um eine gute Entkopplung zwischen Mikroprozessor und Filter zu gewährleisten. In Abb. 3 ist Pin A1 von Arduino mit der Quelle des Transistors IRFZ44n verbunden, um den Strom aus der Batterie zu überprüfen.

Die Schaltung besteht aus 2 Teilen, unterhalb der Arduino UNO-Platine und oberhalb der Stromquelle, wie im nächsten Foto gezeigt. Wie Sie sehen können, gibt es in dieser Schaltung weder Schalter noch Knöpfe, sie befinden sich in der Benutzeroberfläche des PCs.

Diese Schaltung ermöglicht auch die Messung der Batteriekapazität in mAh, da sie über eine Stromquelle verfügt und das Arduino-Board über einen Timer verfügt.

Schritt 4: Programme

Programme
Programme
Programme
Programme
Programme
Programme
Programme
Programme

Wie oben erwähnt, hat die Anwendung auf der einen Seite eine mit HTML, CSS erstellte Benutzeroberfläche und auf der anderen Seite die Arduino-Skizze. Die Schnittstelle ist vorerst extrem einfach, da sie nur die Messung des Innenwiderstands durchführt, in Zukunft wird sie mehr Funktionen erfüllen.

Auf der ersten Seite befindet sich eine Dropdown-Liste, aus der der Benutzer die zu messende Spannung der Batterie auswählt (Abb. 4). Das HTML-Programm der ersten Seite heißt BatteryTesterInformation.html. Alle Akkus haben eine Kapazität von 20mAh.

Zweite Seite, BatteryTesterMeasurement.html.

Auf der zweiten Seite wird der Akku an den angezeigten Anschluss angeschlossen und die Messung gestartet (START-Taste). Im Moment ist diese LED nicht enthalten, da sie nur einen Anschluss hat, aber in Zukunft werden sie mehr Anschlüsse haben.

Sobald die Schaltfläche START geklickt wird, beginnt die Kommunikation mit dem Arduino-Board. Auf derselben Seite wird das Formular Messergebnisse angezeigt, wenn das Arduino-Board die Ergebnisse des Batterietests sendet und die Schaltflächen START und CANCEL ausgeblendet sind. Die BACK-Taste wird verwendet, um den Test einer anderen Batterie zu starten.

Die Funktion des nächsten Programms, PhpConnect.php, besteht darin, sich mit dem Arduino-Board zu verbinden, Daten von Arduino-Boards und Webserver zu übertragen und zu empfangen.

Hinweis: Die Übertragung vom PC zum Arduino ist schnell, aber die Übertragung vom Arduino zum PC hat eine Verzögerung von 6 Sekunden. Ich versuche, diese nervige Situation zu lösen. Bitte, jede Hilfe wird sehr geschätzt.

Und die Arduino-Skizze BatteryTester.ino.

Wenn der resultierende Innenwiderstand doppelt so groß ist wie der ursprüngliche (neue Batterie), ist die Batterie defekt. Das heißt, wenn die zu testende Batterie 10 Ohm oder mehr hat und diese Art von Batterie laut Spezifikation 5 Ohm haben sollte, ist diese Batterie schlecht.

Diese Benutzeroberfläche wurde ohne Probleme mit FireFox und Google getestet. Ich habe xampp und wampp installiert und es läuft in beiden gut.

Schritt 5: Fazit

Diese Art der Entwicklung mit einer Benutzeroberfläche am PC hat viele Vorteile, da sie dem Anwender ein besseres Verständnis seiner Arbeit ermöglicht und den Einsatz teurer Komponenten vermeidet, die eine mechanische Interaktion erfordern und damit anfällig für Brüche sind.

Der nächste Schritt dieser Entwicklung besteht darin, Anschlüsse hinzuzufügen und einige Teile der Schaltung zu modifizieren, um andere Batterien zu testen, und auch ein Batterieladegerät hinzuzufügen. Danach wird die Leiterplatte entworfen und bestellt.

Die Benutzeroberfläche wird weitere Änderungen haben, um die Seite des Batterieladegeräts einzuschließen

Bitte zögern Sie nicht, jede Idee, Verbesserung oder Korrektur zu kommentieren, um diese Arbeit zu verbessern. Auf der anderen Seite, wenn Sie Fragen haben, fragen Sie mich, ich werde sie so schnell wie möglich beantworten.

Empfohlen: