Inhaltsverzeichnis:

Batterieprüfer mit Temperatur- und Batterieauswahl - Gunook
Batterieprüfer mit Temperatur- und Batterieauswahl - Gunook

Video: Batterieprüfer mit Temperatur- und Batterieauswahl - Gunook

Video: Batterieprüfer mit Temperatur- und Batterieauswahl - Gunook
Video: Wie man Batterien (richtig) mit dem Multimeter misst 2024, Juli
Anonim
Image
Image
Vom Basisprojekt wechseln
Vom Basisprojekt wechseln

Batteriekapazitätstester.

Mit diesem Gerät können Sie die Kapazität von 18650-Batterien, Säure und anderen überprüfen (die größte Batterie, die ich getestet habe. Es ist eine 6-V-Säurebatterie 4, 2A). Das Ergebnis des Tests ist in Milliampere/Stunden.

Ich erstelle dieses Gerät, weil ich es brauche, um die Kapazität der gefälschten China-Batterie zu überprüfen.

Aus Sicherheitsgründen habe ich mit einem Thermistor die Temperatur des Leistungswiderstands und der Batterie hinzugefügt, um zu verhindern, dass sie zu heiß werden und das Gerät warten 20 Sekunden, um die Temperatur zu senken).

Ich wähle kleinen Mikrocontroller atmega328 kompatibles Nano (eBay).

Der ganze Code ist hier.

Schritt 1: Wechsel vom Basisprojekt

Ich habe die Idee aus dem Projekt von OpenGreenEnergy gestohlen und ich überarbeite das Board, um Funktionen hinzuzufügen, also werde ich jetzt allgemeiner.

v0.1

  • VCC von Arduino wird jetzt automatisch berechnet;
  • Variable hinzugefügt, um die Einstellung bequemer zu ändern.
  • Prozentsatz der Entladung hinzugefügt
  • Temperatur von Batterie und Leistungswiderstand hinzugefügt

v0.2

  • Möglichkeit der Batterieauswahl hinzugefügt
  • Prototypenplatine erstellt (siehe Schaltplan), mit Bildschirm, Schaltfläche und Lautsprecher außerhalb der Platine, da ich in Zukunft ein Paket erstellen möchte.
  • Verwaltung der Temperaturgrenze zum Leistungswiderstand hinzugefügt, damit ich den Prozess blockieren kann, wenn die Temperatur über 70° ansteigt (über diese Temperatur-Leistungswiderstandsreduzierung).

v0.3

In Kürze ein Board von diesem Dienst

Schritt 2: V0.2 des Boards

V0.2 des Vorstandes
V0.2 des Vorstandes

In v0.2 habe ich zur Unterstützung verschiedener Batterietypen eine Struktur erstellt, die mit dem Batterienamen, der Mindestspannung und der Höchstspannung gefüllt werden muss (ich brauche Hilfe beim Füllen:P).

// Aufbau des Batterietypsstruct BatteryType { char name[10]; Schwimmer maxVolt; Schwimmer minVolt; }; #define BATTERY_TYPE_NUMBER 4 BatteryType BatteryTypes[BATTERY_TYPE_NUMBER] = { { "18650", 4.3, 2.9 }, { "17550", 4.3, 2.9 }, { "14500", 4.3, 2.75 }, { "6v Säure", 6.50, 5.91 } };

Jetzt verwende ich einen Satz von 10k-Widerständen für den Spannungsteiler, um die doppelte Temperatur des Analogeingangs zu lesen. Wenn Sie die Spannungsunterstützung ändern möchten, müssen Sie diesen Wert ändern (erklären Sie es als nächstes besser):

// Batteriespannungsfestigkeit

#define BAT_RES_VALUE_GND 10.0 #define BAT_RES_VALUE_VCC 10.0 // Spannungswiderstand Leistungswiderstand #define RES_RES_VALUE_GND 10.0 #define RES_RES_VALUE_VCC 10.0

Wenn Sie keinen Thermistor verwenden, setzen Sie dies auf false:

#define USING_BATTERY_TERMISTOR wahr

#define USING_RESISTO_TERMISTOR wahr

Wenn Sie ein anderes i2c-Display verwenden, müssen Sie diese Methode neu schreiben:

Unentschieden (Unentschieden)

Im Projekt finden Sie Fritzing-Schaltpläne, Fotos und mehr.

Schritt 3: Steckbrett: I2c Character Display Controller erweitert

Steckbrett: I2c Character Display Controller erweitert
Steckbrett: I2c Character Display Controller erweitert

Ich habe eine generische Zeichenanzeige verwendet und den i2c-Controller gebaut und mit meiner benutzerdefinierten Bibliothek verwendet.

Wer möchte, kann aber einen normalen i2c-Controller (unter 1€) mit einer Standardbibliothek nehmen, der Code bleibt gleich. Der gesamte Anzeigecode befindet sich in der Zeichenfunktion, sodass Sie dies ändern können, ohne andere Dinge zu ändern.

Hier besser erklärt.

Schritt 4: Steckbrett: Zeichenanzeige mit integriertem I2c

Steckbrett: Zeichenanzeige mit integriertem I2c
Steckbrett: Zeichenanzeige mit integriertem I2c

Das gleiche Schema ohne i2c-gesteuert erweitert.

Schritt 5: Realisierung

Zur Spannungsmessung verwenden wir das Prinzip eines Spannungsteilers (mehr Informationen auf Wikipedia).

In einfachen Worten ist dieser Code der Multiplikatorfaktor zum Messen der Batteriespannung.

batResValueGnd / (batResValueVolt + batResValueGnd)

Ich habe die 2 Widerstände von batResValueVolt und batResValueGnd nach und vor dem analogen Lesedraht eingefügt.

batVolt = (sample1 / (1023.0 - ((BAT_RES_VALUE_GND / (BAT_RES_VALUE_VCC + BAT_RES_VALUE_GND)) * 1023.0))) * vcc;

Sample1 ist der durchschnittliche Analogwert;

vcc-Referenz-Arduino-Spannung;

1023.0 ist der Referenz-Maximalwert des analogen Lesens (Arduino analoges Lesen geht von 0 bis 1023).

Um die Stromstärke zu erhalten, benötigen Sie eine Spannung nach und vor dem Leistungswiderstand.

Wenn Sie die Spannung nach und vor dem Leistungswiderstand messen lassen, können Sie Milliampere berechnen, die die Batterie verbraucht.

Der MOSFET wird verwendet, um die Batterieentladung vom Leistungswiderstand zu starten und zu stoppen.

Zur Sicherheit habe ich 2 Thermistoren eingefügt, um die Temperatur der Batterie und des Leistungswiderstands zu überwachen.

Schritt 6: Erweiterbarkeit

Erweiterbarkeit
Erweiterbarkeit
Erweiterbarkeit
Erweiterbarkeit

Ich versuche, eine Prototypenplatine zu erstellen, die erweiterbar ist, aber im Moment verwende ich nur einen minimalen Satz von Pins (in Zukunft werde ich LEDs und andere Tasten hinzufügen).

Wenn Sie eine Stützspannung von mehr als 10 V wünschen, müssen Sie den Widerstandswert der Batterie und den Widerstand gemäß der Formel ändern

(BAT_RES_VALUE_GND / (BAT_RES_VALUE_VCC + BAT_RES_VALUE_GND)

im Schema Widerstandsleistungsspannung

Widerstandsleistungsspannung GND 1/2 / (Widerstandsleistungsspannung 2/2 + Widerstandsleistungsspannung GND 1/2)

Pink ist am Löten

Schritt 7: Liste der Teile

Menge Teiletyp-Eigenschaften

  • 2 5mm Schraubklemme Leiterplattenmontage Schraubklemme 8A 250V LW SZUS (eBay)
  • 1 Arduino Pro Mini-Klon (kompatibler Nano) (eBay)
  • 1 Basis-FET P-Kanal IRF744N oder IRLZ44N (eBay)
  • 11 10kΩ Widerstandswiderstand 10kΩ (eBay)
  • 2 Temperatursensor (Thermistor) 10kΩ; (Ebay)
  • * Generische männliche Kopfform ♂ (männlich); (Ebay)
  • * Generische weibliche Kopfform ♀ (weiblich); (Ebay)
  • 1 PerfBoard-Platine Prototypenplatine 24x18 (eBay)
  • 10R, 10W

    Leistungswiderstand (eBay) Ich finde meinen in einem alten CRT-Fernseher.

Schritt 8: Platine: Zurücksetzen, Gnd E-Taste zum Auswählen der Batterie

Platine: Reset, Gnd E-Taste zum Auswählen der Batterie
Platine: Reset, Gnd E-Taste zum Auswählen der Batterie

Im linken Teil der Pins finden Sie die Taste und den Summer.

Ich verwende 3 Tasten:

  1. eine zum Wechseln des Batterietyps;
  2. eine zum Starten des Entladens der ausgewählten Batterie;
  3. Dann verwende ich den Reset-Pin, um alle neu zu starten und den neuen Vorgang zu aktivieren.

Alle Pins sind bereits heruntergezogen, also müssen Sie mit VCC aktivieren

Reset wird mit GND aktiviert

Pink ist am Löten

Schritt 9: Platine: I2c und Netzteilpins

Platine: I2c- und Netzteil-Pins
Platine: I2c- und Netzteil-Pins

An der Basis können Sie die VCC, GND und SDA, SCL für die Anzeige (und andere in Zukunft) sehen.

Pink ist am Löten

Schritt 10: Platine: Thermistor und Messspannung

Platine: Thermistor und Messspannung
Platine: Thermistor und Messspannung

Auf der rechten Seite befinden sich Pins zum Lesen des Thermistorwerts, einer für den Leistungswiderstandsthermistor und der andere für den Batteriethermistor (männliche/weibliche Pins zum Anschließen).

Dann gibt es analoge Pins, die die Differenzspannung nach und vor dem Leistungswiderstand messen.

Pink ist am Löten

Schritt 11: Platine: Widerstand zum Messen der Spannung

Platine: Widerstand zur Messung der Spannung
Platine: Widerstand zur Messung der Spannung
Platine: Widerstand zum Messen der Spannung
Platine: Widerstand zum Messen der Spannung

Hier sehen Sie den Widerstand, der eine doppelte Spannung als den Arduino-Pin (10 V) unterstützt. Sie müssen dies ändern, um mehr Spannung zu unterstützen.

Pink ist am Löten

Schritt 12: Lötschritt: Alle Pins

Lötschritt: Alle Pins
Lötschritt: Alle Pins
Lötschritt: Alle Pins
Lötschritt: Alle Pins

Zuerst füge ich alle Pins hinzu und löte es.

Schritt 13: Lötschritte: Pulldown-Widerstand und Thermistor

Lötschritte: Pulldown-Widerstand und Thermistor
Lötschritte: Pulldown-Widerstand und Thermistor
Lötschritte: Pulldown-Widerstand und Thermistor
Lötschritte: Pulldown-Widerstand und Thermistor

Dann füge ich alle Pulldown-Widerstände (für Tasten) und den i2c-Anschluss (Display) hinzu.

Dann der Leistungswiderstandsthermistor Es ist sehr wichtig, dass die Säurebatterie zu heiß wird.

Schritt 14: Lötschritte: MOSFET, Widerstand zur Überprüfung der Spannung

Lötschritte: MOSFET, Widerstand gegen Prüfspannung
Lötschritte: MOSFET, Widerstand gegen Prüfspannung
Lötschritte: MOSFET, Widerstand gegen Prüfspannung
Lötschritte: MOSFET, Widerstand gegen Prüfspannung

Jetzt müssen wir einen Mosfet einfügen, um die Entladung zu aktivieren und den Widerstand zur Überprüfung der Spannung.

2 Widerstand für die Spannung vor dem Leistungswiderstand 2 Widerstand für die Spannung nach dem Leistungswiderstand, wenn Sie diese Spannung haben, können Sie den Milliampereverbrauch berechnen.

Schritt 15: Code

Der Mikrocontroller ist mit Nano kompatibel, daher müssen Sie Ihre IDE so einstellen, dass ein Arduino Nano hochgeladen wird.

Um zu arbeiten, müssen Sie Code aus meinem Github-Repository herunterladen.

Dann müssen Sie 3 Bibliotheken hinzufügen:

  1. Draht: Standard-Arduino-Bibliothek für das i2c-Protokoll;
  2. Termistor Library von hier nicht die Bibliothek, die Sie in arduino IDE finden, sondern meine Version;
  3. LiquidCrystal_i2c: Wenn Sie eine erweiterte / benutzerdefinierte Version des i2c-Adapters (meine Version) verwenden, müssen Sie die Bibliothek von hier herunterladen. Wenn Sie die Standardkomponente verwenden, können Sie die Bibliothek von arduino IDE nehmen, aber hier wird alles besser erklärt.

Ich teste LCD nicht mit Standardbibliothek. Es scheint mir, dass sie austauschbar sind, aber wenn es Probleme gibt, können Sie sich gerne an mich wenden.

Schritt 16: Ergebnis nach dem Zusammenbau

Image
Image
Ergebnis nach dem Zusammenbau
Ergebnis nach dem Zusammenbau
Ergebnis nach dem Zusammenbau
Ergebnis nach dem Zusammenbau

Das Basisboard ist auf dem Foto, dann können wir es testen.

Schritt 17: Wählen Sie zuerst den Batterietyp aus

Wählen Sie zuerst den Batterietyp
Wählen Sie zuerst den Batterietyp

Wie beschrieben haben wir eine Wertkarte mit Konfiguration der Batterie.

// Aufbau des Batterietypsstruct BatteryType { char name[10]; Schwimmer maxVolt; Schwimmer minVolt; }; #define BATTERY_TYPE_NUMBER 4 BatteryType BatteryTypes[BATTERY_TYPE_NUMBER] = { { "18650", 4.3, 2.9 }, { "17550", 4.3, 2.9 }, { "14500", 4.3, 2.75 }, { "6v Säure", 6.50, 5.91 } };

Schritt 18: Entladen starten

Entladen starten
Entladen starten
Entladen starten
Entladen starten

Klicken Sie auf die zweite Schaltfläche, um die Entladung zu starten.

Im Display sehen Sie aktuelles Milliampere, Milliampere/Stunden, Prozentsatz der Entladung, Batteriespannung und Temperatur von Leistungswiderstand und Batterie.

Schritt 19: Ausnahmen: Batterie entfernt

Image
Image
Ausnahmen: Temperaturalarm
Ausnahmen: Temperaturalarm

Wenn Sie den Akku entfernen, wird der Entladevorgang angehalten, wenn Sie ihn erneut einsetzen, wird er mit dem letzten Wert neu gestartet.

Schritt 20: Ausnahmen: Temperaturalarm

Ausnahmen: Temperaturalarm
Ausnahmen: Temperaturalarm
Ausnahmen: Temperaturalarm
Ausnahmen: Temperaturalarm
Ausnahmen: Temperaturalarm
Ausnahmen: Temperaturalarm

Wenn die Temperatur (Batterie oder Leistungswiderstand) zu heiß wird, wird der Entladevorgang unterbrochen.

#define BATTERY_MAX_TEMP 50

#define RESISTANCE_MAX_TEMP 69 // 70° auf Datenblatt (Derating Widerstände) #define TEMP_TO_REMOVE_ON_MAX_TEMP 20

Der Standardwert für die maximale Temperatur beträgt 50° für die Batterie und 69 für den Leistungswiderstand.

Wie Sie im Kommentar sehen können, wird der Leistungswiderstand bei Überschreiten von 70° von Derating beeinflusst.

Wenn die Warnung ausgelöst wird, starten Sie TEMP_TO_REMOVE_ON_MAX_TEMP Sekunden Pause, um die niedrige Temperatur einzustellen.

Schritt 21: Stromstärke testen

Prüfstromstärke
Prüfstromstärke

Das Ergebnis der Stromstärkeprüfung ist gut.

Schritt 22: Paket

Mit getrennten Komponenten ist das Paketergebnis einfach zu realisieren.

In einer Box muss ein Rechteck für das LCD, die Löcher für die Drucktasten und eine externe weibliche Buchse zur Spannungsversorgung vom Netzteil benötigt werden.

Der Druckknopf benötigt keinen Pull-Down-Widerstand, da ich ihn bereits an Bord hinzufüge.

Wenn ich etwas Zeit habe, erstelle und poste ich es.

Empfohlen: