Mein TonUNIO funktioniert inzwischen so wie ich es mir vorgestellt habe. Einschalten per Taster über den Polulu Switch, Akku kann über USB geladen werden und der Timer schaltet das Gerät nach 5min ab.
Letzter Punkt auf der Wunschliste ist jetzt die automatische Abschaltung bei zu geringer Akkuspannung um den Akku nicht zu schrotten und ggf. beim Einschalten eine Warnung wenn die Kapazität unter 25% gefallen ist.
Dafür benötige ich aber sowohl etwas “Hardware” um mit dem Arduino die Akkuspannung zu messen und natürlich die passende Software. Kann mir da jemand behilflich sein oder gibt es sogar die Chance das in die DEV zu bekommen? So als Option im Admin Menü wie bei der Abschaltoption?
Je nach Aufbau könntest du die Spannung über einen freien analog pin messen. Basierend darauf ist Warnung ausgeben oder auch abschalten relativ einfach. Ich hab das so ähnlich für die cubiekid Platine implementiert, messe die Spannung allerdings intern (geht aber nicht bei jedem Aufbau). Kommt halt aufs Setup an.
Intern bedeutet, der Arduino misst seine eigene Betriebsspannung? Also geht das nur bei einem Aufbau ohne Step-Up Treiber?
Ich hatte an die Lösung per Analog Pin gedacht, aber bei der bisherigen Recherche bin ich nicht wirklich weit gekommen. Es gibt zwar relativ viele Informationen, aber irgendwie mehr Fragen und Probleme als Antworten.
Ich bin nicht der Meisterelektroniker, aber vom Prinzip her müsste man auch die LiPo Spannung vor dem booster abgreifen können und dann am analog Pin messen können, aber da können andere hier sicher mehr zu sagen.
Mal ne frage, um den Akku zu schützen haste doch sicher ne Schaltung verbaut oder? Es geht hier also nur darum nicht von der Abschaltung überrascht zu werden?
Nein, so eine Schutzschaltung schaltet wirklich erst im letzten Moment ab und ist wirklich nur als reine Notlösung gedacht. Es schadet den Akkus, wenn man die immer bis zur Notabschaltung runter nudelt. Daher würde ich die Schwelle für die Abschaltung gerne etwas höher ansetzen. Bei meinen Taschenlampen fahre ich die LiIon Zellen zwischen 3,5 und 4,1V. Beim Tonuino würde ich wegen den geringen Strömen wohl zwischen 3,3V und 4,0V bleiben wollen. Und für die LiFePO4 Zellen kann man bis 2,5V runter gehen, voll sind die bei 3,6V. Aber auch hier sagt der Hersteller, wenn man die Zellen zwischen 20 und 80% Kapazität verwendet, halten die 5.000 Ladungen durch. Man könnte also jeden Tag laden und die Akkus würden trotzdem >10 Jahre halten - zumindest theoretisch.
Da klemm ich mich mal dazu - das ist nämlich genau das, was mir auch noch fehlt… Jedoch bin ich leider ebenso ratlos und trotz Lesens bislang nur unsicherer geworden…
Also wenn ich das richtig verstehe, kann man den Lipo direkt an einen analogen Pin anschließen. Hardware brauch man also keine, abgesehen von einem Kabel:
Da die meisten den Arduino über einen Step-Up (oder Step-Down) mit konstanter Ausgangsspannung betreiben werden, kann dieser als Referenz dienen. Ob das genau genug ist, müsste man testen.
Die Frage ist, wo im Code bauen wir das ein und wie oft soll die Spannung abgefragt werden.
Mir würde beim Einschalten eine Warnung (Audiofile) bei unter 25% reichen, wenn im Code die Spannung eingetragen werden könnte, wäre das super.
Und bei der Abschaltung halt vorher den Text abspielen den ich schon irgendwo gelesen habe: “Oh, mein Akku ist leer. Bitte Mama oder Papa das die mich wieder aufladen” oder so ähnlich
Hier auch die Spannung im Code einstellen und dann automatisch abschalten - wie schon beim Timer implementiert.
Im Prinzip ist das eigentlich kein großes Problem. Die relevanten Suchbegriffe sind „Arduino Spannung Messen“ und „Spannungsteiler“. Damit findet man sowohl benötigte Hardware (worst case paar Widerstände aus der Bastelkiste) und auch Beispielcode.
Ich habe das oben im main loop(). Ist natürlich jetzt etwas anders als ihr es machen würdet (analogread() usw.) und nicht die Library die ich da verwende für die interne Spannung. Wenn die kritische Spannung erreicht wird, kommt noch ne Ansage (genau wie @papa oben schreibt) und die Box geht aus.
Soweit war ich auch schon, aber wie man den Spannungsteiler in dem speziellen Fall dimensionieren sollte, ohne nachher ggf. zu hohe Verluste zu haben übersteigt mein elektronisches Verständnis, weshalb ich auf die Erfahrung von Euch hoffe…
Ja gute Idee. Hängt halt vom Setup ab wie man es am dümmsten macht.
Ich hatte das mit dem Spannungsteiler erwähnt damit es etwas allgemein gültiger ist. Und nicht jemand hier auf die Idee kommt 12V (oder mehr) an arme, kleine, analog Pins anzulegen. So hast du natürlich Recht.
Genau, und abhängig davon dann eben Ansage, abschalten etc.pp.
OK, ich werde mich an einen Testaufbau wagen. Welcher Pin wäre denn auf unserer Platine dafür geeignet und noch frei? Und was tragen wir dann hier ein?
int analogPin=1;
Ach so, und wie kann ich den aktuellen Wert zum überprüfen ausgeben?
Klaro. Deswegen meinte ich ja zum Test. Muss man dann natürlich entsprechend umrechnen oder ggf. mit map() arbeiten (wobei das mit integern arbeitet, für Spannungen in dem Bereich eher unvorteilhaft).
ich setze ebenfalls gerade die Spannungsmessung für zwei Tonuino’s um.
Bei einem funktioniert es tadellos, bei dem anderen erhalte ich immer den Wert 1023, egal welche Spannung anliegt.
Überprüft habe ich folgendes:
Spannung (Lifepo4 Akku) mit dem Multimeter überprüft, es liegen 3.45 V an.
ich habe es an den Analogen Pins A3-A5 getestet (auf die anderen habe ich auf Grund meines Setups leider keinen Zugriff)
Test mit verschiedenen Kabeln
Hat vielleicht noch jemand Ideen was ich testen kann, oder ist mein Arduino hinüber?
Mit dem Multimeter habe ich alles nachgemessen und kontrolliert.
Der einzige mir bekannte Unterschied zwischen den beiden Aufbauten ist, dass der eine einen Lipo und der andere (der nicht funktioniert) einen LiFePo4 verwendet. Auf dem TP5000 ist die Brücke für den LiFePo 4 gesetzt. Der Rest im Aufbau ist identisch.
Hmm, hast du mal den Arduino hin und her getauscht? Wandert der Fehler mit? Du könntest auch die Akkus tauschen (natürlich umstellen Lipo<->Fepo nicht vergessen!) und schauen ob der Fehler mitwandert.