Inhaltsverzeichnis:
- Schritt 1: Wechsel vom Basisprojekt
- Schritt 2: V0.2 des Boards
- Schritt 3: Steckbrett: I2c Character Display Controller erweitert
- Schritt 4: Steckbrett: Zeichenanzeige mit integriertem I2c
- Schritt 5: Realisierung
- Schritt 6: Erweiterbarkeit
- Schritt 7: Liste der Teile
- Schritt 8: Platine: Zurücksetzen, Gnd E-Taste zum Auswählen der Batterie
- Schritt 9: Platine: I2c und Netzteilpins
- Schritt 10: Platine: Thermistor und Messspannung
- Schritt 11: Platine: Widerstand zum Messen der Spannung
- Schritt 12: Lötschritt: Alle Pins
- Schritt 13: Lötschritte: Pulldown-Widerstand und Thermistor
- Schritt 14: Lötschritte: MOSFET, Widerstand zur Überprüfung der Spannung
- Schritt 15: Code
- Schritt 16: Ergebnis nach dem Zusammenbau
- Schritt 17: Wählen Sie zuerst den Batterietyp aus
- Schritt 18: Entladen starten
- Schritt 19: Ausnahmen: Batterie entfernt
- Schritt 20: Ausnahmen: Temperaturalarm
- Schritt 21: Stromstärke testen
- Schritt 22: Paket
Video: Batterieprüfer mit Temperatur- und Batterieauswahl - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:19
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
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
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
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
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
Im linken Teil der Pins finden Sie die Taste und den Summer.
Ich verwende 3 Tasten:
- eine zum Wechseln des Batterietyps;
- eine zum Starten des Entladens der ausgewählten Batterie;
- 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
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
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
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
Zuerst füge ich alle Pins hinzu und löte es.
Schritt 13: 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
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:
- Draht: Standard-Arduino-Bibliothek für das i2c-Protokoll;
- Termistor Library von hier nicht die Bibliothek, die Sie in arduino IDE finden, sondern meine Version;
- 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
Das Basisboard ist auf dem Foto, dann können wir es testen.
Schritt 17: Wählen Sie zuerst den Batterietyp aus
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
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
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
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
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:
Heimwerken -- Einen Spinnenroboter herstellen, der mit einem Smartphone mit Arduino Uno gesteuert werden kann – wikiHow
Heimwerken || Wie man einen Spider-Roboter herstellt, der mit einem Smartphone mit Arduino Uno gesteuert werden kann: Während man einen Spider-Roboter baut, kann man so viele Dinge über Robotik lernen. Wie die Herstellung von Robotern ist sowohl unterhaltsam als auch herausfordernd. In diesem Video zeigen wir Ihnen, wie Sie einen Spider-Roboter bauen, den wir mit unserem Smartphone (Androi
Einfaches BLE mit sehr geringem Stromverbrauch in Arduino Teil 2 - Temperatur- / Feuchtigkeitsmonitor - Rev 3: 7 Schritte
Easy Very Low Power BLE in Arduino Teil 2 – Temperatur-/Feuchtigkeitsmonitor – Rev 3: Update: 23. November 2020 – Erster Austausch von 2 x AAA-Batterien seit 15. Januar 2019 dh 22 Monate für 2x AAA AlkalineUpdate: 7. April 2019 – Rev 3 of lp_BLE_TempHumidity, fügt Datum/Uhrzeit-Plots hinzu, verwendet pfodApp V3.0.362+ und automatische Drosselung, wenn
Bewegungsaktivierte Cosplay Wings mit Circuit Playground Express - Teil 1: 7 Schritte (mit Bildern)
Bewegungsaktivierte Cosplay-Flügel mit Circuit Playground Express - Teil 1: Dies ist Teil 1 eines zweiteiligen Projekts, in dem ich Ihnen meinen Prozess zur Herstellung eines Paars automatisierter Feenflügel zeige. Der erste Teil des Projekts ist der Mechanik der Flügel, und der zweite Teil macht es tragbar und fügt die Flügel hinzu
M5STACK So zeigen Sie Temperatur, Feuchtigkeit und Druck auf dem M5StickC ESP32 mit Visuino an - Einfach zu tun: 6 Schritte
M5STACK So zeigen Sie Temperatur, Luftfeuchtigkeit und Druck auf dem M5StickC ESP32 mit Visuino an - Einfach zu machen: In diesem Tutorial lernen wir, wie Sie den ESP32 M5Stack StickC mit Arduino IDE und Visuino programmieren, um Temperatur, Luftfeuchtigkeit und Druck mit dem ENV-Sensor (DHT12, BMP280, BMM150)
Raspberry Pi mit Node.js mit der Cloud verbinden – wikiHow
So verbinden Sie Raspberry Pi mit Node.js mit der Cloud: Dieses Tutorial ist nützlich für alle, die einen Raspberry Pi mit Node.js mit der Cloud, insbesondere mit der AskSensors IoT-Plattform, verbinden möchten. Sie haben keinen Raspberry Pi? Wenn Sie derzeit keinen Raspberry Pi besitzen, empfehle ich Ihnen, sich einen Raspberry Pi zuzulegen