Unsere Plattform für Ideen, Austausch, Sammlung und Dokumentation von Elektronikprojekten und diversen anderen interessanten Dingen... Arduino, Raspberry Pi, Robotik, etc.
Dienstag, 13. März 2012
Coole Online Schaltungssimulation: Circuitlab.com
Tutorialfilmchen ansehen und loslegen. Funktioniert echt gut (akueller Firefox oder Chromeist nötig, mit anderen Browsen bin ich nicht zum Ziel gekommen. Dürfte ein Spice-Klon dahint liegen. Bedienung ist aber echt viel besser und einfacher als bei einem klassischen Spice.
Dann viel Spass beim Simulieren.
Sonntag, 11. März 2012
Panelmeter Teil #2: Opamp Magic
Und nun der zweite Teil des Panelmeter-Projektes. Das Problem war ja, dass das Meter seine eigene Versorgungsspannung nicht messen kann und auch in Schaltungen, wo die zu messende Spannung einen gemeinsamen Bezugspunkt mit der Versorgungsspannung hat. Berichte denenzufolge sich das Panelmeter in Rauch auflöst, wenn man es versucht, halte ich für übertrieben ;-). Ich konnte (bis jetzt) das Ding nicht kaputt kriegen...
Jetzt stellt sich die Frage: warum ist das eigentlich so? Ich habe also ein bißchen im Internet recherchiert und auch ein paar eigeneMessungen gemacht, und der Grund ist folgender: die Eingänge des Panelmeters (IN und COM) liegen +2.9V bzw. +5.8V (beachte: ohne, dass eine zu messende Spannung angelegt ist) über dem Beszugspunkt der Spannungsversorgung GND. Es ist also eine Skalierung und Verschiebung der Spannungsniveaus nötig, wenn man in einer "common ground"-Konfiguration arbeiten möchte.
Ich habe insgesamt drei verschiedene Lösungen für dieses Problem gefunden. Ich stelle heute die erste der drei vor, die mit Operationsverstärkern arbeitet. Ich glaube, mittlerweile verstehe ich sie einigermaßen und ich werde mein Bestes tun, um sie zu erklären. Bin für euren Input und Korrekturen sehr dankbar.
Die erste Lösung: bloß keine Differenzen...
Das ist also die geheimnisvolle Schaltung, die mir zu anfangs aufgrund meiner noch wachsenden Elektronikerfahrung (bin bei Winfield/Hill erst im Kapitel 2) großes Kopfzerbrechen bereitet hat. Aber na gut, ich versuch mal zu erklären was ungefähr passiert (zumindest was ich glaube, dass passiert). Um es vorwegzunehmen: die Schaltung scheint zu funktionieren, wobei noch zusätzliche Maßnahmen nötig sind...
Also los gehts: links kommt die Versorgungsspannung (z.B. von der Batterie) rein. Dann geht das ganze in einen Differenzverstärker (grauer Kasten), wobei aber der COM-Level am Panelmeter sozusagen als "virtuelle Masse" reinspielt. Weiters wird der COM-Level über einen Opamp-Puffer (Spannungsfolger) eingespeist, sodass es keine Rückwirkung gibt. Die beiden Kapazitäten sind glaub ich nur dazu da, um Schwingneigung des Opamps zu unterdrücken.
Ok, also hab ichs aufgebaut und gemesse, was es macht.Ich bekomme am Ausgang des Opamps +8V und an IN ca. +6.4V, also eine Differenz zwischen IN und COM von 0.695V. Hmmm. Die Schaltung macht also eine Skalierung und Levelshifting, aber noch nicht so ganz korrekt von den Werten her.Irgendwie scheint die Ausgangsspannung schon proportial zur Versorgungsspannung zu sein, aber auf jeden Fall eine Größenordnung zu groß für den 200mV Inputrange des Meters. Kleiner Trost: hab die Schaltung mit iCircuit simuliert und komme auf die gleichen Ergebnisse.
Ich hab mal die Ausgangsspannung am Meter gemessen, wenn ich die Eingangsspannung zwischen 8V und 12V variiere. Leider tut sich kaum was. Nur die letzte Stelle ändert sich leicht von 0.695V bei 8V auf 0.692V bei 12V. Mist.
Ich vermute, dass im Schaltplan ein Fehler vorliegt, und statt der 33k nur 3.3k Widerstände rein müssen (um den Faktor 10 wegzukriegen). Wenn ich das mit iCircuit ausprobiere bekomme ich folgendes:
Vs = 8.0V --> IN/COM = 0.08V
Vs = 8.5V --> IN/COM = 0.085V
Vs = 9.0V --> IN/COM = 0.09V
Vs = 12.0V --> IN/COM = 0.12V
Das sieht ja schon ganz gut aus. Die Ausgangsspannung ändert sich exakt um einen Faktor 100 kleiner im Zielrange des Meters. Perfekt. Gleich mal in der echten Schaltung ausprobieren.
Oje... in der Theroie alles super, aber einmal mehr zeigt sich, dass sich ein realer Opamp anders verhält als ein idealer... In der echten Schaltung erhalte ich nur 0.4mV - es tut sich also gar nichts am Ausgang. Na dann lass ich es jetzt mal und versuche was anderes. Vielleicht kann ich ja später nochmal was debuggen.
Sonntag, 26. Februar 2012
Handy und eingehende SMS
Kurze Führung:- zunächst nur höflicher Smalltalk (AT)
- Dann Einstellen des mode Teils auf 1, d.h. Meldung über die Datenschnittstelle, falls diese nicht gerade belegt ist. (at+cnmi=1,1,0,1)
- Nochmal Smalltalk
- Dann habe ich eine SMS geschickt und wurde durch die Rückmeldung +CMTI: "SM",2 über deren Eingang in Kenntnis gesetzt :-)
- Diese habe ich dann, wie beim letzten Mal gezeigt abgerufen
- Und das gleiche Spiel nochmal
Einige Recherche im Netz hat mich nun auf eine neue Idee gebracht: Angeblich können diese Handies kurzfristig einen Haufen Strom Konsumieren, wenn die Funke aktiv wird – von 1 oder gar 2A war die Rede. Das kann die Versorgungsspannung bei dünnen Kabeln und Aufbau auf dem Breadboard möglicherweise kurz überfordern, Zudem hatte ich die Strombegrenzung meines Labornetzteils natürlich nicht gerade in den Ampere-Bereich gelegt - eher so 300mA. Sobald da mal kein dickes Labornetzteil mehr dranhängt, sondern ein chinesisches Steckernetzteil wird es aber eh nicht mehr Saft geben, daher habe ich nun einen 2200µF Elko parallel geschaltet. Der sollte die Stromspitzen abpuffern können. Auf den ersten Blick scheint es geholfen zu haben, aber ich werde das mal weiter beobachten – dachte schließlich schon öfter ich hätte das endgültig gelöst...
Freitag, 24. Februar 2012
...und jetzt?
Also schön, was bleibt denn jetzt übrig, wenn wir über die letzten Analysen schauen?
- Es ist nicht so einfach mit Li-Akkus. Nicht Tiefentladen, nicht überladen, beim Laden auf das Balancing achten...
- Was fertiges zu kaufen, sprich Ladegerät, Entladeschutz und Balancer ist teuer und passt oft nicht für die Applikation.
- Auf dem Markt gibt es keine fertigen Chips zu kaufen (oder nur sehr schwer), mit denen sich unkompliziert Controller aufbauen lassen.
- Li-Akkus sind aber nicht ohne Charme. Lineare Leistungsabgabe, viel Kapazität auf wenig Bauraum, Kubische Bauweise (LiPo), unkompliziert zu handhaben (wenn die Controller-Elektronik tut).
- fertige Elektronik ausschlachten, oder
- selber was entwickeln
Wie ein Selbstbau-Konzept aussehen könnte, hier die paar Kästchen als Ergebnis:
Der Akku-Controller würde am Akku bleiben, und den Spannungsverlauf des Entladevorgangs überwachen. Eine Strommessung macht weniger Sinn, da sie mit einem zusätzlichem OP und einem Shunt nicht im Verhältnis zum Nutzen steht. Statt dessen könnte man einen Schaltregler realisieren, um z.B. neben der ungefilterten Ausgangsspannung 5V oder 3.3V für die Elektronik bereit zu stellen.
Der Lade-Controller müsste ein MMI beinhalten, also Tasten und/oder Drehencoder mit Display. Ebenfalls müsste über diesen Weg der EEPROM in der Akku-Elektronik zu programmieren sein.
Schließt man den Akku an das Ladegerät an, übermittelt er diese gespeicherten Daten, und stellt die zum Laden notwendigen Parameter ein, wie max. Ladestrom, Schlußspannung, usw.
In der Lade-Elektronik wäre auch die Balancer-Logik drin.
Bin ich auf das Balancing überhaupt eingegangen? Ein Nachtrag:
Balancing - der Akku auf dem Drahtseil
Im Akku-Paket sind die Kapazitäten der Zellen nicht alle gleich, was an Toleranzen in der Fertigung, oder unterschiedlicher Alterung liegt. Durch mehrere Lade- / Entladezyklen verliert der Pack erheblich an Leistung (Cell Balancing - Carlos Martinez, Seite zwei). Zellen mit weniger Selbstentladung sind schneller voll, jene mit höherer schneller leer. Dadurch entsteht ein Ungleichgewicht des Ladezustandes (State of Charge - SoC) der Einzelnen Zellen und der Akku-Pack kann weder voll geladen, noch ganz entladen werden.
Es gibt eine ganze Reihe von Methoden, den SoC der Zellen auszugleichen (Continous Cell Balancing / Li-Ion Charge Balancing and Cell Voltage Monitoring). Die Modellbau-Liga hängt bevorzugt einfach beim Laden einen Leistungs-Transistor an jede Zelle und schaltet diesen bei Erreichen von U_max durch (vgl. http://www.aero-hg.de/lipobal.html / http://www.kc-world.de/LiPo-Balancer.htm).
Ich halte diese Methode für recht brutal, da u.U. bei hohen Strömen wieder Energie aus dem Akku genommen wird. Besser ist es den Strom zu begrenzen, also nur einen Teil des Ladestroms umzuleiten, dafür jedoch schon recht früh mit dem Balancing zu beginnen.
So. Wat nu? Bauen oder schlachten? Ebay oder Reichelt? Ich brauch erst mal ein paar Tage Luft. Was will ich mit dem Akku eigentlich? Die Sache mit dem Geo-Caching hat sich ja erledigt. Sohnemann verweigert.
Roboter bauen? Da hab ich doch von meinen Kollegen ein paar Sensoren und einen Arduino bekommen (danke nochmal - Ihr seit echt verrückt!)...
Staubsauger, Rasenmäher, Fensterputzer, Katzenschreck? Jetzt wird's matschig, wie Golo der Gartenzwerg immer sagte.
Handy Teil 2
Bus 004 Device 002: ID 067b:2303 Prolific Technology, Inc. PL2303 Serial Port
Das Durchreichen an die Virtualbox, in der mein olles WinXP installiert ist, war auch kein Problem und nun tut Freia seinen Dienst:
Das Auslesen der Firmware, mit dem ich zunächst mal angefangen hatte dauert zwar eine halbe Ewigkeit, aber immerhin funktioniert es. Nächster Schritt: Unlock versuchen. Scheint auch zu gehen – jedenfalls sieht es im logfile ganz danach aus. Also Luft anhalten, Daumen drücken, Handy einschalten und Photo machen:
Heureka! :-)))))
First Contact – diesmal wirklich!
Nun ist es an der Zeit, zu versuchen, mit dem Handy zu reden. Das bereits erwähnte Datenkabel steckt ja noch im Computer und so muß ich nur das Terminalprogramm meines Vertrauens starten und schon kann's losgehen. Ein wenig experimentieren ergab, daß die Kommunikaitonsparameter so aussehen müssen: 19200 bps, 8N1. Hier ein Transkript der ersten Gehversuche:
Das sieht schon mal ganz gut aus und soll noch etwas erläutert werden: Zunächst habe ich Hersteller, Modell und Revision abgefragt, dann die Seriennummer und IMSI. die beiden letzten (identischen) Kommandos lesen alle (Status 4) Kurznachrichten aus. Beim ersten versuch gab es schlicht noch keine, daher nur die Antwort 'OK'. Dann habe ich eine SMS mit dem vielleicht nicht sehr tiefschürfenden, aber traditionellen Inhalt „Hello world!“ an das Handy verschickt und siehe da – nun bekommen wir eine richtige Antwort. Zunächst wird uns verraten, daß diese Nachricht sich auf Index 1 im Speicher befindet, den Staus REC UNREAD (also empfangen, aber nicht gelesen) hat und es auf eine stolze Länge von 31 bringt! Das Kauderwelsch dannach ist die eigentliche Nachricht und damit uns hier nicht zu schnell langweilig wird ist diese nicht etwa als simpler Text repräsentiert (wäre ja auch phantasielos), sondern als packet data unit, kurz PDU. Diese enthält neben der eigentlichen Nutzlast (dem Text) noch diverse Header Info – ähnlich anderen paketorinetierten Netzwerkformaten. Und so wurden aus bescheidenen 12 Zeichen Text stolze 78 Byte. Um die Sache etwas intereessanter zu machen ist der Text in Buchstaben mit je 7-Bit codiert und wird dann nach einem kreativen Schema zu Oktetten, also Bytes, zusammengesetzt. Ich habe grade keine Lust das genau darzustellen und verweise also einfach auf meine Quelle: http://www.dreamfabric.com/sms/
Einen Decoder zu basteln dürfte keine echte Schwierigkeit sein, was mich eher plagt ist die Frage, wie ich denn mitbekomme, wann eine SMS eingeht. Denn auf dem Terminal tut sich da nix – ich finde es aber wenig elegant, alle paar Sekunden anzufragen, ob eine neue SMS da ist. Das muß doch besser gehen! Nun werde ich also ein wenig Recherchieren und melde mich mit einer neuen Folge zurück, sobald ich schlauer bin!
Mittwoch, 22. Februar 2012
Bilderrätsel
Montag, 20. Februar 2012
Mit einem Python Skript hab ich die Daten rund gerechnet. Gemessen wurde mit einer Auflösung von 0.1s, mithilfe des Skripts mittelte ich immer über 500 Werte.
Eigentlich hätten nur die Spannungs-Werte bei Null-Strom berücksichtigt werden dürfen, da sie der tatsächlichen Akku-Spannung entsprechen. Allerdings hätte dies auch nicht mehr Information gebracht.
Beim Betrachten des Stromverlaufes kann man mit etwas Phantasie die im letzten Blog erwähnte Ladestrategie erkennen. Abweichend davon "heizt" der Laderegler offensichtlichfür ca. 15min den Akku an und beobachtet die Einzelspannungen. Nach dem U12 zu schnell ansteigt, nimmt er den Strom zurück.
Bei etwa einer Stunde Ladezeit wird vom Konstantstrom-Ladaung (CC - Constant Current) auf Konstant-Spannung (CV - Constant Voltage) umgeschalten. Schaut man die Messdaten an, fällt auf, dass die Lade-Spannung in diesem Bereich trotzdem von 11.3V bis 12.6V hochgezogen wird.
Den Einbruch bei 1:45h kann ich nicht erklären. Irgend ein Regler, der in eine Sättigung läuft? Nach 2,5h pulst der Lader dann nicht mehr und lässt den Akku in Ruhe voll laufen.
Auffällig ist, dass die Ladeschlussspannung der Zelle 3 (U23) über die kritischen 4.2V steigt, während die beiden anderen noch lange nicht voll sind. Ich habe die Zellspannungen einen Tag nach dem Laden nochmal gemessen und festgestellt, dass Zelle 2 und 3 genau 4.22V haben. Gleicht das die Controller-Elektronik aus? Wenn ja, wie? Oder passiert noch was in der Chemie?
Und da kommt schon der nächste Sumpf: Wie mit den unterschiedlichen Ladezuständen zwischen den Zellen umgehen? Balancing ist das Zauberwort. Darüber gibt es ebenfalls viel, viel Stoff im Netz.
Damit geht's also weiter. Irgendwo ist der Wald dann hoffentlich zu Ende, und ich kann ein Konzept entwerfen und entscheiden, ob es gebaut wird, oder in der Schublade verschwindet. Meine Güte, langsam träume ich schon von dem Zeug!
Allerdings wird mit klar, dass man nicht einfach ein Allround-Ladegerät bauen kann. Es muss immer ein Gesamt-Konzept entworfen werden, welches jeweils den Anwendungsfall mit allen Randbedingungen berücksichtigt.











