Ein paar Ideen und Basteleien im Zusammenhang mit Fahrzeugen oder Maschinen aller Art.
Momentan etwas "Elektronik- bzw. Atmega-lastig"
Und auch sehr auf das Thema Elektroauto ausgerichtet,
ich habe aber auch schon lauffähige Modellmotoren
oder hydraulische Widder gebaut oder Oldtimer
restauriert Das alles ist mein ganz privates Vergnügen, Ich nehme also keinerlei Aufträge an, aber wenn mich ein Thema interessiert, dann versuche ich gerne, eine möglichst einfache Lösung zu finden.
Da die "Franz-Box" gerade von Michael ausgiebig in derPraxis getestet wird
(und bisher noch keine allzu ernsten Klagen gekommen sind ;-) das folgt wohl noch.... )
und ganz nebenbei auch noch so manches Andere zu basteln war,
zun Beispiel ein Schmier-Timer für die Turbine des Wasserkraftwerks
eines meiner Brüder ....und sonstige Sachen... gabs jetzt hier längere Zeit nichts Neues.
Ich habe mir dieser Tage mal Gedanken gemacht, wie man denn eine sehr
einfache Unterspannungsüberwachung realisieren könnte so als letzten Not-Alarm
für ein LIPO-Akkupaket das nach Jack Rickards Lehre ganz ohne BMS betrieben
wird. (Die meisten, die hier her geraten werden ihn kennen...............)
Mir gehen Jacks Ansichten etwas zu weit ins Extreme, deshalb würde ich niemals
zumindest auf eine Unterspannungsüberwachung verzichten.
oder noch lieber natürlich ein ordentliches Monitoring-System haben wollen.
Hierbei geht es mir gar nicht um zehntel Volt, darauf kommt es schliesslich gar nicht an!
Das haben so viele Leute offenbar noch gar nicht verstanden........
Die Spannungsangaben bei den Akkus beziehen sich auf zulässige Spannungen
der unbelasteten Zellen bzw auf die Ladeschlussspannung.
Wenn man seine Zellen erst mal einigermaßen ausbalanziert hat,dann genügt
durchaus ein ordentlich abregelndes Ladegerät um alle zu laden.
Hierbei kann man noch halbwegs problemlos beobachten und eingreifen,
das Auto steht ja..........
Problematischer ist schon das Entladen im Grenzbereich.
Hierfür habe ich meinen Energiezähler entwickelt, und wenn man die Akkus
nie ganz leer fährt, dann sollte das schon mal eine gute Basis sein.
Aber meine Einzelspannungsüberwachung ist noch nicht praxistauglich.
Das wird schon noch, aber da muss ich erst noch die Ansteuerung des
LTC6802 per SPI ordentlich auf die Reihe bekommen, und das ist noch
Neuland für mich. Die Variante mit Atmegas oder ATtinys als Messwandler
funktioniert zwar schon, ich kann damit messen und auch Balanzieren
aber ich bin mit dem nötigen Aufwand unzufrieden.
Da brauche ich Optokoppler, einen Quarz wegen der seriellen Schnittstelle,
die Eingangsspannungsteiler belasten die Zellen unterschiedlich und
sind auch nicht abschaltbar und so weiter......einfach nicht perfekt.....
mal sehen........
Die eigentliche Gefahr für die Zellen lauert aber nicht bei 2,5Voder so,
(je nach Akkutyp unterschiedlich...deshalb hier einfach mal 2,5V.....)
sondern dann, wenn die Zellen unter Last den Strom nicht mehr schaffen,
und dann plötzlich ganz zusammenbrechen bzw sogar umgepolt werden!
Wenn man nun ein BMS anschliesst und sich bei der Untergrenze von
2,5V warnen lässt, dann geht diese Warnung z.B. beim Beschleunigen
ständig an, obwohl die Akkus noch gar nicht leer sind.
Wirklich leer sind sie, wenn sie ohne Last nur noch 2,5V haben,
das ist ganz was Anderes, als wenn sie bei hoher Last mal
kurz etwas weniger haben, aber dann sofort wieder deutlich drüber liegen.
Ein Warnausgang muss also anders konfiguriert sein, und darf erst etwas später
auslösen. Ich rede hier ganz bewusst von der letzten Warnung bzw
dem Alarm für Notabschaltung und nicht von einer Vorwarnung,
die natürlich bei ca 2,5V liegen sollte und ein ordentliches Monitoring System
darf da durchaus schon mal was anzeigen, damit man aufpasst,
aber hier gehts um die Anzeige für akute Gefahr,
und da ist ein Pegel so bei 2V oder 2,1V angesagt, und wenn diese Meldung kommt
sollte man sie auch wirklich ernst nehmen.
Wer seine LIPOs schon mal kontrolliert und vorsichtig ganz leer gefahren hat,
der weiss, wie kurz die Spanne zwischen fast leer und ganz leer ist.
Das entspricht in etwa einer Fahrstrecke von ca 1Km !!
Da macht dann auch ein "Hump-Mode" nicht mehr viel Sinn.
In so einem Fall hat man sich einfach verkalkuliert und aus!
Wie kann man so ein System möglichst preiswert realisieren und
vielleicht sogar als redundantes System zusätzlich einsetzen?
Was soll es können?
1.eine allgemeine Warnung genügt.
2. das System sollte im Ruhezustand bzw bei stehendem Fahrzeug
möglichst wenig Strom ziehen und nicht mit seiner Meldung
die Akkus zusätzlich aussaugen
3. Leitungsbruch sollte zu Alarm führen
4.es sollte sehr preiswert sein.
So könnte es gehen:
(noch nicht getestet, aber die Richtung sollte passen)
Als Sensor habe ich den TC54VC2102EZB ins Auge gefasst,
den gibts für ca 60 Cent, (z.B. bei Farnell) und der schaltet bei 2,1V.
(über 2,1V high, darunter low )
damit kann man dann eine "Daisychain" aus je einem Transistor je Zelle
geschlossen halten, und wenn eine Zelle absackt wird der kreis unterbrochen.
Die geringe Spannung von 2 - 4Vim Betrieb verlangt wohl normale
(bipolare) Transistoren für die Kette. In Etwa so:
Wie funktioniert das?
Wenn der unterste Transistor mit seinem Emitter nach GND
gezogen wird,( z.B. per Relais, wg galv.Trennung)
und die Basis angesteuert ist,(da muss ev. noch eine
Schottky-Diode rein, um die 0,7 V der Diode am Emitter
auszugleichen, damit der Transistor wirklich sperrt)
dann schalteter durch und zieht den Emitter des nächsten Transistors
nach unten und so weiter........bis schliesslich der oberste
Transistor auch durchschaltet und dann einen Optokoppler
oder auch ein kleines Relais schaltet.
Hier braucht man nochmals eine galv.getrennte Stromversorgung
von ein paar Volt, aber das ist ja nicht das Problem.
Hier reicht ein kleiner DC-DC-Wandler
Wenn einer der Transistoren sperrt, weil der TC54 ihn nicht mehr
ansteuert, dann bricht die Kette zusammen und es gibt Alarm
Der TC54 selber braucht nur ca 1µA also "nix"
siehe:
http://ww1.microchip.com/downloads/en/DeviceDoc/21434h.pdf
und im Ausgeschalteten Zustand sollte weiter kein Strom fliessen!
Wie schon gesagt, ich hab das noch nicht gebaut, vielleicht hat
ja jemand Lust, das mal zu testen.
Ich hab grad keine Zeit dazu...............
..........und wenn man diese Schaltung noch mit einem zweiten
TC54XXXXXXXXX für 3,nochwas Volt und noch einem Mosfet +Shunt
ergänzen würde, dann hätte man auch gleich funktionierende
Shunt-Balacer, (so wie Jack R. sie überhaupt nicht mag)
die meines Erachtens durchaus Sinn machen, wenn man denn schon
oben balanziert, man sollte halt das Ganze sicher genug auslegen,
damit die Dinger nicht nachher das ganze Auto abfackeln! ;-)
leider sind die benötigten Spannungen aus irgendwelchen Gründen nicht
als "Lagerware" verfügbar- schade!!!
.....den da gibt es auch noch, aber schon etwas teurer, dafür aber
gleich mit zwei "Kanälen" ....... den ICL7665S
http://www.farnell.com/datasheets/76708.pdf
Da braucht man dann schon etwas mehr an äusserer Beschaltung,
und dann kann man gleich einen ATtiny13 bzw 25 nehmen
und mit seiner inneren 1,1V Referenz betreiben
.......aber wie schon gesagt, ich werde mich in nächster Zeit lieber
um den LTC6802 bzw seinen Nachfolger LTC6803(-1 ; -2 ; -3; -4 )kümmern
und mal versuchen ,den korrekt anzusprechen und auszulesen.
Da sind alle Funktionen drin, die man sich so wünscht, und besser
kriege ich das ganz sicher nicht hin.
Ach ja, von Linear Technology gibt es auch noch den LTC6801 ,
den habe ich bisher gar nicht beachtet, weil der ein reiner Monitor ist,
und weil der auch keine gezielte Einzelzellenmessung ermöglicht,
sonder nur per Takt ein allgemeines OK oder nicht OK ausgibt,
aber dieser Baustein ist per Jumper oder Pinbelegung für verschiedene
Schaltschwellen für Ober- und Untergrenze parametrierbar,
man braucht kaum externe Bauteile und das Ganze ist anreihbar
und läuft ohne externen Rechner.
Also ideal für ein reines Not-System zur zusätzlichen Sicherung
bzw für Low Cost - Lösungen.
Was nun jeder für sich an Infos wünscht, das bleibt jedem selbst
überlassen, aber ich persönlich wünsche mir halt ein kleines Display,
auf dem ich die höchste, die niedrigste, die Gesamtspannug
und vielleicht auch noch die durchschnittliche Spannung ablesen
und bei Bedarf auch jeden einzelnen Zellenwert abfragen kann.
Das Ganze noch mit frei programmierbaren Grenzwerten für
Warnmeldungen, eventuell noch getrennt für Meldung/Vorwarnung
und "echten" Alarm. (das bau ich noch in die Franz-Box ein)
Ich meine, ein BMS sollte auf Wunsch auch Balanzieren können,
und es muss, wenn es erst mal konfiguriert ist völlig ohne
Benutzereingriff arbeiten. auch der Reset des Energiezählers
nach dem Laden muss automatisch erfolgen!
Das Ganze muss so narrensicher sein, dass auch völlig
unbedarfte Laien damit zurecht kommen.
Was nützt der schönste Touchscreen, wenn man nach dem
Start erst mal durch drei Menues klicken muss...........??????
mfG
Franz
p.s.: Oma Duck fährt nun schon seit über sechs Jahrzehnten elektrisch,
und ich glaube nicht, dass sich das in absehbarer Zeit ändern wird
01 Juli 2011
Hallo allerseits!
es gibt mal wieder was Neues zu berichten!
Die "Universalplatine" läuft annähernd so wie geplant!!!!
Das Energiezählerprogramm läuft darauf ganz so wie gewünscht und erhofft!
Bei der Positioniersteuerung gibt es noch Probleme an einer
völlig unerwarteten Stelle. Die Abschaltung der Endstufen durch Trennen
der GND-Leitung per MOSFET gefährdet die Teiber-ICs (TC4431)
Da ich dort die GND-Verbindung beibehalte können in gewissen
Betriebszuständen und mit größerer induktiver Last gefähriche
Spannungs und Stromspitzen auftreten, mit denen ich an dieser Stelle
nicht in diesem Ausmaß gerechnet hatte. Das lässt sich aber
in den Griff bekommen, indem die Abschaltung auf die Plus-Seite
verlegt wird und die Gate-Leitungen zusätzliche Widerstände
eingebaut bekommen sowie noch ein paar kleine Änderungen.........
Es hat sich natürlich ein kleinerer Layout-Fehler eingeschlichen ,
aber es ist nur eine zu dünne Leiterbahn.Die war schon mal dicker,
aber bei irgend einem Rip-Up-Durchlauf hat Eagle die neu
verlegt, und dann natürlich in der Standardabmessung gelegt.
Ich habs dann übersehen.......ein typischer Fehler......
Ein paar Verbindungen hätte ich doch noch vorsehen sollen,
aber das ist nicht weiter tragisch, ganz leicht nachzuverdrahten.
Trotzdem ist das aber ärgerlich. Ich habe den Display-Stecker um
vier Pins erweitert. diese aber nur an den beiden Display-Anschlüssen,
die gleichzeitig auch zum Programmieren vorgesehen sind miteinander verbunden
aber nicht an den "Micro-Match" Stecker angeschlossen, weil ich meinte,
das nur im Notfall zu brauchen. Na ja, die Praxis ist oft anders als die Theorie,
und das geht recht gut nachzuverdrahten.
Nachtrag 29.06.2011:
Am Energiezähler/BMS-Programm habe ich noch ein bisschen rumgespielt.
Die ganze BMS-Geschichte ist jetzt auch abschaltbar wenns nicht gebraucht
wird, bzw für die momentane Testphase der Energiezähler und Anzeige-funktionen.
Eventuell brauche ich die Abschaltung noch für ganz was Anderes, wenn ich
noch mehr Statusmeldungen bzw seriell empfangene Meldungen z.B. aus
Curtis-Controllern ;-) anzeigen möchte......mal sehen.........
Ziel ist ein möglichst universell verwendbares Programm mit vielen Optionen
und Abschaltbaren Extras, wenn diese nicht gewünscht oder benötigt sind.
Es ist noch so einiges an Programmspeicher frei, also geht da noch was!
Die Korrektur der DZM-Frequenz geht jetzt von 90 bis 220%, da wäre ich fast
über ein Problem gestolpert, deshalb nicht weniger als 90% sonst reicht mir
eine Variable nicht mehr......
Ich werde wohl noch die Anzeige von zurückgespeistem Strom im DZM einschaltbar machen,
(bringt nur bei AC-Motoren was, und die Rückgewinnung wird eh meist völlig überbewertet )
und einen kleinen Bug hab ich noch drin....( wenn aufgrund fehlender Messspannung
"Standby" angezeigt wird, und die Anzeige der Rückgewinnung im DZM eingeschaltet ist,
dann wird der Programmablauf sehr langsam, und dafür gibts eigentlich keinen Grund......
zumindest ist das nicht so gewollt..... da wird wohl die Laufzeiteit des Timer-Unterprogramms
zu lang weil mit der Unterdrückung der Division durch Null was nicht korrekt arbeitet )
.........das krieg ich auch noch hin...........
Elektrisch passt nach derzeitigem Erkenntnisstand alles ganz gut.
Jetzt fehlt nur noch ein schönes Gehäuse fürs Display und den Bedienknopf, dann könnte man
zumindest den Energiezähler und die Anzeigefunktionen auf DZM und Tankuhr schon
mal benutzen. Das Display passt ggfs auch in die Box, aber spätestens bei Verwendung
als BMS sollte das Display im Blickfeld des Fahrers montiert sein.
Die Serielle Schnittstelle läuft auch, also steht einer späteren Aktivierung
der BMS- Funktion auch nichts mehr im Weg.
Weil ich mein Evaluation-Board (STK500) neulich wo vergessen und noch nicht abgeholt habe
musste ich notgedrungen auch meinen Eigenbau-AVR-ISP-Programmer in Betrieb nehmen.
Das hat auch wunderbar geklappt und ich kann den Programmer sogar angeschlossen lassen
wenn ich mit der Platine arbeite und teste! Das macht gleich noch mehr Spass!
01.07.2011:
Heute hatte ich mal etwas Zeit, um weiterzumachen.
Zunächst habe ich das Programm nochmal durchgeschaut und überarbeitet.
Natürlich tauchten noch ein paar Dinge auf, bzw konnte manches verbessert werden.
Das Störmelderelais funktioniert jetzt auch bei BMS-Meldungen wie Über- oder Unterspannung
einzelner Zellen.Wenn eine Zellenspannung fehlerhaft ist, dann hält die Messung bei der
fehlerhaften Zelle an, und misst nur diese, bis der Fehler beseitigt ist.
Das kostete einiges an Überlegungen, diese Funktion mit der gezielten Einzelzellenabfrage
und den einstellbaren Grenzwerten in Einklang zu bringen!
Insbesondere lief die Messung nicht mehr weiter, wenn ich im Störungsfall auf Einzel-Anzeige
umschaltete und auf eine andere als die fehlerhafteZelle schaltete,
weil ja im Fehlerfall nicht weitergeschaltet wird.
(Lösung: Bei Tastendruck zum Umschalten wird jetzt der gemessene Minimalwert auf den
eingestellten Obergrenzenwert gesetzt und der Maximalwert auf den Untergrenzenwert.So läuft
dann die Messung bei "null" los und übernimmt die aktuellen Werte.)
Warum so kompliziert? Zuvor dauerte es ziemlich lange, bis die auffällige Zelle wieder dran war.
Da der Alarm kommt, wenn die erste Zelle auffällt ist anzunehmen, dass alle anderen
noch "in Ordnung" sind.deshalb wird die auffällige dann gezielt beobachtet.
Das mit dem lange dauern ist auch so eine Sache, an der ich noch verbessern könnte.
Da müsste ich die (einfachen) "WAIT" -Befehle zum Stoppen der Anzeige bzw zum Umschalten
der Störmeldungen durch (kompliziertere for....next.....) Zählschleifen ersetzen.
Das mache ich mal, wenn mir langweilig ist.
Es ist halt soooo einfach, nur wait 1 zu tippen um eine Sekunde zu warten, gerade
in der Anfangsphase des Programms..... aber wait = warten, deshalb passiert in dieser Zeit
ganz einfach NICHTS und das sind bei 4MHz (das ist langsam) eben vier Millionen Takte,
was für sehr viele ( >1000000!!! ) Rechenschritte reichen würde.
Zum aktuellen Stand gibt es ein paar Videos.
Eine Funktion habe ich in den Videos nicht erklärt (vergessen) :
Wenn man im laufenden Betrieb kurz auf den Knopf drückt dann schaltet die Messung um auf
Einzel-Messung. Es wird dann nur eine Zelle gemessen, durch Drehen des Knopfes kann
man die zu messende Zelle auswählen. ein weiterer Druck auf den Knopf schaltet wieder
auf Normalbetrieb zurück.
noch was zu den Videos:
Da ich mit der Video-Qualität hier im Blog sehr unzufrieden bin/war (die reduzieren nochmal....)
hab ichs zum Vergleich auch auf Youtube hochgeladen. ( viel besser !!!!!!!!)
Das ist beide Male jeweils die selbe FLV-Datei, die hochgeladen wurde !!!
Die Avi (ca 350MB) aufgenommen mit einer SONY DSC-2000 also einer recht einfachen
Kamera der 50Euro-Klasse die übrigens erstaunlich gut funktioniert (bin sehr zufrieden)
wurde mit dem "Quick Media Converter" (Freeware!!!) zu FLV (ca 60MB) gewandelt.
Video 1 per Youtube:
Video 2 per Youtube:
Video 3 per Youtube:
Das macht der Blogger draus:
Ich hab noch gar nicht geschaut, wie groß diese Dateien überhaupt noch sind.
Egal, der Upload dauert ewig, und dann dieses Ergebnis...... das
werde ich wohl einfach abhaken.......... und bis auf Weiteres Youtube nutzen.
Video 1 per Blogger
........und so schaut das mit Gehäuse aus:
man kann auch ein zweites Display dranhängen!!!!!!
Das Display und der Drehencoder werden zusammen über ein 14-poliges Bandkabel angesteckt.
Diesen Stecker gibt es zwei mal auf der Platine, und man kann je nach Bedarf den inneren
oder den äusseren Stecker benutzen, bzw auch zwei Displays dranhängen.
Da auf den Steckern noch eine steuerbare Leitung da ist (PortC.5, damit soll eigentlich die
Display-Beleuchtung geschaltet werden, aber das geht notfalls auch anders)
müsste man sogar die beiden Displays ohne großen Aufwand getrennt voneinander beschreiben können,
wenn man unabhängige Enablesignale schickt. Das werde ich gelegentlich mal versuchen.
Zwei Displays an einem Prozessor, das ist in Bascom durchaus vorgesehen.
Das muss ich beim nächsten Layout unbedingt berücksichtigen bzw. konfigurierbar machen!
Nachtrag 12.8.2011:
Das mit den zwei Displays ist doch gar nicht sooooo einfach, eigentlich sollte es reichen,
einen zweiten Enable-Ausgang zu definieren und dann vor dem Schreiben das Display
umzuschalten bzw zu wechseln. Da hätte ich sogar schon eine Leitung im Layout (C.5),
und dazu gibt es so manche Anleitung für Displays mit 80Zeichen,
allerdings sind diese Displays meist zweizeilig
aber wenn ich E2 hinzufüge kriege ich von Bascom die Fehlermeldung, es sei kein platz mehr
für ein Bit und dann passiert irgendwas sehr ernstes mit der .bas-Datei, und
die Fehlermeldung geht nicht mehr weg, auch wenn man die Änderung zurücksetzt............
Der Weg sollte aber trotzdem richtig sein, und notfalls brauche ich halt den
zusätzlichen Port damit der mir das dann extern umschaltet
(ein paar invertierende Und-Gatter z.B.ein 7426, '37 oder '38 reichen da)
Vielleicht geht das nur mit bestimmten zweizeiligen Displays......schade......
sollte eigentlich nich ärgern, aber was solls.....ich bleib da dran
mit acht Zeilen je 20 Zeichen ließe sich schon was anfangen!!!
Jetzt würde ich mal sagen, der Energiezähler ist grundsätzlich einsatzbereit.
Der Praxistest wird die letzten Fehlerchen schonungslos aufdecken!
Es ist noch nicht zu spät für Verbesserungsvorschläge und neue Ideen.
Dinge die ich noch irgendwie vermisse oder ändern will:
1.Temperaturanzeige
Die hatte ich schon drin, aber wo soll ichs anzeigen?????
eventuell nur als Warnmeldung bei Grenzwertüberschreitung?
und Anzeige nur im "Einzel-Modus" ?????
2.Anzeige der Gesamtspannung
Das scheitert momentan hauptsächlich am noch nicht fertigen
galv.getrennten Messumformer und eben am Platz im Display.
Ich werde den Wert im Wechsel mit der 12V-Akku-Anzeige
anzeigen, wenn mir nicht doch noch was besseres einfällt.
3.vorgegebener Wert beim Abgleich des Drehzahlmessers
ich hatte ja immer ein Poti als Signalgeber, aber wenn man später
mal die Anzeige des Drehzahlmessers korrigieren will, dann hat
man das nicht. Ich denke mal 300A wären da gut, das ist etwa
die Mitte des anzeigbaren Bereichs.Das reicht dann auch, wenn sich jemand
eine andere Skala eingebaut haben sollte, weil die maximale Stromstärke
meist deutlich unter 600A bleibt.
4. eine "Mindestdrehzahl" für den Drehzahlmesser
wer hätte das gedacht, dass die "dynamische Öldruckkontrolle" von VW
derart mit dem Drehzahlmesser gekoppelt ist und dann auch noch
sehr umständlich zu überlisten ist.............
Ausbauen von LED und Piepser wäre die andere Möglichkeit!!!!!
dann wäre da wirklich Ruhe!
5. eventuell noch Umschaltbar für einen größeren Messwandler
...gibt es einen LEM-HASS300 der dann bis 900A könnte??
wenn ja, dann bau ichs mal mit ein, ist wenig Aufwand!
6.(für später mal.....) Auswertung des Tachoimpulses
so Spielereien wie Verbrauch/100Km etc wären schon noch machbar,
aber da fehlt mir momentan die nötige Zeit, um mich darum zu kümmern.
........und wo soll ichs anzeigen?????
vielleicht so:
7.Anzeigen von Sonder-Infos bei Drehen des Knopfes
Das ginge noch! (Danke, Michael !!! ein guter Vorschlag!)
Drehen des Knopfes ist derzeit im Standard-Modus noch ohne
Funktionalität. Da könnte man z.B. in der obersten Zeile so Dinge
wie Aussentemperatur, Akkutemperatur, Motortemperatur
Gesamtspannung, Bordspannung oder was auch immer anzeigen.
.........das Display könnte dann auch wieder automatisch auf
"Standard-Modus" zurückkehren
Der Knopf wird dann aber ganz schön mit Funktionen überladen....
ob das wirklich nötig ist ??????? ich meine, eher nicht, aber
wers will kanns durchaus haben, ist eine reine Programmsache,
und ein Problem der dafür nötigen Anschlüsse. Die Ports dafür
liegen auf dem bislang nicht benutzten roten Stecker neben den Klemmen.
da ist u.A. auch die serielle Schnittstelle drauf sowie der "echte" Reset
und noch manches mehr.
Da die BMS-Geschichte ohnehin eine eigene Hardware braucht, die
hier angeschlossen wird werde ich diese ganzen Zusatz-Spielereien
dort mit unterbringen. In der Grundausstattung wird nicht viel mehr
enthalten sein als bis jetzt vorgesehen ist
Der festeingestellte Grenzwert für extreme Tiefentladung oder Überladen ist
derzeit auf -10% bzw 110% Restenergie festgelegt.
Man könnte dafür auch noch Menuepunkte zum Einstellen
einrichten, aber der Alarm kommt hier auch über die
Einzelspannungsüberwachung und den konfigurierbaren Alarm
gibt es auch noch, das sollte genügen
ich hätte ggfs ein paar (5??) der (unbestückten)Platinen günstigst abzugeben,
da ich wohl kaum alle 15 Stück in nächster Zeit selber brauchen werde.
Die Platinen passen in die "Strapubox 523" -Gehäuse, die es bei Conrad gibt.
Ich habe selber ca. 16 Euro pro Stück bezahlt. (Kleinauftrag, Beta-Layout)
und eine "Serie" werde ich wohl kaum auflegen, weil das
bei so einem Privatprojekt ohnehin kaum möglich ist.
Die Platinen passen in die "Strapubox 523" -Gehäuse, die es bei Conrad gibt.
Nach wie vor ist das für mich eher eine willkommene Programmierübung,
bei der sogar was brauchbares herausgekommen ist, das auf verschidenste
Weise verwertbar ist. Ein Atmga 48 bis 328 mit etwas Peripherie und
Display in einem kleinen Kästchen für kleinere Regel, Mess und
Steuerungsanwendungen. eine H-Brücke bis ca 30A ist auch mit dabei;
12V-Betrieb, serielle Schnittstelle....Spannungsausgang, Messeingang
.......und noch ein paar Dinge mehr........je nach Bestückung....
Genau so was habe ich mir "immer schon" gewünscht!
Eine kleine, billige, universell verwendbare SPS !!!!!!!!
Nachtrag 18.07.2011:
Die ersten Praxistests sind vielversprechend! Michael hat in den letzten Tagen
die alte , aber auf Spannungsausgang für die Tankuhr
umgebaute Version der Box in Betrieb genommen, und zumindest die
Restenergieanzeige über die Tankuhr und die Ampere-Anzeige über den
Drehzahlmesser funktionieren schon mal.
Die "neue" Box ist gleich aufgebaut, was die Schaltung betrifft,
das sollte also auch funktionieren.......wir werden sehen......(läuft auf Anhieb!!!!)
Es gibt noch Probleme mit der dynamischen Öldruckkontrolle,
weil der ab ca 2000U/min also 200A abgefragte und
als Schliesser ausgelegte zweite Öldruckschalter fehlt, und der andere,
eigentlich ganz herkömmlich funktionierende bei Stillstand kein Warnsignal
ausgibt
Hier könnte es eventuell schon genügen,
den Anschluss auf GND zu legen. hierbei kommt es auf den Schaltpunkt an, und
auch darauf, ob die Funktion der Schalter auch bei stehendem Motor
überwacht wird. dann wäre auch noch eine Mindestfrequenz
beim Signal zum DZM nötig.
Ganz schön viel Aufwand, den VW da betreibt!
Notfalls Öldruck-LED und Piepser stillegen,
die braucht eh keiner mehr..........
.........Und noch was völlig anderes hab ich kürzlich mal programmiert:
einen "Frequenzumrichter für Drehstrom bis 250Hz mit PWM-Ausgängen"
auf Atmega48-Basis.
Das war wieder mal eigentlich nur eine reine Programmierübung,
hauptsächlich wegen des Auslesens einer Wertetabelle,
aber das Ergebnis ist recht vielversprechend.
Alle vier Grad werden die drei PWM-Kanäle "upgedatet"
bzw alle zwei Grad, dann halt nur bis 125Hz.
Der Atmega läuft mit 8Mhz, das ergibt ca 16kHz PWM-Frequenz.
(ev. noch bis 10 Mhz, aber dann gibts bei der PWM Probleme....)
Da bin ich leider "festgenagelt", was den Takt anbelangt,
und davon hängt auch der Rest, insbesondere die Timer ab.
Die Sinus-Werte werden aus einer Tabelle ausgelesen,
Das Ganze läuft als Interrupt-Routine, nur das Einlesen
des Analogwertes für die Frequenzvorgabe läuft im Hauptprogramm.
Sogar mit Display gings bei niedrigen Frequenzen,
aber nur zu Testzwecken....
Eine Strombegrenzung und eine Reduzierung/Anpassung der
Spannung bei sehr niedrigen Frequenzen ist bislang noch nicht
drin, aber ich werds zumindest später irgendwann mal versuchen!
Das sollte schon gehen, zumal da nur bei niedrigen
Frequenzen zusätzliche Berechnungen nötig sind.
Die eigentliche Strommessung und Begrenzung müsste ins Hauptprogramm,
aber die Reduzierung der Amplitude bei niedrigen Frequenzen muss leider
mit ins Unterprogramm des Timers, aber da das nur unterhalb von
ca 40Hz (????) so richtig notwendig ist sollte gerade da noch genügend
Rechenzeit übrig sein um die PWM-Pegelvorgaben entsprechend
herunterzurechnen.......erst mal die nötigen Formeln finden,
bzw die Abhängikeiten ausmessen
Ich habe jetzt nicht vor, auch noch einen Controller für AC-Motoren
zu bauen, aber das war noch so ein Versuch,der schon lange
überfällig war.
Die Ausgangssignale der drei Phasen als PWM-Signal mit 5V Amplitude
sehen sehr gut aus, und wenn noch eine "If...then" Zeile im
Interrupt-Unterprogramm Platz hat, dann sollte das Reduzieren der Spannung
bei niedrigen Frequenzen auch noch gehen.
Da sind aber noch weitere Versuche nötig, mal schauen, ob und wann ich
dafür mal Zeit habe..........
Eigentlich will ich demnächst lieber mit den Messmodulen fürs BMS
weitermachen, jetzt wo doch der BMS-Master schon weitestgehend läuft...............
und mir geht der LTC 6802-1 bzw 6802-2 einfach nicht aus dem Kopf.....
Siehe:
http://cds.linear.com/docs/Datasheet/68021fa.pdf
Keine Optokoppler etc , so einer ist zwar auch nicht geschenkt,
aber wenn ich das mit dem Auswerteprotokoll auf die Reihe brächte
wäre das natürlich eine tolle Alternative!
Nachdem ich in den letzten Tagen und Wochen nicht
nur am Layout gefeilt habe, sondern auch noch nebenbei
den ersten "Vor-Prototyp" auf "Herz und Nieren" getestet
habe, und da noch ein paar kleinere Bugs gefunden und
beseitigt habe würde ich mal sagen, es ist an der Zeit,
das Ding mal wieder in der Praxis zu testen.
( Michael, halte Dich bereit ;-) )
Ich fasse mal kurz zusammen, was alles "Stand der Dinge" ist
Die Messung des Stromes funktioniert schon von Anfang an
Die Umsetzung auf 33Hz je 100A ebenfalls
Eine Temperaturmessung ist drin, aber die fliegt wohl raus ???
große Probleme bereitete die Umsetzung der Restenergieanzeige
auf die Tankuhr des Beetle. Zunächst versuchte ich,
per PWM einen Widerstand zu simulieren, was grundsätzlich sogar
sehr gut klappte. 300 bis 30 Ohm waren zu simulieren.
also nahm ich einen 270Ohm Widerstand und einen mit
ca.30 Ohm (50Ohm Trimmpoti) in Reihe.
Den 270Ohm Widerstand taktete ich, indem ich parallel dazu
per PWM einen Mosfet schalten liess. Mit sämtlichen
Multimetern und Messgeräten schien das wunderbar zu
funktionieren, nur nicht in der Praxis...............
Weil die Tankuhr selber taktet, also nur dann Strom schickt
wenn gemessen wird war der Elko den ich zum Glätten
parallel geschaltet hatte immer leer und so kam keine
brauchbare Anzeige zustande. Mit jeder altherkömmlichen
Tankuhr mit Gleichstrom-Versorgung hätte es wohl geklappt.
egal...... jetzt ist umgestellt auf einen Spannungsausgang,
das muss funktionieren! im Menue ist das Ganze jetzt
sehr luxuriös einstellbar, ganz gleichgültig, wie herum
das Signal des Tankgebers läuft. Auch kann man den Mittelpunkt
also 50% eigens einstellen, um "krumme Kennlinien"
auszugleichen.
Nehmen wir das Ding doch einfach mal in Betrieb!
Folgende Leitungen sind anzuklemmen:
GND
12V Dauerplus
12V "Zündung"
5V Versorgung des LEM
Signal des LEM
GND des LEM
Signal zum Drehzahlmesser
Signal zur Tankuhr
Reset (z.B.vom Ladegerät, +12V = Reset)
Temp-Fühler +
Temp-Fühler GND
Warnausgang (Relaiskontakt, schaltet nach GND)
Den Stromwandler simuliert man zunächst einfach mit
einem Poti
Jetzt kommen die ganzen Grundeinstellungen............
Ins Setup-Menue kommt man, indem man bei
gedrückter Enter-Taste einen Reset auslöst.
Dann erscheint eine Meldung:
"Starte Setup
Taste loslassen"
das sollte man befolgen ;-)
Es gibt zum Einstellen aller Werte nur vier Tasten
Rauf, Runter, Weiter(=Enter) und Reset
Ich werde diese Tasten aber durch einen Drehimpulsgeber
mit integrierter Taste ersetzen, dann gibts nur noch
einen einzigen Knopf. (schon getestet....das geht prima!)
links = runter ; rechts = hoch ; kurz drücken = Enter
und lange drücken = reset
Die Auswertung muss nur noch ins Programm integriert werden.
Menue Seite 1
Das erste Menue ist zum Einstellen der Akkukapazität.
Wert einstellen mit Rauf oder Runter
Bestätigen mit Enter oder vorher abbrechen mit Reset
Enter speichert den eingestellten Wert und man landet
in der nächsten Menue-Seite.
Menue Seite 2 , 3, und 4 :
Hier wird der Reihe nach die Ausgangsspannung zur
Tankuhr für 100% 50% und 0% (=leer) eingestellt.
Während man im Menue ist wird die gerade eingestellte
Spannung bereits ausgegeben, so dass man das Ergebnis gleich
kontrollieren kann.
Der im Display angezeigte Richtwert stimmt nicht ganz, müsste etwa
Faktor 0,027 statt o,o2 sein, aber das hilft auch niemandem weiter....
also nach der Tankanzeige richten, darauf kommts ja an!
Menue Seite 5:
Einstellen des Nullpunktes des Stromwandlers
hier ist der Wert auf den angezeigten Istwert einzustellen.
Das könnte man automatisieren, aber dann hat man auch
keine Kontrolle mehr......deshalb von Hand!
Menue Seite 6:
Messung beim Laden Ein oder Aus
Aus: In die Akkus zurüchfliessender Strom wird nicht gemessen
Ein: Es wird sowohl Entnahme als auch Nachladen gemessen.
Bei einer Auflösung von ca. 3A (1,56 wären auch möglich, aber dann
wirds zu unruhig) kann man bei kleinen Strömen keine Wunder
an Genauigkeit erwarten....... obs Sinn macht wird sich zeigen.
Bei eingehendem Strom wird dann auch "Ladevorgang" angezeigt
Menue Seite 7:
Schwelle des Relais
hier kann man einstellen unterhalb welcher Grenze das
Melderelais anzieht (Schaltet nach GND)
Bezogen auf % an Restenergie. Der Restenergiezähler
zählt übrigens bis -25% weiter, das hilft beim Rantasten an den
korrekten Wert.
Menue Seite 8:
Hier kann man die Anzeige des Drehzahlmessers abgleichen
in 1%-Schritten. 80% -120% Std= 100%
Im derzeitigen Programm zwar noch nicht
vorgesehen, aber bei einem erweiterten Verstellbereich
könnte man so auch auf Sechs- und Achtzylinder-Drehzahlmesser
abgleichen. 100% = 4zyl 150% = 6zyl 200% = 8zyl.
Mal erkundigen, wo die Frequenzen bei Diesel-DZM liegen
Ich habe gerade keíne Lust, nochmal umzuprogrammieren.
Das kommt dann in der nächsten Version.
nochmal Enter gedrückt, und die Box sollte laufen!
Durch die mögliche Berücksichtigung des Nachladens
gabs noch ein ganz neues Problem........
Ich schicke den Prozessor derzeit noch nicht "schlafen"
Das Gerät braucht ohne Beleuchtung und Sensoren
gerade mal 20mA ......was solls? Alle Verbraucher
und auch die Ausgangstreiber für DZM und Tankuhr
laufen über "Zündung", der Rest immer.
Wenn also nun der Stromwandler nicht mehr versorgt
ist, ebenso der Temperaturfühler, dann wurden
plötzlich 800A Nachladen angezeigt und -270°C........
Das war nicht schön, deshalb wird dann jetzt
Standby/OFF angezeigt und 0A. Es dauert zwar beim
Ausschalten der "Zündung" ein paar Sekunden, aber
das soll nicht weiter stören. (Das krieg ich auch noch hin!)
Falls noch jemand gute Ideen hat, was noch verbessert werden
soll.....bitte melden!!!!
Mein Plan für die Zukunft sieht so aus, dass ich in der zweiten
oder in der zweiten und ev. dritten Zeile die Funktionen meines BMS
unterbringen möchte. Also zumindest die Anzeige der Zellen mit
der höchsten und der niedrigsten Spannung.
Noch besser die aktuell gemessene Zelle und die Gesamtspannung,
schliesslich wären mir KWh lieber als Ah -Anzeige,
aber das ist noch Zukunftsmusik, aber machbar!
Die Anzeige der bereits entnommenen Energie und der Gesamtkapazität
ist nicht so wichtig bzw lässt sich z.T. in die 4.Zeile quetschen
Rest 90.1/100Ah=90% ......oder so ähnlich......max 20 Zeichen je Zeile!!
Die Temperatur braucht wohl keiner und die Hz die der DZM kriegt
sind noch eine "Altlast" aus der Anfangsphase.
jetzt muss erst mal die Tankuhr was vernünftiges anzeigen.
Ich kann das leider nicht selber testen, weil ich andere Autos habe.
(und da hätte das bisherige System auch funktioniert!)
........und der Drehgeber statt der Tasten muss rein! (kein Problem!)
mfG
Franz
............kleiner Nachtrag........ich habe mal versuchsweise einen Atmega168
genommen und das Energiezähler-Programm draufgeladen. Das lief, klar doch!!
dann habe ich das Programm des BMS-Master aus der Versenkung geholt
und beide Programme zusammengemischt. gar nicht so einfach, da
kollidierten so manche Dinge, aber erst mal alle Variablen umbenannt
auch für etwas Überblick meinerseits......um unterscheiden zu können
was denn nun für Energiezähler und was für BMS gedacht ist.
nach ein paar kleinen Fehlermeldungen-irgendwas übersieht man doch immer...
liefen tatsächlich beide Programme zugleich auf dem selben Prozessor.
derzeit noch nacheinander, und das Display schaltet immer komplett um,
aber darum gings auch gar nicht, aber zumindest ist klar, dass zum Einen der
Platz reicht (derzeit 71%, noch nichts optimiert, vieles doppelt) und dass wirklich die
BMS-Master Geschichte auch noch nebenbei im Energiezähler laufen kann.
(alles im Hauptprogramm, da ist nichts Zeitkritisches drin, die Energiezählung und die
DZM-Umsetzung laufen in Interrupt-gesteuerten Unterprogrammen, wobei
Unterprogramm nicht gut ausdrückt, dass die Unterprogramme eigentlich
absoluten Vorrang haben..)
Da ist noch einiges zu tun bis das wirklich passt ohne irgendwo zu kollidieren,
AD-Wandler sind doppelt belegt, unterschiedliche Menue-Strukturen
aus Platzgründen stillgelegte Funktionen etc.
ich muss mich da erst wieder so richtig reinversetzen in alles,
das ist nun schon wieder eine Weile her,
aber es ist alles problemlos kombinierbar, soviel steht schon mal fest,.
und es ist noch immer Platz für zusätzliche Features!
(insbesondere Menuepunkte zum Konfigurieren)
Die Preisgestaltung bei den Atmegas ist auch ein wenig seltsam.......
Der Atmega 48 ist in letzter Zeit teurer geworden, aber die größeren
werden eher billiger und der Preisunterschied zwischen dem Atmega88
und dem Atmega 168 mit doppelt so viel Flash-Speicher beträgt gerade
mal 5 Cent!!!. den genauen Betrag habe ich grad nicht im Kopf, aber es sind
keine vier Euro. ....eigentlich geschenkt angesichts der ganzen Funktionen!
Das größte Problem wird letztlich sein, all die gesammelten Infos auf dem
EA-DIP 204 mit 4 x 20 Zeichen lesbar und übersichtlich darzustellen.
Ich habs einfach mal so angeordnet:
Da ich keine Messwandler dran habe, ist der Spannungswert jetzt nur simuliert.
Zelle 07 wurde gerade erfasst mit 4,05V. Die 12V Bord"batterie" hat 12,15V
Höchste Zelle: Zelle01 mit 4,05V Niedrigste Zelle: Zelle01 mit 4,05V
Stromstärke 792A , 1Minute ist seit letztem Reset vergangen
rechts davon ist noch etwas Platz für Statusmeldungen.........
Die könnten ja z.B. auch die Zeitanzeige überdecken.
Restenergie = 114,2 von 128Ah = 89%
Ein bisschen hab ichs nochmal umgestaltet,
und die Statusmeldung nach links versetzt,
( Entn. ; Laden ; Standby ; Alarm ; ????? )
so ist das besser lesbar.
Noch ein wenig mit der Formatierung spielen,
(Stunden und Minuten mind.2-stellig , die %-Angabe unten immer ganz rechts etc.)
dann sollte das so allmählich passen!
Mehr geht wohl nicht, ohne unlesbar zu werden.
Nachtrag 25.05.2011:
Die Formatierung ist optimiert, ich habe beschlossen, dass das jetzt einfach mal so passt!
Das Problemchen mit zu langem Text bei negativen %-Werten ist behoben.
jetzt wird bei über 100% und unter 0% ein anderer Text gezeigt.
z.B.: " Voll! 107.7Ah =107% " bzw "Leer! -27.3Ah = -27%"
Bei negativen Zahlen kommt das Vorzeichen zusätzlich dazu.
Das Vorzeichen müsste ich entweder dauernd zeigen, das gefällt mit aber nicht,
oder man legt für negative Werte eine andere Formatierung fest...
ich habe mich für letzteres entschieden.
Beim Laden steht ein - vor der Amperezahl, das ist irgendwie"doppelt gemoppelt",
aber das lasse ich vorerst mal so da müsste ich sonst eine neue Variable festlegen
und den Betrag des Wertes anzeigen.... das ist mir zu viel Aufwand
nur für die Optik. Eigentlich ist es ja auch so korrekt, wenn ich die Entnahme
als positiven Wert anzeige.
Heute Abend habe ich den Drehimpulsgeber in Betrieb genommen und ins
Programm integriert. Puuuuhhh....... war nicht ganz so einfach.........
Der "Encoder"-Befehl in Bascom ist offenbar ziemlich unbrauchbar, sobald das
Programm etwas größer ist, oder wenn da sogar wie in diesem Fall
"wait" Befehle drin sind.(in der Zeit passiert halt NICHTS !)
Die Impulse kommen einfach zu schnell hintereinander,und mein
Programm ist incl. Kommentaren und Leerzeilen doch mittlerweile
auf über 1300 Zeilen angewachsen.........
Im Testprogramm gings noch halbwegs, aber im doch schon recht umfangreichen
Energiezähler + BMS-Programm wurde ich nicht mehr froh damit.
Eigentlich wollte ich keinen der "wertvollen" Interrupt-Eingänge mit Eingabetasten
belegen, aber das reagierte alles zu langsam, daher nahm ich doch zumindest einen
Interrupt-Eingang für den Encoder. Damit funktioniert die Eingabe auch, wenn man
etwas schneller am Knopf dreht.In diesem Fall ist das eigentlich völlig egal, die
Kontakte hängen sowieso an den Interrupt-Pins, aber man denkt ja weiter......
Manchmal braucht man diese Eingänge ganz einfach für was Anderes.
Den Drehimpulsgeber finde ich halt ganz besonders praktisch,
weil er 3 - 4 Tasten ersetzen kann und die komplette Bedienung ermöglicht
Ich werte nur die negative Flanke einer Taktspur per Interrupt aus und
vergleiche dann im Unterprogramm den Zustand der zweiten Spur
um Drehrichtung und Takt zu erkennen. Es ginge auch feiner aufgelöst, aber das möchte
ich gar nicht feiner haben. Ich werde ev. noch versuchen, die Flanke mit dem
"debounce"-Befehl und kürzerer Zeiteinstellung auszuwerten......mal sehen obs was bringt.
Der "Encoder"-Befehl war mir einfach zu langsam. Ich habe einiges versucht, die
Entprellung anzupassen, aber das war zwecklos!
Das war auch nicht die Ursache der Probleme!
Vielleicht sollte noch erwähnt werden, dass die aktuelle Programmversion die
Ports und Pins benutzt, die ich auf meiner "Universalplatine" vorgesehen habe.
Da ist fast jeder Port anders belegt, als im "Vor-Prototyp" aber so macht das einfach
noch mehr Sinn, insbesondere weil man so mehrere PWM-Ausgänge, die serielle Schnittstelle,
die Interrupt-Eingänge und die AD-Wandler gleichzeitig nutzen kann.
Das sollte schon so passen!Bisher funktionierts wie erhofft. Ich hoffe, die Platinen
noch am Freitag zu bekommen, dann gibts vielleicht da schon einen ersten Test.
wird aber wohl Montag werden.
Jetzt gehts eh drum, wie ich am Besten weiter mache.
Wenn die Tankuhr- Ansteuerung klappt, dann wäre zumindest die Energiezähler-
Variante einsatzfähig. Die BMS-Master-Funktionen könnte ich ev. abschaltbar machen.
oder einfach entfernen bis ich benutzbare Messwertaufnehmer habe.
da gibts noch viel zu tun, und ich bin mir immer noch nicht sicher, wie ich es denn
aufbauen soll. Die Variante, mit einem Baustein gleich vier Zellen zu messen
wäre mir die liebste aber der unterschiedliche Strom in den Eingangsspannungsteilern
gefällt mir nicht. Das kann man aber anpassen.
Ein Attiny je Zelle wäre diesbezüglich besser, aber dann brauche ich auch je eine
galv. getrennte Schnittstelle pro Zelle.
Die Messung an sich funktioniert schon lange.
Die Energiezähler-Einheit läuft so weit wie gewünscht, da fehlt nur noch der
Praxistest...........Insbesondere die Tankanzeige bereitete Probleme!
Eine kleine Änderung habe ich doch noch gemacht:
So wie bisher schon bei Tiefentladung von mehr als 25% gibt es jetzt
auch eine Meldung bei Laden auf mehr als 125%.
Der Wert ist einfach mal willkürlich gewählt, könnte man auch noch ins
Menue mit reinpacken.......???????
Beim BMS gibt es auch wieder ein paar neue Features.
Neben den Einstellmöglichkeiten für oberen und unteren Grenzwert sowie
der Zellenanzahl per Menue ist nun auch die Geschwindigkeit des Weiterspringens
zur nächsten Zelle im Menue einstellbar (Programmlaufzeit + 10 - 2550 ms)
Ausserdem fehlte noch die Möglichkeit einzelne Zellen gezielt zu messen.
Das ist jetzt auch möglich. Ein kurzer Druck auf den Knopf schaltet um auf
Einzelmessung (Min-Max Anzeige ist in diesem Modus nicht aktiv)
Drehen am Knopf wählt die nächsten Zellen.
ein weiterer kurzer Druck schaltet wieder zurück auf automatischen Durchlauf.
Im Normalbetrieb ist die Drehung des Knopfes ohne Funktionalität.
Kurzer Druck schaltet um auf Einzelmessung und wieder zurück.
ein langer Druck (ca 7s) setzt die Messwerte zurück ("Warmstart")
und ein noch längerer Druck bzw gehaltene Taste nach Reset startet das
Setup-Menue. Die BMS-Menuepunkte kommen nach den Zähler-Einstellungen.
Eventuell noch zusätzlich einstellbar geplant:
Schwelle für Alarm "Ueberladen" (mehr als ....%)
Schwelle für Alarm "Tiefentladen"(mehr als ....%)
Warnschwelle oben (Vorwarnung ohne Alarm)
Warnschwelle unten (Vorwarnung ohne Alarm)
Anziehen des Melderelais bei BMS-Alarm
Alarm bei Fehler Bordbatterie
Na ja, irgendwann ist Schluss.......Das reicht doch, oder??
wenn das so weitergeht dann muss ich im Menue noch
verzweigen......... Letzter Stand an Programmumfang:
derzeit sind 69% Flash belegt, da geht noch vieles......
aber anzeigen wird immer schwieriger!
Die Warnmeldungen kommen derzeit in der untersten Zeile.
eigentlich könnte man meinen, sie wären in der dritten Zeile besser aufgehoben,
aber da ich die %-Werte mit Erscheinen der Meldung festlege
würde sich der Wert dann ohnehin nicht mehr ändern.
Es würde also gar keinen Sinn machen, SOC weiter anzuzeigen.
Man bekommt die Meldungen nur per Reset wieder weg.
Eigentlich ist das durch Zufall entstanden, weil "früher" nur die
Tiefentlade-Meldung existierte und ein Nachladen nicht vorgesehen war,
aber das ist ganz gut so! Das bleibt so!
Nachtrag 30.5.2011:
Eigentlich hätten die Platinen heute ankommen sollen...na ja dann halt morgen...
An dieser Stelle ist gerade Zeit, ein wenig über die Messmodule nachzudenken.
Da gibt es einige noch nicht wirklich gelöste Problemchen, aber die sind
vom Ansatz her wichtig, also von direktem Einfluss aufs Gesamtkonzept.
Hier gehts um die Frage der Referenzspannung, der Versorgung und
der galv.Trennung der Datenübertragung und der Versorgung.
Alles hat Vor- und Nachteile perfekt ist keine Version.Und da ich die Daten
seriell übertragen will brauche ich auch noch einen Quarz je Messmodul.
Wie weiter oben schon erwähnt habe ich zwei "Favoriten"
Variante1 : Je ein attiny25 pro Zelle +Quarz + Optokoppler, der könnte
direkt aus der Zelle versorgt werden,wenn er mit interner Referenz von 1,1V
arbeitet. die 2,5V Referenz kann ich nicht nehmen, da die Zellenspannung
so weit abfallen kann.
Vorteil: Messauflösung, Stromverbrauch(?), Stromaufnahme alle gleich
Nachteil: Quarz und 2 Optokoppler je Zelle
Variante2: Je ein Atmega48 für je vier (bzw fünf(?)) Zellen
Spannung wird aus der Differenz von zwei Eingängen ermittelt. nur 1/8 der
Genauigkeit bzw Auflösung, aber das genügt gerade noch.
Immer vier Zellen als Einheit uberwacht, Versorgung aus den Zellen,
oder auch per "ADUM"-Wandler. Hierzu fehlen noch Versuche, was letztlich Sinnvoller ist.
Die "Adum" brauchen ziemlich viel Leistung, und die Ausgangsspannung ist nicht
geregelt und 5,2V am Ausgang ist ein "doofer" Wert. also entweder direkt
den Atmega damit betreiben und die interne Referenz von 1,1V nutzen oder
auf 3,3V ausweichen. Die Qualität der internen Referenz ist hier entscheidend.
Dazu fehlen noch Versuchsergebnisse.Bei einem "ADUM" für vier Zellen
ist die Optokoppler-Frage auch gleich gelöst.Mit "ADUMWürden die Wandler
vom 12V-System versorgt und an den Akkus wären "nur" noch die Eingangsspannungsteiler.
Die sind aber nicht zu vernachlässigen, und da jeweils gegen ein und die selbe Masse
gemessen wird sind die Stromstärken nicht identisch.
Das müsste man auf gleiches Niveau erhöhen und das möchte ich nicht.....
Aus den 14V könnte man den Atmega aber auch versorgen , dann aber nicht abschalten,
aber geht das überhaupt? über die Schutzdioden würde der Mikroprozessor
auch mit Spannung versorgt werden. das muss ich auch noch testen!
trotzdem ist mir diese Variante lieber, zumal da auch noch vier PWM-Ausgänge da wären
um eine Balanzier-einrichtung anzusteuern. (gar nicht ganz einfach, wegen der
spannungspotenziale bis 14V und der Betriebsspannung des Atmega von 5V)
Ich werde vorrangig versuchen die Version "1 Atmega für vier Zellen" in eine
praxistaugliche Form umzusetzen und vielleicht kann ich sogar auf die Optokoppler
bzw "ADUM" verzichten....mal sehen.....da war mal was....
siehe Seiko S-8209BAA bei denen werden die Daten über eine Kette von
Mosfet durchgereicht (Daisychain) aber ich sehe da Probleme beim Anklemmen.
Siehe hierzu:
Damals hatte ich auch schon den LTC6802 im Visier.....abgesehen von der nicht ganz
einfachen Auswertung habe ich auch schon negative Meinungen zu dem Chip gehört.
Es soll angeblich Betriebszustände bzw Defkte geben, bei denen der Spannungswert einer
Zelle "einfriert" und weiter ausgegeben wird ohne sich noch zu ändern.
(Ich konnte das nicht selbst nachprüfen, das ist also keineswegs belegt, eigenntlich wäre der
Baustein sehr gut geeignet für das, was ich vorhabe!!)
siehe dazu auch:
http://www.linear.com/demo/DC1393B
Es ist mal wieder an der Zeit, dass sich was tut.......
Heute hab ich mal begonnen, eine halbwegs universell
einsetzbare Platine zu zeichnen, die man je nach Einsatzzweck
unterschiedlich bestücken kann.........
Ich habe mich dafür entschieden, das mit EAGLE zu machen.
(Das verwenden wir auch in der Firma und es hat sich
bestens bewährt) Die kostenlose Demoversion ist
bis zum halben Euro-Format verwendbar, das reicht in diesem Fall.
Das Programm ist aber auch als "Vollversion mit Einschränkungen"
nicht allzu teuer.Erst wenn man "alles" haben will gehts richtig
ins Geld!
Ich habe damit noch kaum gearbeitet, aber es scheint
nicht allzu schwer zu sein......wenn ich da an "früher" denke,
als ich in den 90er Jahren mit ORCAD und TANGO ein paar
Leiterplatten entworfen habe und dann der 386er PC über Nacht
rechnete und dann meist eine Leitung nicht verlegen konnte.......
Zunächst muss ein Projekt angelegt werden.
Da sind dann Schaltpläne und Platine etc. zusammengefasst
Ein Anfänger steht zunächst vor Allem vor dem Problem
mit den Bibliotheken, das sind die Dateien mit den
Bauteil-Definitionen und Zeichnungen der Pads etc.
Da werde ich mir wohl noch einige Male helfen lassen müssen.
Lädt man die falschen Bibliotheken ,dann findet man genau das
Teil nicht, das man gerade platzieren will. Bei Bibliotheken
unklarer Herkunft sind oft irgendwelche Fehler verborgen.
Da kann schon mal eine Bohrung zu klein sein....
Es ist wichtig, hier nicht den Überblick zu verlieren.
Am Besten ist es fast schon sich eine Eigene mit den wichtigsten
Komponenten anzulegen, die man meist verbaut.
das spart viel Sucherei, und man kann sich drauf verlassen.
insbesondere, wenn man ein Projekt auch mal auf einem anderen
Rechner weiterbearbeitet ist es von Vorteil, die passenden
Bauteilbibliotheken zur Hand zu haben.
(....das war damals mit den alten Programmen oft ein
riesen Drama.....wenn man später mal an einer alten Platine
was ändern musste passte oft gar nichts mehr. Deshalb
erwähne ich das hier.
Aber der erste Schaltplan nahm recht schnell Gestalt an.
Da passen noch keine Bauteilnamen und Typen, und so manches
wie Schutzbeschaltungen etc. fehlt noch
aber das sollte nur mal grundsätzlich zeigen, wie ich mir das so vorstelle.
Einfach so zum Einarbeiten
Kern der Platine ist ein Atmega der Reihe 8, 48, 88, 168 etc....
mit denen arbeite ich am liebsten, weil die sehr universell verwendbar sind.
(Und mit Bascom wunderbar einfach zu programmieren!!!)
Ich möchte einige der AD-Wandler nutzen können, dazu brauche ich einige
Spannungsteiler an den Eingängen, alle freien Ports sollen über Widerstände
nach draußen geführt werden.Das kann man später als Ein- oder Ausgang nutzen.
Das Ganze soll mit 12V laufen, ggfs zwei getrennte 12V (Dauer- und Zündung)
5V sollen zusammen mit einem AD-Wandler-Eingang auf eine Klemme rausgehen für
den LEM HASS200 Stromwandler bzw für den Positionsgeber bei der
Positionier-Geschichte oder für den "Fahrtregler" bei PWM-Einsatz.
Die Mosfet bilden eine PWM H-Brücke, das brauche ich für ein
"ganz anderes Projekt" da muss ein kräftiger Stellmotor exakt in Position fahren.
Die später vorgesehenen Transistoren schaffen kurze Zeit (ca.1min) ca 30A ohne
Kühlung, damit kann man schon einiges anfangen, selbst wenn man damit nur was
schaltet. Als Mosfet-Treiber sind TC4431 vorgesehen, die an sich schon als
recht kräftige Treiber nutzbar sind und auch für die Umsetzung von 5 auf 12V
gute Dienste leisten. (leider nicht ganz kurzschlussfest-schade.......)
Ich hatte schon überlegt, als Steuer-Rechner für die Mosfet einen ATtiny 26
einzusetzen, aber dann wäre die Platine nicht mehr so universell konfigurierbar
gewesen. Aber für reine PWM-Geschichten sollte man sich den mal genauer
anschauen.Der hat zwei PWM-Kanäle mit je einem invertierten und einem nicht invertierte
und nicht überlappendem Ausgang, sowie bis zu elf (?) AD-Wandler-Eingänge
Ebenso recht interessant ist der ATtiny 24 der hat u.a. einen 16bit-Timer
wie ich ihn für die Umsetzung Stromwandler-Signal zu Drehzahlmesser-Takt
brauche.Aber das kann der Atmega 48 und seine "großen Brüder" auch.
Deshalb ist der Atmega48 HIER die bessere Wahl.
An Port B betreibe ich normalerweise mein Display (EA-DIP204)
Da halte ich mich an die Belegung des STK500 - Boards,
so brauche ich nur umstecken.
(Da ist alles auf einem 10-Pol Bandkabel vereint, incl. Versorgung)
Da sind auch noch die Programmier-Eingänge drauf und leider auch die
PWM-Ausgänge von Timer 1 und 2, die dadurch blockiert sind.
Das macht aber nichts, wenn ich Timer 1 und 2 nicht für PWM
benutze, sondern nur als Zeitbasis und da per Interrupt
irgendwelche Unterprogramme steuere.
Wenigstens die PWMAusgänge von Timer 0 liegen auf Port D,
und da kann ich sie benutzen. Im Notfall müsste man halt den betreffenden
Anschluss fürs Display auf einen anderen Port legen.
Programmieren geht auch mit Display, das zeigt dann eben wirres Zeug.
Da alle Programmierleitungen auch auf den Displaystecker gehen
kann ich auf den ISP-Anschluss verzichten und mit einem Adapter
über den Display-Anschluss umprogrammieren.
(über kurz oder lang wird wohl eine SMD-Version des Atmega
rein kommen, und die ist dann fest eingelötet, da muss das Programmieren
des Gerätes funktionieren)
Port C sind die AD-Wandler-Eingänge, die aber auch als Ausgang benutzt
werden können.
Port D hat die ganzen "spezialisierten" Ein-und Ausgänge.
D0 und D1 ist für die serielle Schnittstelle.
Wenns vom Platz noch geht sollte ev noch ein MAX232 drauf!???
Der Platz reicht aber nicht, aber bei einer SMD-Variante muss das sein!
D2 und D3 sind die Interrupt-Eingänge, z.B. für zeitkritische
Flankenerkennung bei Trigger- und Zähl-Funktionen
D4 ist meist frei verwendbar (XCK)
D5 und D6 sind die PWM-Ausgänge von Timer 0
D6 und D7 sind die Analog-Komparator-Eingänge
Da muss ich noch überlegen, wie ich das mache, dass man
D6 ggfs für den Komparator nutzen kann.Das hab ich
aber noch nie gebraucht.
Das wird zwar nicht die eierlegende Wollmilchsau,
aber als Energiezähler, BMS-Zentrale, Positioniersteuerung
und Fahrtregler, halt als kleine SPS (als Bausatz ???)
will ich das selbe Layout nutzen können.Sollte klappen!
Mal schaun ob ich das alles auf die nutzbaren 60 *70 mm
der 70 * 83 mm großen Platine packen kann.
Möglichst mit bedrahteten Teilen zwecks Lötbarkeit.
(da gibts bei Conrad so geniale kleine Modulgehäuse,
und da soll das rein! Best.Nr. 521256)
Ev noch ein Relais vorsehen? das wird eng!
Das reicht fürs Erste.
Ich werde in der nächsten Zeit sowohl am Layout als auch am Energiezähler
weiterbasteln, um alle neuen Ideen auch im Layout zu berücksichtigen.
Da hat sich in den letzten Tagen nochmal einiges geändert bzw. ist noch
einiges dazugekommen.
Das mit der frei konfigurierbaren Tankanzeige hatte ich schon erwähnt.
Die Umschaltung, ob Nachladen erfasst wird oder nicht ebenfalls.
Der Nullpunkt des Messwandlers kann eingestellt werden.
Ganz neu ist ein Relaisausgang der in %Restenergie konfiguriert
werden kann. Das Relais zieht bei Unterschreiten der Schwelle an.
Der Schliesser geht nach Gnd. (Ob da der Platz reicht.........
Die Temperaturmessung steht ebenfalls auf der Streich-Liste........)
Und......man kann jetzt den Drehzahlmesser abgleichen
(in 1%-Schritten, 100% = Std= 4-Zyl; 150%=6-Zyl; 200=8-Zyl)
Alle Konfigurationen erfolgen per Menue, das Menue wird gestartet
indem bei gehaltener "Enter"-Taste ein Reset ausgelöst wird.
So genügen vier Tasten zum Bedienen. (rauf runter weiter und Reset)
Bei Reichelt (anderswo auch....) gibt es ganz tolle Drehimpulsgeber
mit integriertem Taster. Ein Auswerteprogramm dafür hab ich schon
mal geschrieben.....Das wär auch was! links rechts und Enter ist kein
Problem, und wenn man dann noch per Zeitschleife mit der Enter-Taste
den Reset auslösen würde......... warum eigentlich nicht?
Ein Knopf für die gesamte Bedienung!
antippen = Enter, sehr lange drauf = Reset......... Das geht!!!!!!!!!!!
Vom Programm her ganz einfach, ein paar verschachtelte If..then-Schleifen
mit Wartezeit und eine Sprungmarke an den Anfang wo alle Variablen
zurückgesetzt werden. Das ist eigentlich nur ein "Warmstart", aber
das erfüllt seinen Zweck perfekt.Man muss eigentlich nur mit
dem "DEBOUNCE"-Befehl aufpassen! der muss vorher stehen
bzw vorher und nachher, je nach Funktion.
Der wertet schliesslich die selbe Taste aus!
Nachtrag 5.5.11:
Heute hab ich mal versucht, alles auf die Platine zu bringen.
Das sieht schon sehr gut aus!
Noch ein bisschen besser anordnen, aber das passt alles drauf!
Da haben also auch ein paar Extras noch locker Platz.
Den Spannungsregler über den Atmega, Treiber und Transistoren drehen,
damit links die Leistung und rechts der Prozessor ist.
Das ist fast schon gut so!
So macht das Spass!
13.05.2011:
Alles ein bisschen besser angeordnet und noch einige Teile zusätzlich
für alle möglichen und unmöglichen Fälle und schon schaut alles
ganz anders aus.
So passt das hoffentlich einigermaßen!
Ich lasse mal ein paar dieser Platinen fertigen, und
dann wirds interessant!
ganz ohne Drähte wirds nicht gehen, aber mehr
Brücken und Jumper konnte ich hier nicht mehr
unterbringen.....Wir werden sehen!....
.....so sieht das dann aus!
Ich bin begeistert! Natürlich habe ich eine Kleinigkeit übersehen,
aber das ist nicht wirklich schlimm, eine Leiterbahn ist zu dünn,
ein 2cm langer Draht auf der Rückseite korrigiert das.....na ja.....
(Da hat Eagle eine Leitung neu verlegt, bzw ich hab das selbst veranlasst,
und dann hab ich die kurze dünne Leitung übersehen....Typischer Fehler!
passiert auch den Profis regelmässig.....)
Irgendwie verhält sich der Online-Editor dieses Blogs
neuerdings recht seltsam............
Die Anzeige der regelmäßigen Leser funktioniert genausowenig
wie die Anzeige der letzten Kommentare.................
Mal kann ich keine Leerzeilen einfügen, ein andermal
hab ich welche drin und bekomme sie nicht weg...........
Ok, da ist das Problem mit dem Unterschied von
Enter und Shift + Enter (da gewöhne ich mich wohl nie dran)
aber das ist es in diesem Fall nicht.
Der Textlauf um Bilder ist total anders als später beim
Betrachten..............
Die ganze Formatiererei ist irgendwie gestört...............
Das nervt!!!!!!!
Hat jemand eine Ahnung was da los ist?
Ich habe deshalb auch mal eine andere Vorlage ausprobiert,
weil mir bei der bisherigen das Textfeld zu schmal war
und sich die Breite bei der "Simple"-Vorlage nicht
verändern ließ. Gefällt mir besser als die vorherige!
na ja.........
mal sehen, vielleicht nur eine vorübergehende Störung!
Nachtrag 23.April:
Hmmmmm..................jetzt wirds interessant!
Vorhin war ich über einen Anschluss der Telekom online,
da gings nicht! (oder lags am Browser IE6 auf WIN2000 ?)
Jetzt per 1&1 und Firefox funktionierts plötzlich!!!
schon seltsam!
Wer blockiert da wen ????????
Nachtrag 26.April:
Offenbar ist das schon wieder ein neues IE6-Problem.
Mit Firefox passt alles..........
............auch wenn WIN2000 veraltet ist.......
Das ist schon eine Frechheit, dass es von Microsoft nicht nur
keinen brauchbaren Browser dafür gibt, sondern dass jetzt auch noch
der gute alte IE6 derart abgesägt wird, indem an unnötigen Stellen
Funktionen eingebaut werden so dass nichts mehr so richtig funktioniert.
Ich kann diesen ganz speziellen PC aber nicht so einfach umstellen...........
Da greifen zu viele Dinge ineinander, und diese Installation lässt
sich nicht wieder gleichwertig herstellen.Zu viele teils sehr alte
Spezial-Programme drauf, die anderweitig unverzichtbar sind
(Ich habe noch Vista auf einer anderen Partition drauf, aber das taugt
ja bekannterweise nichts, und bremst nur.............)
Nachtrag 15.06.2011:
..........und jetzt kann man mit IE6 nicht mal mehr Kommentare abgeben...super!........