Translate

24 November 2011

Erstmals wirklich mit dem ATtiny24-Messwandler gemessen

Heute wars soweit!
Der ATtiny24-Messwandler hat erstmals nicht nur Reihen aus Bytes
übertragen, sondern auch mal wirklich selber eine Spannung gemessen
und übertragen.

Da ist noch nicht an der Auswertung gefeilt etc,
sondern nur mal ganz grob die Übertragung an sich getestet.

Der Wert wird hier im Empfänger umgerechnet und angepasst, das muss später
natürlich im Messwandler abgeglichen werden, aber so gings jetzt
einfacher und zum Testen reicht das auch.
Später muss natürlich auf die Zahl aus dem Messwandler Verlass sein!
Jeder Abgleich bzw jede Korrektur muss vor der Übertragung erfolgen.

Der Wandler hat das "Daisychain-Programm" drauf, das ich kürzlich mal ganz schnell
getippt habe. (Natürlich war noch ein kleiner Fehler drin....vielleicht findet ihn jemand...;-).....
eine Variable ist zu klein definiert....das passiert schnell mal......)

aber jetzt funktioniert das!

Anmerkung vom 26.nov.2011:

Die Startzeichen haben sich geändert! eventuell gibt es noch eine Änderung!
Neuester Stand:
"1" Wird ohne Verzögerung durchgereicht und löst in jedem Messmodul
eine Spannugsmessung aus
"2" ist das neue Startbyte und startet in Kombination mit "3"das Auslesen der
zuvor mit "1" erfassten Messwerte.
Sinn und Zweck ist, die Messwerte zeitlich möglichst knapp zusammen zu haben.
Der rest bleibt sinngemäß gleich


Der Auswerterechner schickt zuerst den Lesebefehl (1) der so schnell wie möglich an alle
weitergeleitet wird und in jedem Modul eine Messung auslöst, aber noch keine Übertragung
danach schickt erein Startbyte (2) raus und auch gleich ein Stopbyte(3)
es ist ja noch kein Messwert im String.
Der Messumformer erkennt zunächst die "zwei" und setzt seine "Datenzeichenkette"
auf 0
Dann schreibt er die "zwei" also ein Byte mit Wert 2 als erstes Zeichen rein
und ergänzt die Zeichenkette um jedes empfangene Zeichen, bis die "drei" (3)
kommt.
Wenn die 3 empfangen wird, dann schreibt der Messwandler den zuvor ermittelten Messwert
als Byte als zunächst letztes Zeichen in die Datenzeichenkette,
und dann noch das Stopbyte, die drei (3) in die Zeichenkette, also den String aus Startbyte,
je ein Byte pro Messwert und am Ende ein Stopbyte.
Dann wird der String seriell weitergesendet zum nächsten Messwandler, und der
fügt seinen Messwert dazu..........
Am Ende kommt eine Zeichenkette von z.B. 48Byte bei 46 Zellen raus.
Jedes Byte (ausser dem ersten,das immer 2 ist und dem letzten, das immer 3 ist)
entspricht dem Messwert einer Zelle

Bei der Übertragung kann man noch einiges verbessern, aber das hat in den ersten
Versuchen noch nicht ganz so wie gewünscht funktioniert.
Eigentlich bräuchten die Zeichen gar nicht zwischengespeichert werden, aber aufgrund
Software-Schnittstellen klappt es nicht, gleichzeitig zu empfangen und zu senden.
Ein Zeichen geht noch, aber wenn der String kommt, dann folgen die Zeichen zu
schnell hintereinander, und gepufferter Empfang bzw Senden klappt hier auch nicht.
Wie man beim Senden des String pausen zwischen den Zeichen einfügen kann
weiss ich noch nicht,aber das würde letztlich auch zu lange dauern
aber man braucht hier auch gar keinen String erzeugen.
Es ist aber nicht so toll mit 50 Variablen zu arbeiten, deshalb brauche ich hier ein Array
und müsste dann die Zeichen einzeln rausschicken, und sofort weiterreichen.
Wenn die Zeichen in einem kurzen Abstand gesendet, aber sofort weitergeleitet werden,
dann machen ein paar Millisekunden zwischen den Zeichen des String nicht viel aus.
Wenn aber der String immer erst gesammelt, dann ergänzt und dann erst gesendet wird.
dann multipliziert sich das ganz gewaltig, und bei gut tausend zeichen macht eine
Millisekunde schon eine gute Sekunde zusätzlich aus.......
aber da brauche ich erst einen besseren Versuchsaufbau, bei dem ich zum Umprogrammieren
nicht jedes Mal den Baustein umstecken muss

Ich habe einfach mal die Werte 1 bis 14 für Befehle und Meldungen reserviert
und so kann ich jetzt mal von ca 63mV bis zur Referenzspannung von ca. 1,1V
messen. Diese Messung erfolgte ohne Eingangsspannungsteiler und der Wert wurde
wie oben schon erwähnt im Empfänger umgerechnet und angepasst.
(Das ist jetzt nur für Testzwecke so,weils einfacher ging,da der Empfänger im
STK500 steckt und direkt umprogrammiert werden kann.

 

Das Anreihen der Byte funktioniert auch, das habe ich 
schon zuvor erfolgreich getestet.
Weiter geht es demnächst dann mit dem Weiterreichen
der Daten zum nächsten Messwandler in der Kette.
Das will ich dann mit einem "open Collector - Transistor
und Pull-Up zur nächsten Zelle machen.
Dass die Übertragung per Isolator bzw Optokoppler
zum ersten und Letzten Messmodul funktionieren sollte 
nehme ich einfach mal als selbstverständlich an.
Ach ja eh ichs vergesse... der ATtiny läuft jetzt mit 4MHz
Das reicht bei 2400Baud um alle Zeichen zu verarbeiten
und auch die Spannung zu messen.
Der "Software-UART" ist recht rechenintensiv, und
ich konnte da bisher noch keinen Empfangspuffer 
aktivieren, weil der Speicherplatz zu knapp ist.
Vielleicht gehts mit dem ATtiny44..... der ist auch kaum
teurer und hat halt doppelt so viel Speicher........
Aber eine Zeichenkette von 50Byte ist auch mit
2400 Bd schnell mal übertragen.


Da ist alles drauf, um eine Zelle zu messen, und es sind noch einige Pins
frei, mit denen man noch so manches machen kann......





Ein paar Ni-MH-Akkus sind gut zum Testen geeignet, die gehen von 2V - 4,6V ohne zu explodieren














Die Übertragung der Daten über den ADUM läuft inzwischen auch schon.
Bei den ersten Versuchen mit einem einzelnen Modul konnte ich das direkt anklemmen,
aber später muss das Signal zum ersten Messwandler getrennte Wege gehen.(Optokoppler)
Hier sieht man, wie winzig der ADUM5241 in Wirklichkeit ist! Ein zweikanaliger Isolator.
(Das linke IC) Der hat einen DC-DC-Wandler drin für 5V 10 mA  und zwei isolierte Datenkanäle!
Je einen in jede Richtung, also ideal für RS232.
Die Ausgänge schalten aktiv, also kein Pullup etc nötig !!!













Etwa so habe ich das mit dem ADUM und dem Optokoppler
geschaltet. (nur eine schnelle Skizze, aber den Sinn sollte man so verstehen)

Das größte Problem der ganzen Datenübertragung ist die geringe Spannung bei
leeren Akkus! mit knapp 2V (der ATtiny 24V läuft ab 1,8V; derart leer sollten die
Akkus niemals werden, aber unter Last kann das schon mal passieren)
kann ich weder den Adum noch einen Optokoppler
ansteuern. Da leuchtet noch keine LED so richtig. ich bin daher auf die Spannung
aus dem Adum angewiesen. Zum Auslesen der Daten verwende ich die 5V
des Adum für den Pull-up des letzten Übertragungstransistors. so habe ich
ein sauberes Signal. Der Transistor braucht zum Schalten 0,7V aus dem
ATtiny, das geht noch ohne Probleme.Hier ist kein Mosfet geeignet.
Die Übertragung zum ersten Messmodul läuft über einen Optokoppler.
Die Versuche, den auch gleich vom Adum aus zu betreiben waren
nicht ganz so gut verlaufen, wie erhofft, aber das macht nichts.
Der Adum ist dafür einfach etwas zu schwach, und soll ja nur
Signale übertragen und isolieren, aber nicht gleich LEDs versorgen.
(obwohl die angegebenen 10mA hier erstens reichen müssten
und zweitens nicht überschritten waren, aber was solls.....)
Eigentlich kann ich den Optokoppler auch direkt vom Steuerrechner
aus ansteuern. Das ist kein Problem, zumal das erste und das letzte Messmodul
unter Umständen weit voneinander entfernt sein können.
und die Daten sowieso auf ganz unterschiedlichen Wegen laufen werden.
(Die Frage ob Module auf jeder Zelle, oder ein zentrales Gerät ist noch
völlig offen. möglich ist beides, vielleicht bau ich auch beides........)
Die Übertragung zum ersten Modul per Optokoppler ist übrigens inzwischen
erfolgreich getestet und für gut befunden worden. (01.12.2011)


Der Testaufbau......
Drei Ni-MH Akkus vom Penny haben auch so cirka 3,5V das tuts zum Testen!
Der ATtiny wird direkt vom Akku versorgt, wie später auch
Das blaue Ding ist ein Resonator (nicht so exakt wie ein Quarz, aber es reicht)
Der kleine Transistor ist der, der das Signal zur nächsten Messeinheit
weiterreicht. (Der Pull-up hängt halt jetzt noch hier an 3,6V dran,
unt interessanterweise kann mein USB-seriell-Wandler und auch der
Max232 auf dem Evaluation-Board dieses Signal noch erkennen
Das wird aber zukünfig als TTL-Pegel weitergeleitet, dazu muss ich die Signale
im Wandler invertieren gegenüber dem momentanen Zustand)
und als Spannungsteiler nehme ich recht gerne Widerstandsnetzwerke.
mit einem gemeinsamen Pin. Weil es hier nur auf das Verhältnis der
Widerstände ankommt sind die meist sehr genau!

Ich habe noch versucht, das Programm zu verbessern, aber das
brachte nicht den gewünschten Erfolg. wegen der "Software-Schnittstellen"
ist Duplexbetrieb nicht möglich! (gleichzeitig senden und empfangen)
Ich muss also weiterhin erst den String "sammeln", dann den Messwert
dranhängen und dann den kompletten String zur nächsten Einheit
weiterreichen. Das dauert halt einen Moment! ich kann noch nicht recht
abschätzen, wie lange die gesamte Übertragung dauern wird.
Das ist nicht weiter schlimm, aber das hat einige Zeit gekostet!
Wie ich dieses Übertragungsproblem gelöst bekomme ist noch unklar,
Nehme ich einen ATtiny, dann gibt es keinen, der zugleich AD-Wandler und UART
drin hat.Ich würde aber sowieso lieber mit Soft-UART arbeiten, weil ich da
nach Belieben die Signale invertieren kann. Bei Hardware-UART geht das nicht.
aber der Transistor invertiert nun mal das Signal. da bräuchte ich dann einen Treiber
der aus 2 - 4,5 V am Eingang 4 - 9V am Ausgang macht, ohne zu invertieren.
( ich muss das Signal ja zur nächsten Zelle weiterreichen)
Das könnten z.B. kleine Mosfet-Treiber recht gut (TL 4432 etc) aber mit der
niedrigen Spannung einer leeren Zelle mache ich mir Sorgen, ob das noch geht!
Und genau diesen Aufwand wollte ich sparen.......
......da wird mir schon noch was einfallen......
Erst mal ermitteln, wie lange die Übertragung tatsächlich dauert,
wenn ich es so mache wie es jetzt ist, dann wird es sich schon zeigen,
ob es nötig ist derart umzugestalten.

Eben weil die Zeichen von 1 bis 14 (willkürlich gewählt)reserviert sind
und zu Steuerzwecken oder Meldungen genutzt werden sollen brauche ich gar nicht
ständig messen und berechnen etc... sondern kann die Messmodule bei Störungen
einfach unaufgefordert eine Meldung schicken lassen, und dann muss halt mal geschaut
werden wo irgendwas nicht passt.
Wenn dann das Auslesen aller einzelnen Spannungen ein paar Sekunden dauert
ist das nicht weiter schlimm.

Eine kleine Verbesserung ist aber jetzt schon mal drin:
Ein eigenständiges Lese-Signal!
Ich schicke also erst eine 1 die wird gleich weitergereicht
( bei einem einzelnen Zeichen klappt das prima) und löst zugleich
in jeder Einheit auch noch das Einlesen der Spannung aus.
erst dann starte ich mit der Kombination 2 und dann 3 das Auslesen
der gemessenen Werte.
Das dauert insgesamt kaum länger, aber die Messungen erfolgen so
an allen Zellen sehr schnell hintereinander, sind also besser vergleichbar.

Und, nicht uninteressant....die Stromaufnahme liegt bei  nur 4mA !!!
und das ohne "Sleep-Mode" ich glaube, das kann ich mir sparen.

Genauigkeit..... Man kann die Module natürlich ganz spezifisch auf
eine bestimmte Spannung hin abgleichen, das hat dann noch nicht mal was mit
Messgenauigkeit zu tun, aber wenn die Messung bei ca 3,5V um
nur wenige mV (ca.5) daneben liegt dann bin ich zufrieden,
das spielt sich auf der dritten Nachkommastelle ab, die später eh nicht
mehr angezeigt wird und das ist besser als 0,5% des angezeigten Wertes.
Ebenso bin ich von der Temperaturstabilität angenehm überrascht!
Wenn ich den ATtiny mit Kältespray misshandle, dann läuft die
Anzeige irgendwo bei -40° um 40mV davon .
Damit habe ich kein Problem! der Unterschied von Raumtemperatur
auf 0° macht etwa 1mV aus (0° ist dann, wenn der Eispanzer
nach der Kältespayattacke schmilzt ;-)  ) das ist also alles durchaus
im grünen Bereich!Wie schon erwähnt arbeite ich mit der internen
Referenzspannung des ATtiny24 von ca. 1,1V Diese ist nicht immer
ganz exakt, deshalb muss ich jeden ATtiny den ich zum Messen verwende
unbedingt einzeln kalibrieren. Das war aber von Anfang an klar!
Ich habe aber bisher die Qualität der Referenz noch nie genauer untersucht,
weil ich damit nur in ein paar Sonderfällen Potistellungen ausgewertet habe,
da gings nicht genau, sondern da musste nur der Drehwinkel reduziert werden.
("Gasgriff" für eine kleine PWM-Schaltung)


Noch eine Anmerkung zur Genauigkeit............
Die Genauigkeit der Messung wird oft überbewertet
Nur um die leere Zelle zu erkennen ist es nicht nötig, aufs Millivolt genau zu messen.
ob der Alarm nun bei 2,4 oder 2,5V kommt ist nicht sooooo wichtig,
wichtig ist nur, dass er kommt! die Zellen schwanken in ihrer Spannung unter Last
durchaus mal um ein paar zehntel Volt! um so mehr natürlich, je leerer sie sind!
Die berühmten 2,5V oder so... sind eine Angabe für leere Zellen OHNE Last!!!
Wenn also so eine Zelle ohne Last noch 3V hat und nur unter Last auf 2,5V oder gar 2,4V
absinkt, dann ist das noch nicht problematisch, sondern nur ein Zeichen, dass die Zelle
FAST leer ist. (oder der Strom zu hoch!)
Natürlich muss man darauf reagieren und wieder laden
und auch diesen Betriebszustand vermeiden, aber die Schwelle für einen
sofortigen Alarm braucht nicht bei 2,5V liegen, sondern etwas tiefer,
sonst nervt die Überwachung jedes Mal wenn man aufs Strompedal tritt!
(Das "Mini-BMS" zeigt so mit der Länge der Warnung den Ladezustand
an.........nicht ganz optimal, aber eine pragmatisch einfache Lösung)
Eine dezente Vorwarnung an diesem Punkt mit etwas Zeitverzögerung
macht aber durchaus Sinn! Wenn sich die Zelle nicht mehr SOFORT erholt
ist sie definitiv leer! Der Bereich von fast leer bis gefährlich leer
ist sehr klein, nur wenige Km!!!!!
So lange die Zellen voll sind bringt das Messen der Spannung überhaupt
kein sinnvolles Ergebnis sondern dient nur der Information.
Ähnlich verhält es sich beim Laden. So lange das Akkupaket halbwegs balanziert ist,
haben alle die gleiche Spannung und die Werte driften erst auseinander, wenn
die ersten Zellen so voll sind, dass sie den Knick ihrer Kennlinie erreichen
und "davonlaufen".

Aus diesem Grund bin ich zur Überzeugung gekommen,
dass es Sinn macht das Balanzieren mit einer eher höheren Spannung zu
erledigen als man im Normalbetrieb als Obergrenze betreachtet.
Wenn man die Zellen normalerweise bis z.B. 3,6V lädt, dann geht das wunderbar mit einem
Ladegerät, das eben auf  diese Grenze eingestellt ist, und dann begrenzt.
Und wenn das Akkupaket ordentlich (oben!!!) balanziert ist, dann ist an diesem Punkt
jede Zelle auf den gewünschten 3,6V, ohne dass irgend ein Shunt eingreifen muss.
Viele betreiben ihre Akkus ganz ohne Balancer und das geht auch meist gut!
Es ist also definitiv nicht nötig, jedesmal mit der Hammer-Methode aufs
hundertstel Volt mit glühenden Shunts die Zellen "perfekt" zu balanzieren.
Es reicht völlig aus, die Zellen gut zu beobachten und gelegentlich mal
ein bisschen zurechtzurücken, so als eine Art Pflegemaßnahme!
Die Zellen nehmen aber keinen Schaden, wenn man gelegentlich zum Balanzieren
gerinfügig höher auflädt, das aber dann ganz gemütlich mit wenigen Ampere
erledigt, so dass keiner der Shunts wirklich arbeiten muss.
Wenn die oben erwähnten 3,6V der normale Betriebszustand sind, dann kann man
durchaus mal mit 3,8V Balanzieren ohne sich Sorgen um seine Zellen machen zu müssen!
Die halten auch mal 4,2V aus ohne gleich Schaden zu nehmen, nur wirklich gut tut
ihnen das auf Dauer nicht.Aber je weiter oben im Knick man die Zellen balanziert,
desto besser liegen sie nachher beieinander.

Mein mittlerweile schon alter Spruch: wenn es die selbe Zelle ist, die zuerst voll
und auch zuerst leer ist, und alle anderen liegen dazwischen, dann ist das
Gesamtpaket perfekt balanziert.

mfG
Franz

17 November 2011

Motor gekauft.........

Dieser Tage habe ich mir einen interessanten (?????) Motor zugelegt.
Er stammt aus einem Still R60-20-25 (laut Verkäufer)

80V 173A 1400 /min  60min !!!!!!!!! Also gut13KW Dauerleistung
da müssten durchaus noch einige Reserven drinstecken..........
Man geht doch da so in etwa vom Faktor 3 aus (für 5 - 10 min)


Insbesondere die Nenndrehzahl ist sehr niedrig angegeben, aber das darf man
nicht allzu ernst nehmen. Das ist ein 11"-Motor, und so einer gibt halt mal
seine Höchstleistung bei relativ geringer Drehzahl ab. Als Reihenschlussmotor
dreht der aber mit Sicherheit noch um einiges höher! Bei 2000 bis 2500 U/min
dürfte auch noch einiges rauskommen, wenn man die Spannung ein bisschen
höher wählt..... z.B.100 oder 120V.... Das möchte ich aber erst mal grob
ermitteln bevor ich überhaupt ernsthaft daran denke, den irgendwo
einzubauen. Ich möchte eigentlich einen einfachen Prüfstand für
Controllerversuche bauen. So nach dem Motto "ordentliche Bremsscheibe
in Verbindung mit einer Waage und einem Drehzahlmesser"
So dass man den auch mal ordentlich abbremsen kann um ordentlich
Strom fliessen zu lassen. (ohne mehr oder weniger illegal mit einem
nicht ordnungsgemäßen Fahrzeug durch die Gegend düsen zu müssen)
Der Motor hat nicht sehr viel gekostet, da kann man schon mal dran basteln.

Das Ding ist gar nicht soooo schwer, ich kann ihn gerade noch hochheben,
hab ihn aber noch nicht gewogen (gute 60Kg???)

Die Abmessungen etc. sind etwas ungünstig aber das kann
sogar von Vorteil sein, je nach Einbauort halt.

Durchmesser: 28cm also 11"..... passt schon mal nicht an die
meisten Frontantrieb-Getriebe......zumindest nicht an
VW-Polo und Golf (?) Getriebe

Länge:  nur 36cm ohne Achsstummel

großes Problem:
Die verzahnte Achse, und kein Lagerschild an der Vorderseite!
Wenn man den wo reinbaut braucht man auch noch eine Lagerung
im Motoradapter..das spart Länge, aber das machts nicht einfacher.

Mal schauen, was ich damit mache.......Das wird jetzt ganz sicher
kein neues EV-Projekt, aber ich brauche ja auch einen Test-Motor
für meine Controller-Versuche etc........ und da ist der gut!

Der würde von der Länge her sogar in eine Ente passen, aber da
müsste ich dann gewaltig im Getriebe zaubern, und eine Kupplung
hat da dann auch nicht mehr Platz????? zumindest keine von der Ente,
da ich hier mit mindestens dem fünffachen Drehmoment rechnen
muss im Vergleich zum normalen Entenmotor.
Dafür dreht der Entenmotor knapp 6000 U/min bei 120 Km/h.

Das passt einfach nicht zusammen..... Es gäbe da zwar einen Lösungsansatz,
aber dazu muss das Getriebe derart umgestaltet werden,
Das ist einfach viel zu viel Aufwand.... andererseits hat aber dieser
Motor derart viel Kraft, dass ich mit sicher bin, dass ihm auch
eine einzige feste Übersetzung reichen müsste um die Ente auf
gute hundert km/h zu beschleunigen. (14Kw bzw ca 19PS
Dauerleistung sollten reichen, ein paar Volt mehr vielleicht,
und so übersetzt dass 1400 U/min etwa 70Km/h entspricht,
das wären dann 2000 U/min bei 100Km/h.
Der Motor hat einen Stapler bewegt, der mit Last über
sechs Tonnen wog, 20km/h schaffte und mit Last
praktisch ständig 10% Steigung hochfahren konnte,
ohne den Motor zu überlasten.Das ist schon was!!!!!!
Ich müsste das Getriebe dann aber umbauen auf eine feste Übersetzung
bzw 3 Gänge und die Zahnräder vom 3.Gang vertauschen von etwa
2:1 auf 1:2 .......ob ich mir DAS antun werde... eher nicht!
(der 4.Gang hat im Entengetriebe eine Sonderstellung,
Das Getriebe ist ein klassisches Dreiganggetriebe mit einem
zusätzlichen vierten Gang, deshalb auch das etwas
eigenartige Schaltschema...Wenn man die Räder des dritten Ganges
ändert, dann wirkt sich das auf die Gänge 1 bis 3 aus, aber nicht
auf den vierten, somit ist es am einfachsten, den dritten Gang anzupassen
und den vierten stillzulegen zumal man die Räder des dritten Ganges
von den Wellen abnehmen kann, was bei den anderen Gängen nicht
möglich ist. ob allerdings das Material ausreicht, das kleine Rad
des dritten Ganges auf der unteren Welle zu montieren,
die untere ist dicker als die obere......
das kann ich jetzt noch gar nicht sagen)

Keine Gänge, keine Kupplung, das ist nicht meine
Philosophie, aber bei DEM Drehmoment könnte das gehen.

Die Leistung sollte locker reichen für etwa 100Km/h.......

Ein 125-15 er Enten-Reifen hat offiziell 1,822m Umfang
macht bei 100Km/h  also  914,8 U/min am Rad

Das gäbe dann für 1500 U/min bei 100Km/h eine
Gesamtuntersetzung von 1,64 :1

oder bei 2000 U/min bei 100Km/h
wären das 2.18 : 1

Die ideale Untersetzung dürfte also irgendwo bei 1,6 bis 2,2 : 1 liegen.

Das Differential ist aber 4,125 : 1 untersetzt
in Kombination mit vertauschen 3.Gang-Rädern  (13 : 25 = 1,92)
käme also  insgesamt 2,14 : 1 raus und das wären dann recht genau
2000 U/min bei 100Km/h.(wenns wirklich nur ein Gang sein sollte,
dann sollte der eher kurz ausgelegt sein!)

Die Zahnräder sind aber nicht "einfach so" zu vertauschen..........
da muss man schon mehrere Getriebe schlachten und
die Zahnkränze und Naben vertauschen also
ausbohren bzw abdrehen/schleifen und aufschweissen........
Da wirds also wohl bei der Theorie bleiben.

Vom Drehzahlverhalten passt dieser Motor besser in einen
Ford T (hab ich nicht...) oder in einen kleinen Traktor
aber den hab ich auch nicht........




















Sieht gar nicht so schlecht aus....



















Viel gelaufen ist der jedenfalls nicht



















Das ist die Achse des Grauens!
Das ordentlich zu lagern wird nicht ganz einfach......
Die Achse war im Ritzel geführt, aber das hab ich nicht!
Das war alles Bestandteil der Staplerachse.
Mal sehen, ob da nicht womöglich irgend eine Radnabe aus dem
PKW-Bereich passt.....Das wäre natürlich Ideal!
Die Welle hat 29,8mm Durchmesser und
22 Zähne...... Das könnte DIN 5480 mit Flankensitz sein,
Modul 1,25 / 30 Wer kennt sich da aus?????
Haben nicht manche OPEL-Modelle so eine ähnliche
Verzahnung?????? (Corsa Tigra Vectra ca 1,2 bis 1,8l,+GSI)
22 Zähne haben die jedenfalls, aber auch 30 bzw 29,8mm Durchmesser ?
Diverse Wartburg und Trabant 1,1 haben auch 22 Zähne
im Antriebswellengelenk, aber nur innen an der Welle,
das bringt mich nicht wirklich weiter!
Der Absatz hinter der Verzahnung hat 32mm.
Das ginge notfalls als Lagersitz, ist aber recht schmal
Der Durchmesser von 29,8 ist ein Problem..... Taper-Lock
scheidet aus, na ja eventuell 32mm und eine Hülse ???????

oder eine Radnabe eines Fronttrieblers ausdrehen und samt Radlager
draufmontieren und noch ein paar Stifte reinsetzen, die in die
Verzahnung eingreifen..... wäre halt ideal, wenns was mit passender
Verzahnung gäbe..........

Nachtrag: die folgenden Maße haben sich als falsch herausgestellt,
letzter Stand siehe ganz unten!

Ich hab mal versucht, meine Messungen am Entengetriebe
in eine Konstruktion zu verwandeln, nur um zu sehen ob das
so sein könnte..... das ist noch nicht getestet!!!!!
Die Bolzenabstände sind nur grob gemessen,
scheinen aber so konstruiert zu sein!
Ich habe leider keine 30cm- Schublehre um die Abstände
der Bolzen genau zu vermessen.
Die 250mm könnten durchaus  auch senkrecht gelten, das macht
so wenig aus, dass ich es nicht messen konnte.....
Und mittlerweile komme ich immer mehr zur Überzeugung, dass
es wohl eher senkrechte 250mm sind, als schräg.
also Vorsicht! aber so würds schon mal Sinn machen

Wenn das schräge Maß 250mm beträgt, wären es senkrecht 249,199mm
Wenn es senkrecht 250mm sind, dann stehen die Bolzen im Abstand
von 250,799mm zueinander.
Ich muss also eine Lehre basteln mit 250mm und 250,799mm
dann weiss ichs endlich............
Die Kurbelwelle sitzt im Zentrum des Kreises durch die Bolzen.

Nachtrag vom 31.05.2012:

Tja, so wars aber nicht!!!!
Der allerletzte Stand der Bolzenpositionen ist 302mm DIAGONAL!!
von Bolzen zu Bolzen.......
Die 150 und 190mm sollten passen,
und die Welle liegt im Zentrum des Umkreises, da bin ich mir sehr sicher
Das ergibt dann von den oberen Bohrungen 132,665 mm
und von den unteren Bohrungen aus 120,298mm senkrecht gemessen

Keine Ahnung, wieso das diese krummen Maße haben muss,
aber irgend einen Grund wird es da schon geben.

05 September 2011

Überlegungen zu Ladegeräten.........

vor ein paar Tagen fragte mich ein Bekannter, wie denn das beim Tesla ist
mit dem "Laden über die Motorwicklung"........

Ehrlich gesagt, ich weiss es nicht!!!!!!
 Das hat mich bisher nicht interessiert, wie der Tesla geladen wird.

Aber das brachte mich auf eine Idee, die man vielleicht mal weiterverfolgen sollte!
Mal abgesehen davon, dass es da noch immer keine verbindlichen Standards für
EV-Ladegeräte gibt, ist davon auszugehen, dass ein kräftiges Ladegerät heute
in der Regel als Schaltnetzteil ausgeführt werden dürfte.

Was braucht man dafür?
1. einen Gleichrichter
2.kraftige Elkos
3.eine Schaltung VOR dem Gleichrichter, um die "nicht sinusförmige"
Stromaufnahme an die Erfordernisse des Stromnetzes anzupassen.
(gar nicht so einfach!)
4.kräftige Schalttransistoren bzw IGBTs und ein paar ebenso kräftige Dioden
5. etwas elektronik zum Ansteuern der Schaltstufe per PWM
6.eine möglichst kräftige Speicherdrossel.........hier kommt der Motor ins Spiel!
und den Rest hat man doch auch schon im EV drin!

Warum denn nicht einfach den Motor-Controller zum Laden verwenden?
ganz sooooo einfach geht das auch wieder nicht, weil die Spannungsbereiche da
doch etwas unterschiedlich sind.......
Aber die Grundschaltung ist fast die Gleiche also warum denn eigentlich nicht?
Jeder Frequenzumrichter arbeitet so! erst gleichrichten, dann entsprechend takten.
etwas anders programmiert, und nur zwei Ausgänge genutzt und kein
Drehstrom sondern spannungsgeregelte und strombegrenzte Gleichspannung
erzeugt, dann kann man am dritten Anschluss des Motors wunderbar geglättete
Gleichspannung zum Laden der Akkus abgreifen.......hat das schon mal jemand versucht???
Ich bin mir sicher, dass das so machbar ist, und wenn der Motor mehrere hundert
Ampere wegsteckt, dann sollten so 30-50A Gleichstrom auch kein Problem sein!
Das müsste auch in DC-Systemen prima funktionieren! so eine Stator-Wicklung hat
sicher genug Induktivität um als Speicherdrossel zu funktionieren.

Bei so einer Schaltung ist natürlich die Ausgangsspannung nicht galvanisch getrennt,
aber ist das wirklich nötig? Hmmmmm..........zumindest nicht für die Funktionalität!
Das ist also ein anderes Kapitel und aus Sicherheitsgründen wohl auch der Grund warum
das nicht so gemacht wird.

Das mit den unterschiedlichen Spannungs und Stromanforderungen ist nicht so tragisch,
IGBTs die an 350V ca 50A und mehr schalten können sind durchaus erschwinglich,
bzw aus alten Frequenzumrichtern mit ca 25kW auszubauen.
und wenn womöglich die ganze Fahr-Elektrik ohnehin für höhere Spannungen ausgelegt
wäre, dann wird das Ganze immer interessanter!

Das war wieder mal nur so eine Gedankenspielerei, aber das ist wieder mal so ein
Experiment, das ich "irgendwann mal machen" möchte.

Es gibt zu dem Thema einen interessanten Thread, aber Vorsicht!!!
so wie dort beschrieben sollte man die Schaltung ganz gewiss nicht
am europäischen 220/380V-Netz betreiben!!!!!!!!!!!!!!!!!!!!!!!!!
Trotzdem eine interessante Idee!
aber wie gesagt: Nicht zuhause ausprobieren! viel zu gefährlich!!!!!!!

http://www.diyelectriccar.com/forums/showthread.php/200-build-your-own-intelligent-charger-36627.html

Hier wird ein kräftiger IGBT mehr oder weniger direkt am Stromnetz betrieben
und per PWM geregelt. So kann man problemlos riesige Stromstärken steuern
IGBT mit Schaltleistungen von 500A bei 1000V sind nichts ungewöhnliches....
Dass die Schaltung grundsätzlich funktioniert ist ausser Zweifel, aber das Ganze
ordentlich zu entstören und den Blindstrom bzw die Stromspitzen in den Griff zu
bekommen dürfte problematisch werden.
Wenn also die fehlende galv.Trennung nicht das Problem ist, dann kann das
durchaus als möglicher Lösungsansatz gesehen werden.


......und weil ich schon mal beim Thema Ladegeräte bin.....
 es gäbe da noch eine völlig andere Möglichkeit, die mir sehr gut
gefällt, aber wegen der fehlenden galv.Trennung auch nicht immer praktikabel ist.
und der kapazitive Blindstrom ist auch nicht zu vernachlässigen,
(je größer die Last, desto größer ist auch die Phasenverschiebung
.......aber es funktioniert wirklich!!!!!
.......und kann fast beliebig vergrößert werden
.......und ist dauerkurzschlussfest (wenn der erste Kondensator das aushält!!!)
.......und ist weitgehend verlustfrei
.......und spottbillig aufzubauen

ABER!!!!!!!
der Ausgang ist nicht galv.getrennt, und das ist gewissermaßen eine Art Konstantstromquelle,
hier gibt es keine aktive Spannungsbegrenzung, im Leerlauf liegen deutlich über 300V an!!!!
(220 x 1,44 =  316,8 abzüglich der Diodenverluste im Gleichrichter, das kommt schon hin!)
und der Blindstrom ist hier überhaupt nicht kompensiert! Auch das Einschalten ist problematisch
(das geht aber mit elektronischen Lastrelais mit Nulldurchgangsdetektor)
Eine Stromregelung wäre möglich, indem man mehrere solcher Schaltungen
parallelschaltet und nur die benötigte Anzahl einschaltet!


Diese Schaltung ist genau so gefährlich, wie die erste weiter oben! also bitte auch nicht
"einfach so" ausprobieren,
Die Kondensatoren führen auch lange nach dem Ausschalten noch sehr hohe Spannung,
das ist lebensgefährlich, wenn man da drankommt! Entladewiderstände helfen da !

diese Idee ist auch nicht von mir!

ich hab das u.a. hier entdeckt:  http://www.evbmw.com/
( das sind "coole" Basteleien die der Herr aus Irland da so macht!
nicht immer handwerklich perfekt ausgeführt, aber hochinteressant!
und sehr lehrreich! )

Aber das macht man im "kleinen" durchaus mal um z.B. LEDs direkt am Netz
zu betreiben etc. Insofern nichts Neues, aber in der Dimension ist es doch neu!


mfG
Franz

12 August 2011

Unterspannungsüberwachung mal ganz primitiv

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!

mfG
Franz