Translate

10 November 2010

mal wieder was zwischendurch...ein Quadraturdecoder

Was ist denn bitte ein Quadraturdecoder?
Das ist eine Auswerteschaltung für die
Signale von Längen- und Winkel-Messgebern
so wie man sie an Werkzeugmaschinen
etc. vorfindet.
Diese Geber liefern ein Signal aus zwei
zueinander versetzten Rechtecksignalen.
eine Periode entspricht 20µ, so dass
bei 5µ Versatz in 5µ-Schritten ausgewertet
werden kann.
("1µ" = 1µm = 1/1000000 m = 1/1000 mm)



Ganz frisch mal eben nach Feierabend
schnell getippt............
ein "Quadraturdecoder mit Display"
basierend auf einem
Applikationsvorschlag von Bascom.


$regfile = "m88def.dat"
$crystal = 8000000
$baud = 9600

Config Lcdpin = Pin , Db4 = Portb.0 , Db5 = Portb.1 , Db6 = Portb.2 , Db7 = Portb.3 , E = Portb.5 , Rs = Portb.4

Config Lcdbus = 4
Config Lcd = 20 * 4a , Chipset = Ks077 'für EA DIP204-4

Cursor Off
Cls

Dim A As Long
Dim Pos As String * 10
A = 0

Enable Interrupts
Enable Int0
Enable Int1


Config Pind.2 = Input
Config Pind.3 = Input
Config Pind.4 = Input
Portd.2 = 1
Portd.3 = 1
Portd.4 = 1

Config Int0 = Change
Config Int1 = Change

On Int0 Inta
On Int1 Intb

Cls

Do
If Pind.4 = 0 Then A = 0
Pos = Str(a)
Pos = Format(pos , "+000.000")
Locate 1 , 1
Lcd "X: " ; Pos ; " mm"
Loop

Inta:
If Pind.2 <> Pind.3 Then
Decr A
Else Incr A
End If
Return

Intb:
If Pind.2 <> Pind.3 Then
Incr A
Else Decr A
End If
Return


Was macht dieses schnuckelige Programm?
Das wird ein Display für inkrementale
Lineargeber.
Bei mir steht eine wunderbare Fräsmaschine
in der Werkstatt (eine Deckel FP2 !!!)
und da ist seit Jahren das Display kaputt.
Das Teil muss mal wieder benutzbar werden
..mal sehen ob das so geht!
Im "Labor" funktionierts grundsätzlich
schon mal prima.
Ganz fertig ist es aber noch nicht.
Ich meine das Programm....
Da brauche ich noch Daten für die
Umrechnung der Takte in mm.
und ich will noch zwischen
absoluten und relativen Werten
umschalten können.
....und die Schnittstelle (RS232 /USB ??)
sollte auch noch irgendwann in Betrieb
gehen.Ich denke da ans Aufzeichnen
von Messwerten, z.B. zum Vermessen
von Bohrungen oder Konturen.
Drei Achsen hat die Maschine ohnehin
und wenn man dann noch einen kleinen
Fühler dranbaut und sich die
Koordinaten berechnet............
......irgendwann mal.......

Nachtrag 11.11.2010:
Heute habe ich erste Tests mit einem Geber
durchgeführt.
Es sieht ganz brauchbar aus..
Die Geschwindigkeit dürfte reichen.
Nachdem ich die Auflösung reduziert habe
und nur noch mit einem Kanal Interrupts
erzeuge und auch die dritte Nachkommastelle
weggelassen habe und mit 12MHz takte
und ausserdem nur noch alle 200
Durchläufe das Display neu schreibe......
(das ist immer noch sehr schnell)
bin ich mit der Geschwindigkeit zufrieden.

Die Auflösung von 10µ (1/100 mm) reicht.
Ich kann pro Sekunde etwa 300mm erfassen.
das sind immerhin mehr als 30 kHz Takt
der zuverlässig gezählt wird. Wow!!!!!!
(das habe ich nicht gemessen, sondern
nur geschätzt, aber das kommt schon hin)

Momentan werden noch zwei Zeilen
geschrieben. Wenns nur noch eine Zeile
wäre und auch die ganzen Buchstaben
wegfielen (Display 1 x 8 Zeichen)
und mit 20 MHz getaktet, dann geht
da noch einiges!!!!!!!!
Leider habe ich keinen 20MHz Quarz
zur Hand.

Ich gehe mal davon aus, dass 500mm/s
möglich sein können.
Das ist eigentlich viel mehr als ich brauche,
aber das ist nötig, falls z.B Vibrationen
so schnelle Störungen verursachen sollten.
Bei Schlägen geht da schon mal ein Takt
verloren!!

video



Nachtrag vom 30.11.2010:
Heute habe ich mal die OPs zur
Signalaufbereitung eingesetzt
und in Betrieb genommen.
Damit werte ich die invertierten Signale
des Gebers ebenfalls aus.
So werden Störungen die irgendwo
eingefangen werden weitgehend ausgefiltert.
Das ist so was Ähnliches wie bei RS485,
aber zwei Kanäle in eine Richtung.
(da wäre sogar noch ein dritter Kanal, da
kommt ein Impuls um einen absoluten
Nullpunkt zu definieren, aber den nutze
ich in diesem Fall nicht.)
Dafür gäbe es sogar eigens dafür
entwickelte ICs, aber so was habe ich gerade
nicht zur Hand.
Wie es scheint erfüllen die OPs ihre Aufgabe
recht gut.Während es zuvor schon reichte,
einen Draht in die Nähe eines Trafos zu legen
und einzuschalten hat dies nun keine
Auswirkung mehr. Man könnte noch für eine
leichte Hysterese beim Schalten sorgen,
aber ich glaube, das ist gar nicht nötig.
Jetzt muss erst mal das Programm etwas
angepasst werden, damit es wieder auf
einem Atmega48 läuft und eine Umschaltung
Absolut / Relativ muss (wieder) rein.
Das habe ich der Übersicht wegen entfernt
als ich Geschwindigkeitsversuche machte.
Das obige Listing reagiert auf sämtliche
Wechsel des Signals und zählt in 5µ-Schritten.
So genau braucht es hier eigentlich keiner!
Daher habe ich es aufgeteilt, so dass ein Eingang
die positiven und der andere die negativen
Flanken erkennt. Beide Eingänge sind
parallel geschaltet
(So war auch der ursprüngliche
Programmvorschlag, aber hauptsächlich, weil
das Programm für den Attiny 2313 geschrieben
war, und der kann die "Change" Erkennung nicht)
So kann ich mit viel höherer Geschwindigkeit
den Weg messen und 10µ Aulösung reichen
mir auf alle Fälle!
Im Übrigen läuft der Atmega nun auch mit
20MHz Taktfrequenz! Das macht Spass!
da muss man schon den Geber ganz gewaltig
schubsen, bis der sich verzählt!
Das braucht Schläge, beim bloßen Verschieben
mit der Hand schafft er jede Geschwindigkeit,
die ich schaffe!
Das müsste genügen!

mfG
Franz

13 Oktober 2010

..weiter gehts mit der Energieanzeige

...endlich ist wieder ein kleiner Meilenstein geschafft!
Die Energieanzeige / Messwandler etc..Kiste läuft.!
noch nicht alle Funktionen, aber die wichtigen!



Das sind wirklich nur ein paar Teile!
aber es funktioniert!
ein Atmega48, mehr als 4k kann ich mit der
Demo-Version von Bascom nicht programmieren.
(jetzt muss die Vollversion her!)
zwei 5V-Regler, um Strom zu sparen.
(Der Atmega braucht Dauerstrom,ca 2-3mA???
der Rest läuft über "Zündung")
ein TC4432 als Treiber für den Drehzahlmesser,
ein Mosfet als Treiber für die Tankuhr,
mit dem Poti kann man den Nullpunkt
der Tankanzeige abgleichen!
Das Relais trennt bei abgeschalteter
"Zündung" den Spannungs-Messkreis
der nimmt zwar nur ca 1mA auf, aber
der Ordnung halber ists besser so.
rechts die Messwiderstände für die
Spannung. Das blaue Ding am Atmega ist
ein Resonator, nicht so exakt wie ein Quarz,
aber hier reichts. Die Uhr geht pro Tag etwa
15 sekunden nach.....





Die Messgenauigkeit ist mehr als
ausreichend!!
Es hat natürlich wieder länger gedauert
als gedacht, aber andere Sachen waren
wieder mal wesentlich wichtiger!
Private Dinge, Renovieren etc.
aber auch der Akkutester -eigentlich ein
Nebenprodukt dieses Projekts,
aber genau so was brauchen wir in
den nächsten Tagen in der Firma!!!!
Da könnte durchaus ein echtes
Produkt entstehen!
So was gibt es zwar schon, aber nicht
in einfach und trotzdem brauchbar.
Habt deshalb ein wenig Verständnis,
dass ich diesmal das Programm nicht
in allen Einzelheiten veröffentliche.
Spannung messen,
Strom einstellen
vollen Akku entladen bis Untergrenze,
Aus Strom, Spannung, und Zeit die Energie berechnen
Kapazität anzeigen
womöglich noch ein Messprotokoll
ausdrucken- warum nicht!
ist ein sehr ähnliches Gerät!
Zum Energiezähler:
Das Ding misst inzwischen
den Strom, die Spannung,
die Zeit ab dem Reset
und die (Akku-)Temperatur
und berechnet daraus die
verbrauchte Energie.
Das Ergebnis wird nicht nur auf dem
Display angezeigt, sondern per PWM
auch noch auf Drehzahlmesser und
Tankuhr angezeigt.
So braucht am Auto nur wenig
umgebaut werden.
Der Drehzahlmesser bekommt eine
Frequenz von 33Hz je 100A (4-Zyl)
so dass statt 1000 U/min 100A
angezeigt werden.
Die Tankuhr zeigt die Restenergie an,
deren Menge über ein kleines Menue
eingestellt werden kann.Der Wert
bleibt auch ohne Spannung erhalten
Nach dem laden erfolgt ein Reset.
dann wird von 100% runtergezählt.
(Der Zähler zählt bis -25% weiter)
Zusätzlich können die Messwerte
einzeln über die serielle Schnittstelle
abgefragt werden, so dass das Gerät
in das BMS-System integriert werden
kann.
Es sind sogar noch Ports frei!
Port D2 wird wohl noch zum
Störungsmelde-Ausgang.
Port D7 ist noch frei
und an den Ports C4 und C5 könnten
sogar noch zwei Analogwerte
gemessen werden!
Temperaturen?
Was fehlt noch?
Der Reset nach Lade-Ende muss noch geklärt werden,
Messen der Energieaufnahme bei teilweisem
Nachladen ist noch nicht möglich.
Das ist eigentlich noch der wichtigste Punkt.
Dann sollte die Akkutemperatur noch
berücksichtigt werden sowie ev. noch
der "Peukert-Faktor" aber das hat in
4kByte Programm beim besten Willen
nicht mehr Platz.Ich bin schon mehr als
zufrieden mit dem was bis jetzt schon geht.
Davon hatte ich am Anfang nicht mal
geträumt.
Zur Erinnerung: Das Ganze hat mal als
Versuch angefangen, mit ATiny13
Spannungen zu messen und auf einem
seriell angesteuerten Display anzuzeigen.
....sonst nichts.....Dann waren aber solche
Displays zu teuer, und so kam eins zum
anderen..Die Steuerung wanderte ins
Display- so konnte auch ausgewertet
werden. Noch ein paar Ideen........
und "fertig" ist alles noch lange nicht!
Ich hatte da noch eine sehr ungewöhnliche
Idee, wie man vielleicht ohne diese
"Energieverbrat-Widerstände" und
ohne nennenswerte Verluste so ein
Akkupaket ausbalanzieren kann!!!
--mit einer zusätzlichen Zelle,
mit der man die Energie hin und her
transportiert!!!!!!
Die Schaltung ist ein bisschen "tricky"
aber es müsste gehen!Die Spannung polt
sich um und steigt bis zur vollen Akkuspannug.
Es muss mit Mosfet geschalten werden,
da kein Spannungsverlust auftreten darf.
Mit Relais wärs einfach, aber das klappert!
Mal sehen was mir da noch einfällt!
...ich hab schon eine Vorstellung wies geht!!
mfG
Franz




mehr demnächst

11 September 2010

Der Alltagsgolf kränkelt

Urlaub, die hektischste Zeit des Jahres ;-)
Da hat man mal zwei Wochen frei und soll da
so vieles erledigen, dass acht Wochen auch nicht
reichen würden........

In diesen Tagen war mein Alltagsgolf mal wieder
an der Reihe... fast 16Jahre, 200000 Km ,
alles Kurzstrecken, das hinterlässt halt seine Spuren!
Im November muss er wieder mal zum TÜV,
aber jetzt ist einfach die bessere Zeit zum
Herrichten, weil einfach das Wetter schöner ist.
und ich nicht wieder bei 5cm Neuschnee mehrere
Stunden unterm Auto liegen möchte.
Ich kann dem Auto nicht böse sein, allein die
Tatsache, dass es überhaupt noch mit wenig
Aufwand wieder herzurichten ist spricht
für die Qualität des Golf3. Ich hatte noch nie
zuvor ein Auto, das so lange durchgehalten hat.
(An meine Enten kommt kein Salz, das ist
wieder was Anderes, die werden gehätschelt,
aber da ist auch immer was zu reparieren)
Weil die Karosserie des Golf derart haltbar ist,
treten jetzt halt mechanische Wehwehchen in
den Vordergrund, die man früher nicht in
dem Ausmaß kannte, weil die Autos gar nicht
so lange in Betrieb waren, da sie vorher
einfach wegrosteten.........
Rein wirtschaftlich hätte er schon vor sechs
Jahren "weg" gehört, als die erste Einspritzdüse
kaputt war (120000km) sowie die Windschutzscheibe,
Auspuff, Bremsen und noch einige Kleinigkeiten.
Das wurde damals vom Vorbesitzer in einer VW-Werkstatt
erledigt und obwohl ich damals eine detaillierte
Fehlerbeschreibung mitlieferte, welcher Zylinder
denn da immer wieder mal aussetzte-
mit fast sicherem Verdacht
auf eine kaputte Düse - haben die
erst mal den kompletten Ansaugtrakt neu abgedichtet
Kerzen und Zündkabel ersetzt, Kompression gemessen und mehrere
Stunden Fehler gesucht........es war wirklich die Düse!!!!!!!
(Die Reparaturkosten waren deutlich über Zeitwert........)
......aber wer wirft schon einen fast rostfreien Golf weg....
Nachdem in den letzten sechs Jahren so Sachen wie
mittlerweile insgesamt vier!!! kaputte Einspritzdüsen
(à ca 120 Euro bei VW) Bremsleitungen,
Bremsscheiben,Bremskraftregler,
Bremsschläuche, Zündspule, Batterie
Lambdasonde, Riemenspanner, Servopumpe,
Auspuff, Anlasser, Lichtmaschine, Kühler,
Thermostatgehäuse, Stoßdämpfer, Querlenkerlager,
Gummilager der Hinterachse etc. genervt
haben, wars diesmal etwas mehr Rost und
ein Gummilager der Vorderachse.
.....sowie noch ein paar Kleinigkeiten
wie Armaturenbeleuchtung und
das Heckklappenschloss, Standlicht
und Kennzeichenleuchte etc...
das Übliche halt...
(war doch so manches, aber der
Golf wird auch weder geschont noch gepflegt,
sondern fast täglich über eine der schlechtesten
Straßen in Süddeutschland geprügelt!)

Querlenkerlager rechts:
Die linke Seite habe ich schon vor zwei Jahren
gemacht, jetzt war die rechte Seite fällig.
Ich wollte es eigentlich damals gleich mit machen,
aber die vordere Schraube ging nicht raus, weil da
der Motor im Weg ist, und drum hab ichs dann
noch mal verschoben, weil der Gummi noch
halbwegs gut war.Aber diesmal gabs da keine
Ausrede mehr.........



Es fiel beim Fahren noch gar nicht stark auf.
Beim Bremsen zog es ganz minimal zur Seite.

Es fällt auf, dass die meisten Probleme nicht durch
Verschleiss infolge gefahrener Kilometer
sondern durch die Alterung der Teile
verursacht waren. Gerissene Wicklungen bei den
Einspritzdüsen, aboxidiertes Kabel zum Magnetschalter
gelöster Gummi in Silentblöcken, ein gebrochenes
Thermostatgehäuse!! (Ein gemeiner Fehler, der Stift des
Thermostates brach durch sein Widerlager im
Inneren des Thermostatgehäuses, das Ersatzteil war
an der Stelle deutlich verstärkt---wohl kein Einzelfall!!----
Tödlich für den Motor wenn mans nicht sofort bemerkt)

Da möchte man doch manchmal mit dem Konstrukteur
reden........ wenn schon diese Gummilager
an der Golf-Vorderachse bekanntermaßen
regelmäßig kaputt gehen, dann sollte man die
doch zumindest einfach tauschen können......oder?
Um den rechten Querlenker raus zu bauen muss
bei meinem Auto der Motor gelöst und etwas
angehoben werden um die vordere Querlenkerschraube
entfernen zu können.............. eine kleine
Aussparung in der Alu-Ölwanne und alles wäre easy!
Dass genau diese Schraube derart im Gewinde
festgerostet war war das nächste Problem!
Schlüsselweite 18 ! Diese "Normänderung"
ist die nächste Frechheit! Natürlich ging
die Schraube nicht auf und war "rund"
da half nur noch das Schweissgerät!

Das sieht gar nicht toll aus, aber damit konnte
ich die Schraube dann doch noch rausdrehen.
war eh Schrott!



Das mit der Hinterachse ist ähnlich!
Man hätte das doch so bauen können,dass man
die Gummilager tauschen kann ohne sie mit einer
Spezialpresse aus der Achse pressen zu müssen.
Und wenn man den Sockel mit tauschen müsste.
(Die Presse hat niemand, nicht mal große
VW-Vertragswerkstätten )
Kosten: nur ein paar Euro Material, aber
mehr als ein halber Tag Arbeit
"Originalton" des Tüv-Prüfers damals:
"Ui!! Neue Achsgummis!! das sieht man selten!
Das ist oft ein Grund das Auto zu verschrotten"



Die Schweissarbeiten waren Routine.
Beiderseits war der Boden am Schweller
ein bisschen "durch".

vorher:


nachher:


Das alte Leiden mit den Gummistopfen
im Bodenblech, die alle der Reihe nach rausrosten
ärgerlich, aber nicht allzuviel Aufwand
Ohne diese Rostherde wäre das Auto
vom Rost her noch kerngesund.-- na ja,fast!




jetzt geht es auch in den hinteren Radkästen los
vorher:

nachher:








.....alles halb so schlimm...... da hab ich
seinerzeit (Anfang der 80er Jahre)
schon ganz andere Rostlauben wieder
hergerichtet, und die waren oft erst sechs
oder acht Jahre alt.
(einen 76er (77er?)Passat mit ca.sechs Jahren
habe ich mal verschrottet, da war ausser
dem Tankinhalt und ein paar Kleinteilen
beim besten Willen nichts mehr zu retten)
Damals war es völlig normal, dass ein
achtjähriges Auto mindestens neue Schweller,
Radläufe, Kotflügel und neue Türen brauchte
um noch ein letztes Mal durch den Tüv
zu kommen.Bei vielen Franzosen und
Italienern war es schon mit sechs Jahren
so weit!Das kann man sich heute fast
nicht mehr vorstellen..........

Vor zwei Jahren waren die vorderen
Kotflügel hinten unten durch (ca 20 Euro
pro Kotflügel bei Ebay, das geht, zumal die
Passform erstaunlich gut war!!!!!)
Man hätte da noch schweissen können,
aber bei den Ersatzteilpreisen war
das völlig sinnlos.

.......und dann dieses seltsame selbsteinstellende
Kupplungsseil.....der Pedalweg war etwas zu lang-
einmal kräftig am Seil gezogen- jetzt war das Seil
zu kurz und nicht mehr dazu zu bewegen
lockerer zu werden.
Beim Versuch das Seil auszuhängen
spannte es sich noch mehr!
Bis ich das Ganze dann endlich ausgebaut,
zerlegt, verstanden!!!!! und wieder zurück
gestellt und wieder drin hatte vergingen etwa
eineinhalb sinnlos vergeudete Stunden.
(zurückstellen ist übrigens nicht vorgesehen,
laut VW ist in so einem Fall der Seilzug zu
tauschen- eine Klammer sichert alles und wenn
das Seil montiert ist-Klammer lösen und
das Ganze stellt sich selbst ein - Blödsinn!
(es gibt übrigens auch eine Standardausführung)

Na ja, irgendwie habe ich die restlichen Kleinigkeiten
wie kaputtes Heckklappenschloss + Rost
an der Heckklappe, kaputte Tachobeleuchtung
und noch einige Kleinigkeiten auch noch repariert.
Alles schön nachgepinselt. (viel weniger Aufwand als
spritzen, was ich zwar ganz gut beherrsche,
aber so sieht das auf zwei Meter auch perfekt aus,
das genügt für so ein Alltagsgefährt)
jetzt sollte der Golf wieder zwei Jahre laufen,
dann wirds wohl eng..... die Leitungen zur
Servolenkung schauen gar nicht mehr gut aus,
vor allem die Anschlüsse am Lenkgetriebe.
Die Kupplung hatte auch schon bessere Zeiten.
(ist aber wohl noch die erste !!!!!!!!!!!!!!!!!!)
Batterie und Auspuff-- das wird sich zeigen!
Und neue Tankhaltebänder brauche ich
dann sicher auch noch
mal sehen, eigentlich hatte ich vor zwei Jahren
schon gedacht, das wäre der letzte Tüv!
aber so schlimm wars diesmal gar nicht,
und jetzt ist schon so vieles erneuert,
das könnte sogar in zwei Jahren nochmal
klappen.
(ganz sicher bin ich mir da aber nicht)

....noch eine sehr seltsame Kleinigkeit:
Da ich die Tachoeinheit schon mal draußen hatte,
habe ich mal nachgeschaut, was denn da alles
an Kontrolleuchten vorgesehen ist.
Unter Anderem auch eine Tank-Warnleuchte.
Da war noch nie eine Lampe drin, also hab
ich eine reingesetzt.
------Siehe da! funktioniert sogar!!!!!!!
Die hat VW nie bestückt, so was gabs nur
bei Seat-Modellen mit diesem Tacho!
(Bei VW nicht mal gegen Aufpreis) dabei
ist da alles schon vorhanden und verdrahtet.
So weit ich mich bisher informieren konnte
ist das aber nicht bei jedem 3er Golf so,
sondern abhängig vom gerade verbauten
Instrument. Glück gehabt!

Ich mag Kontrollämpchen etc. solange sie
nicht nerven...(Dingdong!!! Bitte Tanken.....)
Einen Zeiger übersieht man schnell mal,
aber ein rotes oder gelbes Lämpchen
das fällt auch auf, wenn man nicht
gerade absichtlich hinschaut.Das rote
Kühlwasserlämpchen hat mir schon
den Motor gerettet, als plötzlich der
Thermostat dicht machte. Das
Thermometer habe ich nicht gesehen.
So schön z.B. die Instrumente im
vierer Golf aussehen, die roten Zeiger
machen mich immer furchtbar nervös.
Ausser wichtigen Warnmeldungen
möchte ich nichts rotes in den
Armaturen sehen.(ok, Geschmackssache)
Die Armaturen des 3er Golf sind völlig
ausreichend und zweckmäßig.
Ich mag das Auto so wie es ist.... ein
unspektakuläres Gebrauchsfahrzeug
ohne größere Fehler oder Macken
Vom Design her sehr gelungen.
Der Motor (1,6l 75PS AEE (Polo)) ist
ein wirklich guter Motor. Der Spaß-
Faktor fehlt zwar, aber man kommt
doch flott voran und der Verbrauch liegt
irgendwo bei knapp sieben Litern,
ich kann da nicht jammern. Lieber hätte
ich zwar den 90PS 1,8l Motor gehabt,
oder den 1,6er mit 100PS
meiner Meinung wohl die bessere Wahl,
aber so ist es auch völlig in Ordnung
Vor allem zieht er so schön gleichmäßig
von 1800 - 5000 U/min durch.
Wenn man auf der Landstrasse nur so
dahinrollt kann man ab ca.70Kmh
das sind dann knapp 2000U/min
problemlos den fünften Gang einlegen,
ohne das Gefühl zu haben, den Motor
in irgend einer Weise zu quälen.
zwischen 2500 und 3500 U/min
fühlt er sich richtig gut an und hat da
auch fast das volle Drehmoment.
Das ist so der Bereich von 85 -120 Kmh.
Da kann man auch mal überholen ohne
runterzuschalten.(bringt nicht sehr viel)
und knapp 190 laut Tacho schafft er auch,
wenns denn mal unbedingt sein muss
Das fällt mir insbesondere auf, weil ich
öfter mit einem Golf 4 1,4 16V 75PS fahre,
und der ist im Vergleich zu meinem 3er
wesentlich behäbiger!!
Wenn man da Gas gibt kommt zunächst nichts,
da muss man erst mal runterschalten.
Unter 3000U/min kommt da gar nichts!
Drüber nur recht wenig!Und das bisschen
muß man rausquetschen!
Wofür der ganze Aufwand ?????????????
so viel schwerer ist der vierer auch nicht,
aber offenbar ist der 4er mit 75PS aus 1,4l etwas
untermotorisiert, etwa so wie ein 3er mit 60PS.
Die Liste der kaputten Teile klingt schlimmer
als es war, Ich bin immer noch nach Haus
gekommen, auch mit kaputtem Thermostat,
und sogar, als die Zündspule kaputt ging.
Hauptsächlich Dinge die sich ankündigten,
bzw einfach mal ersetzt werden mussten.
Es gibt zur Zeit wohl kaum ein Auto mit
noch besserer und vor allem noch
preiswerterer Ersatzteilversorgung.
Gerade dank EBAY kommt man an Teile
wo man sich wundert wie das so billig sein kann.
Ich habe immer noch gute Ware bekommen.
Ich habe den Golf inzwischen schon seit
sechs Jahren, bzw 80000Km und da haben andere
Autos auch so ihre Wehwehchen, das
fällt erst so richtig auf, wenn man mal
alles zusammenzählt............
Unterm Strich bin ich sehr zufrieden damit,
aber ich kann mir selbst helfen, wenn man alles in
der Werkstatt hätte machen lassen müssen,
dann würe die Bilanz wohl anders aussehen.
Aber eins muss man den Auto wirklich positiv
anrechnen: es ist mein erstes Gebrauchs-Auto bei dem die
Karosserie die gesamte Technik überlebt!
(wie schon weiter oben gesagt ist das bei meinen
Enten was Anderes, die haben alle ohnehin schon ihren
dritten oder vierten Frühling.........ein anderes Thema!)


mfG
Franz

Nachtrag 12.11.2010:
alles klar, der Golf hat wieder zwei Jahre TÜV!
Auch die Abgasuntersuchung hat problemlos
geklappt! Trotz 201000km auf dem ersten Kat!
Das lief nicht immer so.......
Aus diesem Anlass: Hände weg von
"supergünstigen" Lambdasonden.
Die von Bosch halten manchmal 15 Jahre und länger.
Meine originale machte vor gut zwei Jahren schlapp
(nach ca 13Jahren und ca 170000km)
Die Sonde, die ich damals bei EBAY
kaufte war schon ca. sechs Wochen
später wieder kaputt.
Nach der ersten (sehr!) flotten Autobahnfahrt
war die Heizung durchgebrannt.
(Weil das "einfach nicht sein konnte,
die Sonde ist ja neu!" habe ich den Fehler
aber irgendwo anders vermutet.
Beinahe hätte ich den Kat getauscht. )
Jetzt ist wieder ein originales VW-Teil drin.
(Neu,originalverpackt und ich habe sie
trotzdem sehr!! günstig ersteigert)
jetzt läuft wieder alles so wie es sein soll!

........warum nicht gleich so?????
Da hätte ich mir viel Ärger sparen können!!
Wieder mal was gelernt!

25 Juli 2010

Drehzahlmesser als Amperemeter



Den Drehzahlmesser als Amperemeter zweckentfremden.

Im Zusammenhang mit Michaels New Beetle Elektroumbau
hatte ich vor ein paar Tagen ganz spontan die Idee,
dass man den vorhandenen Drehzahlmesser doch wunderbar
als Amperemeter nutzen könnte.
Die Drehzahl ist doch eher unwichtig, viel mehr interessiert doch,
ob man bei einem Elektroantrieb den gewünschten Vortrieb
mit dem optimalen Energieverbrauch erreicht.
Da hat man so ein schönes Instrument mit einer Skala
von 1- ca. 6 und die zumessende Stromstärke beträgt
0 bis ca 500A Idealer gehts doch nicht!!!!!!
Die Drehzahlerfassung ist auch aufwändig und
eigentlich ziemlich sinnlos wen interessierts eigentlich?
Es geht hier auch nicht um eine hochpräzise Anzeige,
sonder hauptsächlich darum, zu sehen ob der gerade
eingelegte Gang auch der richtige ist.

Ein Vierzylinder zündet zwei Mal pro Umdrehung.
50Hz = 1500 U/min 100Hz = 3000U/min 166Hz = 5000 U/min

Also bräuchte man nur einen ordentlichen Stromwandler-
.............so was gibts zu kaufen!

....und ein bisschen Elektronik, das daraus die passende Frequenz macht!

??????was nimmt man dazu am sinnvollsten????????

!!!!!!!!!!!! einen ATtiny bzw Atmega!!!!!!!!!!!!!!
( ok, das wird langsam langweilig!!!, ich verspreche auch, demnächst mal wieder
was ganz anderes zu beschreiben, wie wärs mit einem winzigen hydraulischen Widder??)

Die Idee ist noch sehr frisch, aber das sollte sehr einfach zu lösen sein.

Der Stromwandler liefert eine zum Strom proportionale Spannung
(genaue Daten muss ich noch raussuchen)
Die Spannung kann ein ATtiny messen und in eine Zahl umwandeln.
z.B. 0-5V = 0-1024 weil die AD-Wandler mit 10bit arbeiten

Der Timer im ATtiny kann 256 Stufen rauf oder runterzählen und bei
entsprechender Frequenzanpassung (Teiler - Quarz bzw interner Oszillator)
entsprechend einen Ausgang umschalten.

für 0 bis 600A braucht man 0 (1) (10) - 200Hz da ist also noch Spielraum
das lässt sich hintrimmen- selbst 10bis 200Hz würden locker reichen
(Anzeige 300 -6000 U/min also 30 bis 600 A)

Das Programm habe ich mir jetzt noch nicht überlegt,
aber es wird winzig sein.

Variablen festlegen,
Timer konfigurieren,
Geberspannung messen,
Kehrwert der Geberspannung
mit Konstante multiplizieren,
an den Timer geben
.........das wars!

Hardware:
ATtiny 13 bzw 25 (was halt grad rumliegt)
5V-Regler + Elko
Eingangsspannungsteiler (falls Geberspannung >5V)
ev. widerstand + Elko zum Dämpfen des Eingangs
Transistor + Widerstand (nicht bei Mosfet) zum Umsetzen auf 12V
4 Klemmen + kleine Platine

Das sollte eigentlich reichen!

In ein paar Tagen gibt es hier mehr zu dem Thema!

Ob das jetzt eingebaut wird oder nicht ist egal,
aber ich will jetzt wissen ob bzw wie gut das funktioniert.
Ich bin mir sicher, dass es klappt,
wenn nicht mit einem(1) Timer (ATtiny)
dann zumindest mit zwei Timern (Atmega)... mal sehen,
Aber Spannung messen, umrechnen und per PWM ausgeben kann selbst
der kleine ATtiny13 schon zwei Mal gleichzeitig und bis auf eine
andere Timerkonfiguration ist das fast das gleiche Grundprogramm!

Ich wills jetzt wissen,
und drum ziehe ich das jetzt durch!!!!!!

mfG
Franz


29.07.2010 Es funktioniert prima!

Leider hat es mit dem ATtiny nicht geklappt, der 8-bit Timer
ist ganz einfach eine Nummer zu klein.
Damit lässt sich kein ausreichendes Frequenzband abdecken.
Entweder bei 100A anfangen oder oben raus
in 30A Schritten anzeigen. ...Schade!!
Somit ist leider die gesamte ATtiny-Reihe nicht verwendbar- oder doch?
(Anmerkung 02.09.10: ich muss bei Gelegenheit mal versuchen beim Timer
den Prescaler während des Programmablaufs umzukonfigurieren....
wenn das schnell genug möglich ist, dann ginge das auch mit einem
ATiny 13 oder 25....... ich habs aber so noch nicht versucht!)
Aber ein Atmega48 kann das! Mit seinem 16bit-Timer.

Der vorgesehene Stromwandler LEM HASS 200 liefert
um eine Mittellage von 2,5V 0,31V je 100A,
Polarität je nach Stromrichtung
Dieses Signal scheint auf den ersten Blick seltsam,
aber nach einem 10bit-AD-Wandler an 5V Referenz
sind das genau 64 Stufen je 100A.
Das passt perfekt! So kann man theoretisch +- 800A messen.
(Man kann den Bereich nicht vollständig nutzen,aber +-600A
sollte auf alle Fälle gehen)

Der Drehzahlmesser eines Vierzylindermotors
braucht zwei Impulse je Umdrehung
Die Anzeige soll letztlich 100A statt 1000U/min anzeigen,
folglich müssen beginnend ab 2,5V 33Hz je 0,31V generiert werden.
Da die Ausgangsfrequenz mit dem "Toggle pinX " -Befehl erzeugt
wird muss der Timer die doppelte Frequenz liefern.

Wie kann man diese Aufgabe umsetzen?

Die Lösung war letztendlich sehr einfach

Der Timer zählt mit einem festen Takt,
in diesem Fall aufwärts, es ginge aber auch abwärts,
man muss ihm nur sagen, wo er beginnen soll loszuzählen.
bei jedem Überlauf also nach 65535 erfolgt ein Interrupt
und da wird der gewünschte Ausgangspin umgeschaltet

Die Zahl der nötigen Takte ist eine Funktion des
Kehrwertes der Stromstärke.
Das klingt jetzt kompliziert,ist es aber nicht
Am Ende muss nur eine Konstante durch
den Ausgangswert des AD-Wandlers geteilt werden,
schon hat man die Anzahl der Zählschritte des Zählers
für die gewünschte Frequenz.
Man kann nun entweder den Zähler nach 0 zählen lassen
und die Zahl direkt übernehmen oder der Zähler zählt
aufwärts, dann muss man die Zahl der Schritte von
65535 abziehen.
Dann noch verhindern, dass bei 0A durch 0 geteilt
wird, das wars eigentlich schon



Das Programm ist noch nicht
optimiert, aber so läuft das
schon mal recht brauchbar.


...und weils eh schon ein Atmega
geworden ist, habe ich gleich noch
ein Display mit reingepackt.


Das hilft auch beim Anpassen
der Konstanten weil man alle
Zwischenergebnisse gleich mit
angezeigt bekommt.

An diesem Punkt stellte ich fest, dass das Programm
gerade mal 10% des Speichers vom Atmega48
belegt.Deshalb beschloss ich, da gleich noch
einen Energiezähler mit rein zu packen.
Der Strom wird bereits gemessen,
Die Spannung ist problemlos zu messen.
fehlt noch die Zeit!
Es gibt noch zwei Timer
Die Ausgangspins von Timer 0 sind ohnehin
schon für Eingabetasten vorgesehen und belegt,
also bietet der sich als Timer für die Zeit an.
bei den vorgesehenen 4MHz ergibt sich als
"rechengünstiger Wert" eine Frequenz von 15,5Hz
also 15,5 x pro Sekunde die Leistung aus
Strom und Spannung berechnen und die
Ergebnisse addieren und durch die
Zahl der Messungen je Stunde Teilen
(55800 je Stunde) schon hat man
die Wattstunden.Ich habe nicht auf
KWh umgerechnet, weil die Ausgabe
formatierter Zahlen ein gewaltiger
Speicherfresser ist.
Das hebe ich bis zum Schluss auf!
Dann noch ein kleines Menue zum
Eingeben des Startwertes.
Man gibt die Energie vor, die man dem
Akku entnehmen möchte und die Anzeige
zahlt dann runter bis Null.
Das Ganze wird in Wattstunden und %
angezeigt.
....Der Speicher war noch immer nicht voll,
und es gibt noch einen Timer (Timer 2)
umd der kann doch den %-Wert als
PWM-Signal ausgeben; Ausgang OC2B
ist noch frei-Das klappt also!
Das PWM-Signal kann so hingetrimmt
werden, dass es die vorhandene
Tankuhr ansteuert und so die
Restenergie anzeigt.






.........jetzt sind die 4k Flash aber voll!!!
Ich hoffe, noch eine übers Menue
einstellbare Warnung bei ca 25% Rest
unterzubringen.
Es müsste gehen, wenn ich die Anzeige
meiner Zwischenergebnisse entferne
und das Programm noch ein wenig
optimiere.

ein kleines Video des fast fertigen
Messwandlers:
(leider ist das Display kaum lesbar)




video

....und noch eine kleine Funktionsdemonstration
des derzeitigen Entwicklungsstandes
Der Energiezähler soll ja in mein BMS integriert
werden- also muss er seine Werte auch über die
serielle Schnittstelle an das Master-Display
weitergeben.Das Display des Energiezählers
habe ich nur für dessen konfigurierung
vorgesehen, da muss man selten ran und das
wird wohl irgendwo in der nähe des Stromwandlers
oder beim Ladegerät installiert werden.
Die Übertragung der Werte läuft inzwischen,
aber durch die vielen Interrupts der Timer
und der vielen Berechnungen der Energie
ist die Reaktionszeit schon ziemlich lang.
Das hat halt alles Vorrang vor dem eigentlichen
Programmablauf (Anzeige + serielle Ausgabe)
Es bringt an dieser Stelle wenig, den Takt zu
erhöhen, weil dadurch auch die Timer schneller
laufen würden.Mal sehen, was mir da noch
einfällt.................es müsste schon viel besser
werden, wenn nicht mehr so viel angezeigt
werden würde!




video








Kleiner Nachtrag:

So sieht das derzeit auf meinem "alten"
Display aus (ATtiny2313, 2k):





Zelle 16 hat 3,39V
Zelle 5 hat mit 3,56V den höchsten
und Zelle 13 mit 2,64V den niedrigsten
Wert, Die Gesamtspannung ist 128V
und die Akkus haben noch 95%
Energie drin.

Im 4 x 20 Display könnte man noch mehr
Info reinpacken, aber macht das
wirklich Sinn?
etwa so: (älteres Foto mit dem
"neuen Programm", Atmega 48 )
Die Durchschnittliche Spannung
ist mir wichtig! auch noch die
12V Bordbatterie.
Aber das wird schon recht viel
für das kleine DIP204 Display






Mal sehen was da noch an Ideen kommt......

Nachtrag 03.12.2010:
Dieses Projekt bekommt gerade eine sehr
interessante Eigendynamik.......
Heutige Autos haben meist keinen klassischen
Drehzahlmesser mehr, fast alle Signale
und Messwerte werden inzwischen in
irgend einem Steuerrechner generiert,
überwacht, ausgewertet und oft auch
aufgezeichnet. Ein ganz extremes Beispiel
bzw der erste bei dem das so richtig
konsequent eingesetzt wurde ist der SMART.
Da geht alles per CAN-Bus......
jedes einzelne Rad wird überwacht, Lenkradstellung,
Querbeschleunigung, Neigungswinkel,
Einspritzmenge, Temperatur, Tankinhalt,
gerade eingelegter Gang....etc... das alles geistert
als Datenpaket ständig über den CAN-Bus!
Wenn man da einen Drehzahlmesser
nachrüsten will, dann kann man den zwar
anstecken, aber er muss erst mal im
Zentralrechner freigeschaltet werden........

Offenbar ist der ganze Drehzahlmesser
nichts anderes als ein kleiner Schrittmotor
mit Zeiger! Mal sehen, ob ich dieses kleine
widerspenstige Teil dazu bewegen kann,
vernünftige Werte anzuzeigen???
Wenns wirklich nur ein Schrittmotor ist,
dann sollte das ziemlich einfach sein!
mal sehen.........Ich werde hier
darüber berichten sobald ich mehr weiß.

Nachtrag 13.12.2010:
JA!!!! Es geht !
Es ist wirklich nur ein kleiner billiger Schrittmotor,
und man kann ihn direkt mit dem Atmega steuern!

video


$regfile = "m48def.dat"
$crystal = 8000000
$baud = 1200

Config Adc = Single , Prescaler = Auto , Reference = Avcc
Start Adc

Dim Adcin As Integer
Dim Adcstep As Integer
Dim Schrittzahl As Word
Dim Adcin8 As Integer
Dim Steps As Integer
Dim Phase(4) As Byte
Phase(1) = 8
Phase(2) = 2
Phase(3) = 1
Phase(4) = 4
Config Portc = &B00001111

Initl:
If Adcstep < 500 Then Incr Adcstep
Gosub Subsm
Portc = Phase(steps)
Waitms 4
If Adcstep < 500 Then Goto Initl

Inith: 'nach Rechtsanschlag fahren
If Adcstep > 0 Then Decr Adcstep
Gosub Subsm
Portc = Phase(steps)
Waitms 4
If Adcstep > 0 Then Goto Inith

Do
Adcin = Getadc(5)
Adcin = Adcin / 2

If Adcstep < Adcin Then Incr Adcstep
If Adcstep > Adcin Then Decr Adcstep
Gosub Subsm
Waitms 4

Portc = Phase(steps)
Loop

Subsm:
Adcin8 = Adcstep / 4
Adcin8 = Adcin8 * 4
Steps = Adcstep - Adcin8
Steps = Steps + 1
Return
End

.........das wars schon..........

"Verstärkung" und einige Kleinigkeiten müssen noch
angepasst werden, aber das Grundgerüst läuft.
Ich habe inzwischen noch eine etwas verfeinerte
Methode gefunden, die Schrittfolge zu erzeugen,
aber so gehts auch gut,
und diese Idee ist wenigstens von mir selbst.



....und schon wieder eine neue Idee:
erst kürzlich habe ich mich über eine
ganze Schale voll Akkus geärgert,
von denen keiner mehr sagen kann
welcher da noch brauchbar ist.

Das Energiezählerprogramm ließe
sich problemlos als Basis für einen
Akkukapazitätsmesser verwenden.
Einfach einen vollen Akku mit ca 1-2A
entladen und die Energie zählen
bis der Akku eine bestimmte
Spannung unterschreitet.
Dann abschalten und den Wert
im Display anzeigen.
Schon weiss man Bescheid!

Vielleicht bringe ich es noch
unter, Spannug und Entladestrom
einstellbar zu machen..............

es sollten ja auch größere
Akkus getestet werden können.
(vom Handy bis zum Schrauber....)

mal sehen, das mit der Spannung
könnte sogar automatisch gehen!?
Beim Start messen, merken und
irgendwo bei 70 - 80% abschalten....
Da muss ich mal Tabellen studieren
und schauen, wie das definiert ist,
was auf so einem Akku draufsteht!

bis demnächst

Franz

11 Juni 2010

Weiter gehts mit dem BMS !!!!!!

ganz frisch:

(mal eben in der Mittagspause getippt.................)



Das topaktuelle Bascom-Listing für meine Balancer/Mess/Heiz

Messwandler mit Atmega 48

Das Programm ist noch nicht fertig!

(Die Balancerfunktion läuft so natürlich noch nicht,

aber Messen von vier in Reihe liegenden Zellen funktioniert

schon mal und die PWM-Geschichte ist auch aktiviert.

die AD-Wandler werden zwischendurch bereits ausgelesen,

soweit ists ok! Es fehlt noch der Grenzwert für die Balancer
und zum Aktivieren derHeizfunktion muss das Programm

im Master geändert werden, damit es die 255 sendet

wenn geheizt werden soll..............)



Im Gegensatz zum ATiny 24 hat der Atmega eine "richtige"

serielle Schnittstelle, und die arbeitet selbständig

Die Software -Lösung im Attiny24 brachte Probleme mit sich,

weil während der Übertragung das Programm blockiert war.




$regfile = "m48def.dat"

$crystal = 4000000

$baud = 1200


Config Adc = Single , Prescaler = Auto , Reference = AvccStart Adc

Dim A As Byte

Dim A1 As Integer

Dim B As Byte

Dim B1 As Integer

Dim D As Byte

Dim E As Byte

Dim F As Byte

Dim Bal1 As Word

Dim Bal2 As Word

Dim Bal3 As Word

Dim Bal4 As Word

Dim Pwm1 As Byte

Dim Pwm2 As Byte

Dim Pwm3 As Byte

Dim Pwm4 As Byte

Dim Pwmx As Byte

'Open "coma.7:1200,8,n,1" For Output As #1'Open "comb.2:1200,8,n,1" For Input As #2
'Config Timer2 = Pwm , Pwm = On , Compare A = Clear , Prescale = 1'Config Timer0 = Pwm , Pwm = On , Compare A = Clear , Prescale = 1

Config Timer0 = Pwm , Pwm = On , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down , Prescale = 1

Config Timer1 = Pwm , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down , Prescale = 1

Config Portd.5 = Output 'OC0B

Config Portd.6 = Output 'OC0A

Config Portb.1 = Output 'OC1A

Config Portb.2 = Output 'OC1B

Do

D = 0 'eigentlich überflüssig
If F > 0 Then F = F - 1
A = Inkey() 'einlesen des Auslesebefehls

E = A

If E = 255 Then F = 255 'Wert ablegen für Balancer-heizung
A = A - 12 '-12 bei 13 bis 16
If A = 1 Then ' AD-Wandler 1 misst gegen "Masse"A1 = Getadc(1)If A1 > 255 Then A1 = 255

D = A1

Printbin D

End If
If A > 1 And A < a=" 2">
B = A - 1 'hier wird der nächste Eingang als Bezug genommen

A1 = Getadc(a)

B1 = Getadc(b) ' Einlesen von ADC2, 3, 4

A1 = A1 - B1

If A1 < a1 =" 0">
If A1 > 255 Then A1 = 255

D = A1 'umwandlung in ein Byte

Printbin D ' senden des ByteEnd If

Bal1 = Getadc(1)

If Bal1 > Pwmx And Pwm1 < pwm1 =" Pwm1">
If Bal1 <> 0 Then Pwm1 = Pwm1 - 1

If F > Pwm1 Then Pwm1 = F

Ocr0a = Pwm1
Bal2 = Getadc(2)

If Bal2 > Pwmx And Pwm2 < pwm2 =" Pwm2">
If Bal2 <> 0 Then Pwm2 = Pwm2 - 1

If F > Pwm2 Then Pwm2 = F

Ocr0b = Pwm2
Bal3 = Getadc(3)

If Bal3 > Pwmx And Pwm3 < pwm3 =" Pwm3">
If Bal3 <> 0 Then Pwm3 = Pwm3 - 1

If F > Pwm3 Then Pwm3 = F

Ocr1a = Pwm3
Bal4 = Getadc(4)

If Bal4 > Pwmx And Pwm4 < pwm4 =" Pwm4">
If Bal4 <> 0 Then Pwm4 = Pwm4 - 1

If F > Pwm4 Then Pwm4 = F

Ocr1b = Pwm4

Loop

End



Dass die Formatierung den Text verschiebt

ist ärgerlich....sorry!
..........und noch ein Update:
ich hab noch ein bisschen dran gearbeitet.
Die PWM-Augänge arbeiten jetzt auch richtig!
Somit eigentlich auch schon der Balancer!
Die Schwelle ist jetzt einfach mal provisorisch auf
128 (ca 2,5V) gesetzt und am Ausgang hängt eine LED.
beim Kurzschliessen eines Eingangs geht die jeweilige
LED langsam (in ca 1s) aus, und nachher auch wieder
langsam an. So soll es sein!
Wie geht es weiter?
Die große Frage ist: soll die Balancerschwelle fest
eingestellt sein, oder auch über den Master
konfiguriert werden können?
....Die Heizung......
Ich stelle mir das so vor:
Wenn auf heizen geschaltet ist wird die Balancerschwelle
per Befehl auf ca. 2,5 - 3V gestellt wodurch natürlich
die balancer voll durchschalten und kräftig heizen.
(ca 20-25W je Zelle also 10A sollten das dann schon sein!!!!
das ist nicht ohne...................mal sehen..........)
Der Befehl kommt natürlich nur ein mal je
Durchlauf und braucht deshalb auch eine Zeitfunktion.
Die Schwelle muss also wieder auf den korrekten Wert
umschalten sobald der Befehl länger nicht mehr kommt.
Wenn man hier mehrere Werte zur Wahl hätte,
dann könnte man nämlich auch mal "unten balanzieren"
ohne gleich alle Rest-Energie verheizen zu müssen.
Ebenso muss natürlich auch die Temperatur des Kühlkörpers
überwacht werden.
Da muss ich wohl noch ein bisschen spielen...................
Die Anzahl der zur Verfügung stehenden Befehle hängt davon ab,
wieviele Zellen letztendlich verwaltet werden sollen.
Solange ich nur je ein Byte sende sinds 254 Befehle insgesamt.
das ist letztendlich gar nicht sooooviel.
jede Zelle belegt schon mal einen das steht fest
Dann kommts drauf an, was man noch alles wissen will
und wie man es auswertet.
Eine globale Statusabfrage je Messeinheit also ein Atmega,
der vier Zellen überwacht sollte reichen.
Die hat ja wieder 254 (ein Byte) Antwortmöglichkeiten!
Da kann man auch in die acht einzelnen Bit so manches
hineincodieren bzw man erstelllt sich eine Tabelle aus
vorbereiteten Antworten.
Da im Normalfall 40Zellen reichen sollten (ca.144V)
aber im Extremfall auch 192Zellen zumindest als
Option vorgesehen sind wenn normale Drehstrommotoren
mit Frequenzumrichter betrieben werden sollten
werde ich mal die Zahlen 1 - 50 für die Zellen reservieren
und die Zahlen 51-192 so lange es vermeidbar ist nicht nutzen.
Als Statusabfrage sollten dann die Werte 201- 210
bzw bei vollausbau bis 248 dienen. (10 bis 48 Messeinheiten)
Bleiben also noch 193-200 und 211-254
(wenn 255 die heizung einschaltet und Werte wie Bordbatterie,
Motortemperatur, Gesamtspannung und Strom etc. vom Master
direkt gemessen werden......da gibts noch viele Möglichkeiten.......
und wenn man einfach mal nur von max. 40 Zellen ausgeht, dann ist
der Bereich von 41 - 200 und 211-254 nutzbar, das reicht! )
Im Master-Rechner geht mir bekanntlich der Platz im Atmega48
zur Neige, aber da gibts ja noch den Atmega 88 oder 168,
dann kann ich wieder "prassen".
Da ich aber eigentlich mit dem 48er auskommen möchte,
werde ich zunächst nochmal das Menue vereinfachen.
Weniger Text, nur Variablen und nur einmal alles speichern
beim Verlassen, das könnte klappen.
Die Restenergieanzeige will ich als eigenständiges Modul
konzipieren......wieder ein Befehl belegt,
wenn der Master das anzeigen soll
In den Messeinheiten ist noch "platz ohne Ende"
da geht noch sehr viel! es wären auch noch je zwei
Analog-Eingänge und ein PWM-Ausgang frei.
Zur Temperaturmessung pro Viererpack reicht das.
Nachtrag 15.06.2010
Erste Versuche mit dem letzten Stand des Mess und Balazier-
Programms im Atmega sind sehr erfreulich verlaufen.
Messen und balanzieren funktioniert grundsätzlich schon
sehr gut soweit meine unfertige Schaltung das zulässt.
Wie schon früher erwähnt ist die Ansteuerung der Mosfet
das größte Problem.
Wenn man eine vierergruppe für sich alleine betrachtet
dann liegt der Atmega zusammen mit einer der Zellen
auf Masse. Die Zellen sind Verbunden und die Spannungen liegen
irgendwo bei 3,6V, 7,2V, 10,8V und 14,4V.
Der Atmega wird über einen 5V-Regler von der höchsten Zelle
aus versorgt(2-3mA) Die PWM-Ausgänge schalten deshalb
zwischen GND und 5V hin und her.Damit kann ich nur den
Mosfet der an GND liegt direkt ansteuern wenn es ein
N-Kanal Mosfet ist.Für die drei anderen ist das nicht möglich.
Hier kommen P-Kanal Typen zum Einsatz und es ist jeweils noch ein
Treiber-Transistor erforderlich der als "open Collector" die Gates
gegen Gnd zieht. Wieder mal eine etwas ungewöhnliche Schaltung,
aber so gehts! So eine Vierergruppe kommt ohne weitere
Galvanische Trennung aus und darauf kam es mir an.
Nur zwei Optokoppler (einer für RXD, einer für TXD je vier Zellen)
und die Versorgung des Atmega erfolgt aus der Vierergruppe
Der Balancer ist auch ohne Steuerrechner funktionsfähig,
jede Zelle wird einzeln balanziert
und der Steuerrechner kann jederzeit jede einzelne Zelle
abfragen und dann wird ihm der Spannungswert gesendet
Die Genauigkeit liegt bei ca +- 0.04V also im +-2% Bereich.
Das sollte genügen.
Den größten Stromverbrauch haben übrigens die
Eingangsspannungsteiler!
Fehlt nur noch eine Meldeschleife zum Beenden des Ladevorgangs
wenn die erste Zelle voll ist..........

mfG

Franz

Nachtrag 25.07.2010:

Das Sommerloch ist überall........
In den letzten Wochen gabs genug andere Sachen zu erledigen,
so dass mir ganz gewiss nie langweilig war!
Am BMS ist nicht mehr sehr viel passiert abgesehen von einigen Tests,
die durchweg sehr positiv verlaufen sind
Die Balancer arbeiten gut, das sanfte Einschalten per PWM klappt prima,

Noch zu lösen:
Zuverlässiges umschalten der Balancer-Spannungsgrenzen vom Master aus
(bzw soll das überhaupt von da aus gesteuert werden???????)
Meldungsausgabe unabhängig vom Master.

Was soll das?
Ich will, dass mein "Master" also das Display etc. mir die Werte anzeigt.
(Max. Min. Durchschnitt Temperatur Fehler etc)

Ich halte es aber für gefährlich, das ganze Balancersystem vom Master und
der seriellen Verbindung abhängig sein zu lassen.
Das muss eigenständig funktionieren!!!
mit irgendwelchen Schleifen, die bei Unterbrechung Fehler signalisieren.
zumindest der Ladevorgang muss so gesteuert werden.

Ich hatte dieser Tage eine völlig andere Idee, die ich unbedingt
in die Praxis umsetzen möchte.
deshalb gibt es an dieser Stelle eine kleine Unterbrechung,
und mal wieder was ganz anderes zwischendurch!
Bis bald!
Franz







10 Juni 2010

Zur Abwechslung: Lambda-Regelung

Zwischendurch mal ganz was anderes............

weils beim Batteriemanagement vorübergehend
ein wenig hakte (4 x PWM in einem Baustein....)
und weil ich das schon seit langem
machen wollte, habe ich nun endlich meine
Lambda-regelung gebaut.

Als angenehmen Nebeneffekt konnte ich
sogar mein PWM-Problem lösen!
Es geht also auch mit dem Batteriemanagement
demnächst wieder voran.
(Messen klappt schon prima, jetzt kommt noch
die Balanzierfunktion mit in die Messeinheiten
sowie eventuell die Heizung über die
Balancerwiderstände........ das hat anscheinend
noch keiner gemacht bzw. gewagt.............)
Das Ganze ist eher eine Programmierübung,
obs in der Praxis funktioniert wird sich noch
zeigen.

Falls jemand irgendwelche Quelltexte möchte,
Bitte Melden!
leider kann ich das hier schlecht veröffentlichen,
weils die Formatierung nicht verträgt...........
Video / Fotos gibts ein andermal!

mfG
Franz

Herz des Ganzen ist ein Atmega48.
Programmiert mit Bascom.(macht immer mehr Spass!)
Als Display das mittlerweile bewährte EA DIP204-4.
Die Spannung der Lambdasonde wird mit
5V Referenz gemessen.Ich hätte auch die internen
1,1V nehmen können, aber so gehts auch.
Genau genug ist das allemal!
Falls ich noch ein Poti an der Drosselklappe
brauche ists so besser

Die Sonde liefert unter 450mV bei zu magerem
Gemisch und über 550mV bei zu fettem.
Der Bereich dazwischen wird gewissermaßen
übersprungen.
(meine Sonde ist schon sehr alt.......
mehr als 800mV kommen da nicht mehr raus)

Man kann das Signal nicht einfach verstärken
sondern muss einen weiteren Wert langsam
in die jeweilige Richtung nachführen.

Über ein Menue kann man den oberen und unteren
Schaltpunkt einstellen.
ebenso die Verzögerung/Dämpfung beim
Öffnen und Schliessen des Zusatzluftventils.
Ein Kontakt bei Standgas schliesst das Ventil sofort.
(der Leerlauf würde sonst "sägen")
bei aktivem Menue ist ebenso "zu"

Im Display wird angezeigt:
Sondenspannung in mV,
der AD-Wandler-Wert (5V=1023)
ein Pfeil zeigt an, ob zu mager, ok, oder zu fett
Der Zustand des PWM-Ausganges
in % , als Wert 0-255, und als Balkenanzeige

Die Setup-Werte werden natürlich im ERAM
abgelegt und im Menue gibt es noch einen
Time-out wenn man zu lange nichts eingibt.

Wie schon gesagt, eine Programmierübung.
man könnte die Werte noch seriell rausschicken
und eventuell brauche ich noch eine Überwachung
bzw. Berücksichtigung der Drosselklappenstellung
eine Motortemperaturanzeige vielleicht?


bis bald!
Franz

16 April 2010

Batterie- Monitor / Management für LIPOs neuer Prozessor,neues Display

So, jetzt wird mit neuer Hardware neu durchgestartet! Der ATtiny 2313 war definitiv viel zu kein. Dafür war das Display zu groß. Um auf brauchbare Einbaumaße und ausreichend Speicher zu kommen habe ich die Teile durch geeignetere ersetzt. Was gibts neues beim Programm bzw. bei der Bedienung? Das Konfigurationsmenue läuft! Ich kann jetzt die Anlage parametrieren ohne den Microprozessor neu programmieren zu müssen. Allerdings ist das Ganze derzeit noch sehr Speicherintensiv. Da muss ich noch dran feilen damit noch weitere Funktionen reinpassen. Hardware: 1. neues Display Statt des alten NO NAME Teils ist jetzt ein EA DIP204 eigesetzt. Die Dinger sind momentan das, was überall verkauft wird. Nur 68 * 26 mm groß und auch preiswert. AAAAAAAber............ der Controller....... Das Teil ist anders als die anderen.... In Bascom muss das Ding etwas anders konfiguriert werden sonst werden die Zeilen und Buchstaben durcheinandergewirbelt. Es war also nicht kaputt, wie ich anfangs dachte. Nur eine Kleinigkeit, aber das sagt einem keiner! Ganze Internetforen behandeln das Thema. Die Lösungen sind viel zu kompliziert! Da brauchen keine Librarys editiert werden! es genügt, das Display mit Config Lcd = 20 * 4a , Chipset = Ks077 (kein Schreibfehler) anstelle von Config Lcd = 20 * 4 zu deklarieren dann läufts! Wäre nur schön gewesen, wenn einem das irgendwer gesagt hätte ! Beruhigend, dass so viele andere auch über dieses Problem gestolpert sind. Na ja, wenns läuft ein super Display! Der Prozessor ist jetzt ein Atmega 48 eine Weiterentwicklung des Atmega 8 allerdings mit 4k Speicher den gibt es aber auch mit 8 oder 16k als 88 bzw 168. Ich will versuchen, mit 4k auszukommen. ( hmmmmm...................) Das ist das, was die "freie" Bascom Version am Programmcode zulässt. Neu am Programm: Es gibt jetzt ein Konfigurationsmenue und die Eistellungen werden im EEprom gespeichert, so dass nach dem Einschalten alles wieder da ist.


Zellenzahl, Oberer und unterer Grenzwert können so eingestellt werden.

Die Funktion ist in Ordnung, aber der Speicherbedarf ist zu groß.

Immerhin läuft es schon mal.Aber allzuviele Zusatzfunktionen kann ich so nicht mehr reinpacken. Ich hab da schon eine Idee, aber die muss erst noch umgesetzt werden.......Abwarten..........

Wichtig ist, dass das Ablegen und Auslesen der Werte in und aus dem EEprom klappt. Das tut es!




video

Die Tasten müssen mit Interrupts verknüpft werden. immer die selbe Funktion auslösen und dann müssen je nach Menue die jeweiligen Werte ersetzt werden.

Jetzt fehlt hauptsächlich noch die Einbeziehung des Durchschnittswertes, also Gesamtspannung / Zellenzahl Da der Gesamtwert eigens gemessen werden muss um aktuell zu sein (Addieren dauert zu lange) braucht man dafür einen Eigenen Messkanal,

der in gewissen Grenzen an die Zellenzahl angepasst sein muss. Ich muss also den Mutiplikator des Messeingangs für die Gesamtspannung auch noch einstellbar machen. Der Spannungsteiler sollte immer geradzahlige Verhältnisse haben, die maximale Spannung am AD-Wandler beträgt 5V

Für die Messung möchte ich den Atmega des Displays nehmen, der kann das in den 25ms machen, in denen er sowieso auf die Antwort der Messeinheiten warten muss. Der Wert ist dann nie älter als ca. 10 ms.

Natürlich wäre auch noch eine Erfassung der verbrauchten bzw nachgeladenen Energie sinnvoll.

Ob allerdings mein derzeitiger Wissensstand schon

reicht um das zuverlässig hinzubekommen ????? Im Prinzip nur ganz oft messen, multiplizieren und aufaddieren bzw subtrahieren. Das wäre ja kein Problem bei Gleichstrom. Das Ganze muss aber auch die Verluste beim Laden sowie die unterschiedliche Kapazität bei verschiedenen Temperaturen sowie die Alterung der Akkus berücksichtigen und dann wirds wieder mal eindeutig kompliziert. Die Energieanzeige steht momentan noch ganz weit hinten an.
Im Augenblick will ich erst mal den Rest brauchbar

hinbekommen.

Erst mal ordentliches Monitoring inklusive der Berücksichtigung der durchschnittlichen Spannung.


Bei LIPOs ist leider der Ladezustand sehr schwer festzustellen, da die Spannung nichts darüber aussagt. Die Änderungen infolge Temperatur und Stromstärke machen da viel mehr aus.Insofern machen noch nicht
einmal feste Spannungswerte als Grundlage für Fehlermeldungen wirklich Sinn. Ein Wert von ca. 2,5V als Untergrenze wird beim Beschleunigen durchaus mal unterschritten, ohne dass ein voller Akku damit ein Problem hätte. 2,5V Leerlaufspannung sind dagegen höchst bedenklich.Die Zelle ist dann ganz sicher leer

und in höchster Gefahr.


Aber wenn dauern was blinkt oder piept nervt das irgendwann auch......... Da ist noch genug zu tun! Dann ein konfigurierbarer Balancer mit Steuerung eines Ladegeräts.

Die Nutzung der Balancerwiderstände als Fahrzeugheizung will ich nicht aus den Augen verlieren, aber das geht immer noch irgendwann.

Zu guter Letzt noch eine Energieanzeige. Wenn ich das noch hinbekommen sollte, wärs wohl doch was für eine Kleinserie.

Aber ich kann und will da jetzt noch überhaupt keine leeren Versprechungen machen. Ich hab schliesslich auch noch anderes zu tun.

soviel für heute , mehr dazu in den älteren Posts. Nachtrag 21.April 2010:
Ich hab wieder einen kleinem Fortschritt:


Die Eingaben bzw. Tastendrücke und die Anzeige im Menue laufen jetzt anders. Die Tasten laufen jetzt über Interrupt, und die Anzeige immer über das selbe Unterprogramm. Ich brauche somit nicht mehr jede Anzeige und Zeitschleife einzeln programmieren, sondern nur noch für jede Menueebene die zu ändernden Werte und ihre Grenzen definieren. das hat gewaltige Auswirkungen auf die Programmgröße. Die Funktionen bleiben in etwa die selben.

"Tasten über Interrupt" das bedeutet, dass jeder Tastendruck sofort das Programm unterbricht und irgendwas auslöst.

In diesem Fall wird einfach ein Wert um eis erhöht oder erniedrigt. Welcher das ist, wird im jeweiligen Menue definiert.

Zum Einen läuft jetzt die Eingabe viel flüssiger, zum Andern hat eine zusätzliche Menueebene einen viel geringeren Speicherbedarf.

Ich bin jetzt bei gleicher Funktionalität bei ca 85% statt 98% des genutzten Flash-Speichers- das ist ein sehr entscheidender Unterschied, wenn noch einiges rein muss................ mal schauen, obs reicht!

wenigstens die Durchschnittsspannungsüberwachung.......... (viel Aufwand)
für die Akku-Temperatur, noch ein Grenzwert, (klein, wenn festgelegt)

und die Befehle für "Heizen bzw. Balanzieren" ! (wenig Aufwand)


Die Restenergieanzeige wird sicher ein eigenständiges Modul. Langsam gehen mir die Nummern für die Befehle aus......... zumindest auslesen und auf Null stellen müsste gehen, Ich glaube, das wird ein Gerät mit eigenem Display etc. irgendwo im Kofferraum und ich lese nur den aktuellen Wert aus und zeige ihn an bzw nicht mal das, das könnte mit der Tankuhr gekoppelt werden..... ..........darum ist das gaaaaaaaaaanz weit hinten angestellt



Nachtrag 22.April 2010

Nachdem ich nun auch noch die Durchschnittsspannungsüberwachung samt zugehörigem Menue reinprogrammiert habe ist wieder mal der Speicher voll!

Ohne Begrüßungsbildschirm und Statusmeldung nach dem Einschalten gehts zwar, aber das ist ja nicht Sinn der Sache.

Wie gehts da weiter? Einen festen Grenzwert nehmen? ..ist das Einfachste!
Durchschnittsüberwachung weg lassen? will ich nicht!

Programm überarbeiten... bringt nicht mehr viel

Größeren Controller.... na klar, ist auch gewissermaßen schon vorgesehen, aber....Da brauch ich dann die Vollversion von Bascom! ca 100€..... ist wohl die beste Lösung! Der Atmega 88 kostet 1,85€ statt den 1,30€ des Atmega48 und hat dann 8k statt 4k Speicher. Der 88 ist pinkompatibel zum 48er.


Dann hab ich wieder "Platz ohne Ende" weil dann auch der 168er mit 16k (2,85€) problemlos verwendet werden könnte. (Bill Gates dachte auch irgendwann mal dass niemand 640k RAM vollschreiben würde...................)

Das Display passt jetzt mal fürs Erste!

Für meine weiteren Tests werde ich die Durchschnitts Überwachung vorerst mal weglassen. Die Entsprechenden Programmteile funktionieren soweit ganz brauchbar, und das Speicherplatzproblem ist lösbar, wenn mir auch die Investition in Bascom nicht gefällt, aber da komm ich wohl nicht drum rum.

Meine Assembler-Kenntnisse reichen derzeit noch nicht, um das alles damit zu programmieren, damit würde der Platz locker reichen.



Das wird schon noch irgendwann.......





















Hier sieht man , was derzeit möglich ist.

von oben:

12Zellen, Durchschnitt 3,60V Gesamtspannung 43.2V

Höchste: Zelle 9 mit 3,72V Niedrigste: Zelle 7 mit 3,58V

Zelle 8 wurde gerade gemessen mit 3,62V Die Bordbatterie hat 13,65 V

In der untersten Zeile kommen die Status bzw Störmeldungen.

Der Speicher ist bis zum letzten Byte ausgenutzt.

Für ein OK! in der letzten Zeile hats nicht mehr gereicht ;-)


Das lass ich jetzt mal einfach so, wie es ist.

Die anderen Funktionen, Menues und Meldungen passen
auch ganz gut, aber eben nicht gleichzeitig wegen Speichermangel.
Da muss jetzt die Vollversion von Bascom und ein Atmega88 her.
(Bascom hat noch gar nicht gemeckert, aber der Atmega48)

Nachtrag 10.05.2010: Ich habe jetzt doch noch eine Möglichkeit
gefunden, ein Wenig Programmcode zu sparen.
Mit "debounce" kann ich die Eingaben deutlich kleiner programmieren,
als das derzeit der Fall ist. Ausserdem ist die Tipperei so wesentlich
angenehmer. Ein paar "locate" und "LCD" lassen sich auch noch
wegrationalisieren.und die ganzen "wait" brauche ich auch nicht mehr.
vielleicht reichen die 4k des Atmega48 ja doch!
Mit der Zahlenformatierung bin ich auch noch nicht ganz zufrieden.
Das muss doch auch weniger speicherfressend gehen,
als erst in Sting umzuwandeln und dann da die
Kommata und führenden Nullen reinzuformatieren.
(fusing........ mal schaun....)

Jetzt ist erst mal die galvanische Trennung dran!

Nachtrag 30.04.2010: Die galvanische Trennung ist gebaut, zumindest in Senderichtung und scheint zu funktionieren. konnte es aber nicht testen. Ich habe mich fürs Erste entschlossen,die galvanische Trennung der Messmodule per Optokoppler zu realisieren. Sicher gäbe es da feinere Lösungen ich denke da an die "ADUM...." Reihe, das sind Signalübertrager auf Induktiver Basis, da ist sogar ein DC-DC-Wandler mit drin, mit dem man die Messeinheiten
problemlos versorgen könnte.Der Preis liegt irgendwo bei 3€ pro Stück. Das ist mir im Augenblick zuviel!
Ich werde meine Messmodule direkt aus den jeweiligen Zellen speisen. Solange der Eingangsspannungsteiler mehr verbraucht als der Microcontroller, der die Spannung misst ist alles andere eh sinnlos. ....Und ein Controller je Zelle würde zwar weniger Strom brauchen, weil man den direkt anschliessen könnte, aber dann bräuchte auch jeder controller eine eigene getrennte Versorgung.
Um nochmal alles klar zu stellen, es geht hier um Stromaufnahmen im Bereich von 2mA, das ist praktisch nichts für Zellen von 50 bis 200 Ah es macht also wenig Sinn, da was zu verbessern.

Ich habe die "Sende-Seite" etwas unkonventionell gebaut, aber es funktioniert hervorragend. Beim "Maximalausbau" mit 192 Zellen müsste ich 48 Optokoppler zugleich ansteuern. (eher unwahrscheinlich, aber es ist einfach mal vorgesehen) Normalerweise sollten 12 Optokoppler (48Zellen) reichen.
Das Serielle Signal kommt mit 5V TTL-Pegel aus den Bausteinen. Eine Umsetzung auf RS232 Pegel mit einem MAX232 bringt hier überhaupt nichts, an den Messmodulen brauche ich
sowieso wieder ein 5V TTL-Signal.
um so viele Optokoppler anzusteuern brauche ich aber zumindest einen 12V-Ausgang. Da könnte man dann 24 x 4 Optokoppler in Reihenschaltung betreiben. Ich habe deshalb ein IC genommen, das eigentlich als Mosfet-Treiber gedacht ist. Ein TC4451 Das Teil kann an 12V bis über 2A Dauerstrom treiben. Das reicht für 24 x 5-10 mA Impulse (kurz) ganz locker!

Das ankommende Signal ist wesentlich einfacher zu handhaben. Da immer nur ein einziger Messumformer sendet ist auch immer nur ein einziger Optokoppler aktiv. Einen einzelnen Optokoppler kann der Atmega direkt treiben und dem Ausgang des Optokopplers kann man ohne Probleme auch 12V zumuten. Ich werde die Signale wohl mit 12V übertragen (??????) und am Steuerrechner wieder runterteilen/ begrenzen/ entstören um etwas mehr Störsicherheit zu haben.

Nochmal Nachtrag (7.5.2010) :
Ich habe noch ein Signal hinzugefügt. Vor jeder Datenübertragung wird an den Master eine Null gesendet und eingelesen damit der Empfangspuffer der seriellen Schnittstelle auf Null gesetzt wird. Ich würde sonst Störungen nicht bemerken, weil ja noch der alte Wert im Puffer stünde..... Die gefundene Lösung ist aber noch nicht optimal. Da muss es doch eine andere Möglichkeit geben um den Empfangspuffer auf 0 zu setzen.Ich habe den Befehl allerdings noch nicht gefunden. Als "Workaround" habe ich dem Master eine Software-Schnittstelle verpasst, mit der er sich die 0 ganz einfach selber schickt. Das geht aber sicher noch viel eleganter! Aber es funktioniert.
Ich habe für diese Tests den alten Aufbau mit dem ATtiny 2313 nochmal reaktiviert. Für diese Versuche reicht das alte Programm, und die Messwandler in der derzeitigen Version sind ohnehin da mit drauf.
Ein kleines Video hierzu:



video

Weil ich es gerade in der Hand hatte.....
Das Display im Größenvergleich:
Ich werde wohl das EA DIP204-4 einsetzen. Dieses Display gibt es auch in Blau mit weisser Schrift oder in weiss mit schwarzer Schrift. Das Bandkabel darf wohl durchaus bis ca 30cm lang sein.(noch nicht getestet)
Das Display misst aussen 68 x 27 mm und ist mit Kabel etc 15mm hoch.
Die Höhe könnte notfalls auf ca 11mm reduzirt werden indem man die
Anschlusspins entfernt und das Bandkabel direkt an der Platine anlötet.




(das müsste also sicher irgendwo unterzubringen sein)



Im Normalen Betrieb soll mein BMS keine Schalter
oder Taster benötigen, (drei Tasten zur Konfigurierung)
diese können also "an unauffälliger Stelle" versteckt werden
oder man steckt sie nur bei Bedarf an.............



Um Gehäuse etc. habe ich mir noch keine Gedanken gemacht!
Das Display sollte eigentlich wenns irgendwie geht im inneren
der bestehenden Armatureneinheit einen Platz finden.
























Am Display selbst ist nicht viel zusätzliche Elektronik
nötig.Hinten ist noch ein Poti für die Kontrasteinstellung,
ein Stützkondensator und der Vorwiderstand für
die Beleuchtung drauf. Das Poti sollte später auf die
Hauptplatine bzw wenn noch ein PWM-Ausgang übrig bleibt
durch eine Einstellmöglichkeit übers Menue ersetzt werden.
Kondensator und Vorwiderstand für die Beleuchtung
müssen später auch nicht unbedingt am Display sitzen.
So ist es aber kompatibel mit dem STK500-Board
Momentan sind erst 8 Drähte benutzt. Zwei sind frei,
Das reicht noch für Kontrast und Beleuchtung
(Die sollte besser mit 12V über Zündung versorgt werden).
Von da her also kein Problem

Das geht zur Not auch ohne Platine!

Noch ein paar Tests mit langen Leitungen, dann werde ich mich mal um die Messeinheiten kümmern damit die endlich je vier in Reihe geschaltete Spannungen messen können.
Die Balancer-Funktion will ich ohne Optokoppler zum Laufen kriegen.
Ich werde wohl P-Kanal Mosfets nehmen, Pull-up- Widerstände halten sie ausgeschaltet und open Collector- Treiber (ICs oder Transistoren oder notfalls doch Optokoppler?) schalten die Balancer gegen Masse ein. (Masse ist in diesem Fall der unterste Punkt jeder
Vierergruppe.Je vier, ev. sogar nur drei Zellen versorgen den Atmega
Mal sehen obs so geht wie ich mir das vorstelle.

Nachtrag 18.05.2010
Seit gerade eben läuft der erste Messwandler mit Auslesung von vier
in Reihe geschalteten Zellen.

Um nicht alles neu programmieren und bauen zu müssen hab ich es mit
einem ATtiny 24 aufgebaut und das bisherige Programm angepasst

Das Ganze hat auf Anhieb so funktioniert, wie ich mir das vorgestellt habe.
Im Programm musste ich den ersten Wert anders behandeln, da der
gegen "Masse" des jeweiligen Viererpacks gemessen wird.
bei den anderen drei Zellen muss ich den Wert der nächstniedrigeren
Zelle vom Wert subtrahieren.

zur Genauigkeit:
Spannungsteiler ist 4:1
Spg 1 (Zelle13) 0,683V am AD-Wandler => 2,73V, im Display:2,77V)
Spg2 (Zelle14)1,400V -0,683V=0,717V =>2,86V, im Display:2,91V)
Spg3 (Zelle15)2,170V - 1,400V=0,77V =>3,08V, im Display: 3,14V)
Spg4 (zelle16)3,034V - 2,170V = 0,86V => 3,46V, im Display: 3,50V)

Woher kommt der Fehler?
Das ist eigentlich gar keiner, das sind etwa 2% und die kommen
von der Korrektur der anderen Werte im Display.
Ausserdem ist da noch die Auflösung von 0,02V
die sich in diesm Fall auch mal verdoppeln kann.
Die Spannungsteiler sind auch noch da........
Ich muss die einzelnen Messwandler einfach noch ein Wenig
abgleichen, und zwar den Wandler und nicht das Display,
wie ich es der Einfachheit halber jetzt mache, dann passt das wieder perfekt.
Da ich weiß, wo der Fehler herkommt, bin ich
für heute mit dem Ergebnis sehr zufrieden!!!!

19.05.2010
Die Korrektur ist wieder korrigiert.........
Da die bisherigen Wandler mit 5,05V statt 5V als Referenz abeiteten
und somit etwas (ca.1%) zu niedrige Werte lieferte,
hatte ich das in der Berechnung korrigiert.
Der neue Wandler hat aber 4,99V als Referenz, somit
stimmt dessen Ausgabewert etwas genauer.
Aktuelle Messungen damit:
Spg 1 (Zelle13) = 2,74V, angezeigt im Display: 2,74V)
Spg2 (Zelle14) = 2,86V, angezeigt im Display: 2,88V)
Spg3 (Zelle15) = 3,10V, angezeigt im Display: 3,11V)
Spg4 (zelle16) = 3,46V, angezeigt im Display: 3,46V)
Das übertrifft sämtliche Erwartungen,
besser kann das Ergebnis gar nicht mehr werden!
Bei Gelegenheit werde ich das nochmal mit einem
sehr genauen Meßgerät überprüfen.

08.06.2010
..........lange nichts neues mehr..........
Ich hatte einfach auch mal was anderes zu tun......
Es gab zwischendurch einen echten Rückschlag, aber das hat mich nicht
wirklich überrascht.
Ich habe versucht, auch noch die Balancer-Funktion mit rein
zu packen. Der ATiny 24 ist halt einfach kleiner.
Notfalls 3er-Pakete steuernDas wird aber nichts mit dem ATtiny 24.
Abgesehen davon, dass ohnehin die Pins nicht für vier Zellen reichen,
gibt das in Verbindung mit dem Software-UART einfach
zu viele Timing-Probleme.Offenbar sind da Interrupts mit im Spiel
und da kommt dann die Schnittstelle durcheinander wenn gleichzeitig
auch noch Analogwerte gelesen werden sollen


Beim Atmega 48 brachte ich dann die PWM-Funktion zunächst nur mit
Timer 1 zum Laufen. Ich brauche aber vier unabhängig ansteuerbare
PWM-Ausgänge.(je zwei bei Timer 0 und 1; einer bei Timer 2
Seit heute geht das aber auch mit Timer 0!

Config Timer0 = Pwm , Pwm = On , Compare A = Clear , Prescale = 1
'Config Timer1 = Pwm , Compare A Pwm = Clear Up , Prescale = 1
'Config Timer2 = Pwm , Pwm = On , Compare A = Clear , Prescale = 1

Aus irgendwelchen Gründen müssen Timer 0 und 2 einfach anders
konfiguriert werden. woran es aber nun wirklich scheiterte habe ich
bis jetzt noch nicht gefunden.(aber auch noch nicht wirklich gesucht)
Nur weils 8Bit statt 10Bit Timer sind ??
Timer 1 lief auch im 8Bit Modus. Wir werden sehen........

Jezt hätte ich sogar 5 PWM-Ausgänge
und 6 AD-Wandler-Eingänge zur Verfügung.

Notfalls wären also auch fünfergruppen möglich, aber das scheint
mir dann doch zu viel zu sein.
Ich habe aber das Programm noch nicht auf den Atmega 48
angepasst und übertragen. Erst brauche ich noch einen
Aufbau um etliche Atmega48 eigenständig laufen lassen zu können.
dann gehen die Versuche weiter.
Es sieht aber gut aus, soweit ich das jetzt schon sagen kann.

Die serielle Verbindung läuft prima das ist schon länger getestet.
AD-Wandler-Werte einlesen war auch kein Problem
und die PWM-Ausgänge anzusteuern läuft jetzt auch ohne Probleme.

Das muss nur noch alles in ein (1) Programm und mit der Hardware
muss ich mir noch ein bisschen was überlegen wie ich die
Balancer-Mosfet am besten ansteuere.

Womöglich sogar P-Kanal und N-Kanal gemischt ?????
2,5 - 3 Volt sind schon sehr wenig als Gate-Spannung
Die Heizungs-Idee ist noch nicht aufgegeben!
Zum Balanzieren bei ca 4V reicht die Spannung.

mfG

Franz

10 März 2010

Serielle Anzeige selbst programmiert (fast)

Tja............
die fertigen Programme haben nicht ganz so
funktioniert, wie ich das haben wollte..........
Ich musste mich also selber hinsetzen!
Das ist sowieso die befriedigendere Lösung.

Was wollte ich haben?
1. ATtiny als Basis wg. Bascom-Programmierung
2. Quarz, damit die serielle Schnittstelle läuft.
3. Baustein mit echter serieller Schnittstelle
4. ein selbstgeschriebenes Programm

Was soll das Ding letztendlich können?
....wieder mal Änderungen im Konzept....

1.Ich will ein LCD-Display für diverse Anzeigen
2.Am Display soll es mehrere Tasten geben
3.Die Funktionen sind auf mehrere ATinys verteilt
4.Die ATtinys kommunizieren seriell (vorerst(?),weil einfach!)

Was müssen die Programme können?
1. Das Display muss seriell empfangene Daten darstellen
2.Der Rechner im Display soll Befehle schicken können
3.Die Messeinheiten sollen einzelne Befehle erkennen

Was soll ablaufen?
in der "Grundstellung" werden Gesamtspannung und
"Bordnetzspannung" gemessen und angezeigt.
Ganz nebenbei werden die einzelnen Zellen der
Reihe nach abgefragt und bei Fehlern soll Alarm
ausgelöst werden.
Als Bemessungsgrundlage soll die durchschnittliche
Zellenspannung dienen! Ein Alarm bei einer bestimmten
Spannungsuntergrenze ist natürlich ebenso vorgesehen.
Ein gezieltes Abfragen einer Zelle ist auch vorgesehen.

....ganz so weit bin ich aber noch nicht......
Die Messfunktionen und Umrechnungen in "Klartext"
habe ich schon mit dem ATtiny13 getestet, das sollte
nicht mehr allzu problematisch sein, und die Funktionen
sind auf andere ATtinys bzw. Atmegas übertragbar.

Deshalb habe ich mich jetzt erst mal den Steuerfunktionen
gewidmet.
Dafür habe ich ein Testprogramm geschrieben,
das möglichst viele Steuerfunktionen abarbeitet.
Im Display / Bedieneinheit will ich einen ATtiny2313
einsetzen. (Anm. es wird wohl eher ein Atmega48,
aber für andere Zwecke würde der 2313 durchaus reichen)
Dem habe ich jetzt folgendes beigebracht:
Reaktion auf ganz bestimmte (Hex) Befehle/Bytes
1 (49h), 2 (50h), 3 (51h) und r (114h) werden erkannt
und als Reaktion darauf wird sowohl im Display
angezeigt als auch seriell als Text gesendet,dass diese
Befehle erkannt wurden (und auch welcher es war)
Undefinierte Befehle werden ebenso gemeldet und
weitergeleitet.(Hex-Wert wird angezeigt
Hex-Wert und Buchstabe im Klartextwerden sowie
eine Textmeldung werden ans Terminalprogramm
geschickt)
Die Ausgabe der Hex-Zahl als Buchstabe in der
LCD-Anzeige klappt momentan noch nicht,
aber das ist auch gar nicht nötig
und das wäre sicher noch lösbar.
Als "Klartext" geschickte Meldungen werden
derzeit einfach ignoriert, das ist gut so.
Da muss ich noch ein bisschen grübeln,
wo ich überhaupt die Meldungen generiere.
(Werte nur als Zahl (Byte, ev.Integer)übertragen und
in der Anzeige umrechnen, oder schon in den Messtellen
als Klartext generieren und im Display nur
noch anzeigen (String,16Zeichen)...mal sehen...
das wird noch interessant........)

Am ATtiny2313 sind noch vier Portpins frei,
da kommen Taster dran.Damit die Ausgabe je eines
Befehls auszulösen ist kein Problem.
Die Auswertung der Befehle funktioniert jetzt,
und wie die Messung geht ,das hat schon der ATiny13
eindrucksvoll gezeigt.Da erwarte ich keine großen
Probleme mehr, aber da brauche ich andere Bausteine.
(ATtiny24 bzw. ATtiny26 scheinen geeignet,
Leider haben die keinen UART...... der 2313 hat
UART aber keine AD-Wandler.... warum gibts keinen
ATtiny mit UART und ca. 4 AD-Wandlern?????????).
All die Funktionen, die mir Kopfzerbrechen
bereiteten laufen jetzt im Testprogramm
gleichzeitig in einem ATtiny2313 der zur Zeit
ca 55% an möglichem Code drauf hat.
Da geht noch einiges................
z.B. eine kleine Menueführung für die
Funktionen







video







Nachtrag 12.März 2010:


Ein Menue für die Bedienung läuft

mittlerweile auch schon mal in den
Grundzügen.


Ich kann zwischen mehreren Ebenen

(in denen dann völlig unterschiedliche
Programme ablaufen können)
hin und herspringen.


1.Ebene, gleich nach dem Einschalten.

Systemtests etc. ev. anschliessend
umschalten in die zweite Ebene
2.Ebene für ??????????
Ich denke an Überwachen von
durchschnittlicher, höchster und
niedrigster Spannung aller Zellen
sowie Anzeige der Bordbatterie (12V)
und überwachung fester Grenzen.
3.Ebene, Automatisches Messen
aller Zellen der Reihe nach
mit Einzelspannungsanzeige.
4.Ebene, manuelle Anwahl der Zellen


Das alles ist noch nicht endgültig, die
Programme sollen auch als Basis für
vollkommen andere Anwendungen
brauchbar sein.

(wer weiß, was noch kommt).

Recht unerwartete Probleme gibts beim
Einlesen von Text (ASCII)
und größerer Zahlen (mehrere Byte)
über die serielle Schnittstelle, aber das
ist ganz sicher zu schaffen. Im Prizip
geht das schon, aber da ich empfangenen
Text nicht so ohne Weiteres im Display
darstellen kann und auch der Empfang
nicht ganz einfach ist, insbesondere,
wenn mal irgend welche Fehler
auftreten sollten und deshalb die
Übertragung irgendwo stockt.
Das wird noch interessant!!!


Eigentlich wollte ich die"Rechenaufgaben"
in die Messstellen
auslagern, und das Display nur als
Anzeige, Bedieneinheit

und Zellennummerngenerator
nutzen (derzeit 65% Speicher voll)
Prinzip: Zellennummer gesendet,
die entsprechende Messstelle antwortet
in "Klartext" (Zelle 23: 3,27V)
Wenn ich jetzt die Umsetzung in
"Klartext" auch noch da reinpacken
soll, wirds hier wieder mal eng.....
..und die Messstellen langweilen sich!
Da das aber ohnehin Voraussetzung ist,
um alle Spannungen zentral zu
"bewerten" und nach Pegel und der
zugehörigen Zellennummer zu
sortieren ist das wohl nicht allzu
Problematisch.

Übrigens: 1 Byte entspricht bei
5V Messbereich ca 0,02V Auflösung.
(5V / 256 = 0,01953125)

Eine Genauigkeit von ca +- 0,1V sollte
demnach zu schaffen sein.Das müsste
eigentlich locker reichen.

Nachtrag 16.03.2010:

Das Display macht jetzt schon ganz tolle
Sachen:





















Die aktuell gemessene Zelle wird angezeigt.
(z.B.: Z060)
(Die " Messwerte", je ein Byte kommen bereits über
die serielle Schnittstelle an, aber noch aus einem
Simulierten Messumformer, einem ATtiny2313,
der auf Anfrage vorgegebene Werte von 0-255 sendet)
die "mV" sind nur "Text für die Optik")
Das Anfragen der Messwerte und die Sendung
der passenden Antwort funktioniert problemlos
und absolut zuverlässig.
Die Auswertung und Anzeige der Zellen mit
der höchsten und niedrigsten Spannung
funktioniert auch schon.

Allerdings zeichnet sich schon jetzt ab,
dass der ATtiny 2313 doch überfordert ist.
(eigentlich wollte ich die Messstellen rechnen
lassen und das Display sollte nur den Text darstellen)
Die 2k Speicher sind fast voll,weil die
Formatierung der Zahlen z.B. führende
Nullen bei Bascom den Speicher geradezu "frisst"
(Das Problem hatte ich schon beim 13er)
Daran solls aber gewiss nicht scheitern!
Die 4k der Freien Bascom-Version reichen
allemal, ich muss nur noch die Messwerte
in Klartext umrechnen etc. das ist nicht
allzu tragisch.
Einen passenden Prozessor finde ich sicher!
(Atmega 48 à 1,30 € )

Das Programm gefällt mir schon ganz gut.
Ich führe die Berechnungen nun doch
im Steuerrechner des Displays durch,
weil ich so viel problemloser die
Min- und Max-Werte
ausrechnen und anzeigen kann.
Das wurde doch wieder mal ganz anders
als ursprünglich geplant!
So macht das einfach mehr Sinn!

Prinzip der Maximalwertanzeige:
Kommt ein höherer oder niedrigerer Wert
als die angezeigten Grenzwerte, werden die Werte
(Zellennummer und Spannug) ins Display
geschrieben, und auch als Referenz abgelegt.
Kommt die entsprechende Zelle erneut an die
Reihe, so wird der neue Messwert übernommen.
So bleibt die Anzeige immer aktuell und eventuelle
Fehlmessungen werden wieder entfernt.
Das lief auf Anhieb perfekt.



video

Nachtrag 17.03.2010:

Ich habs nun doch noch geschafft, alle
wichtigen Teilfunktionen in den 2313
rein zu programmieren!!!!
Vor Allem die Formatierung der Zahlen.

Anzeige von Zellennummer Spannung;
Anzeige von MAX. und MIN.

sowie eine Störmeldung bei Unterspannung
einer einzelnen Zelle. (fester Wert)

Die Meldung bei Unterschreitung des
Durchschnittswertes aller Zellen ist
kein Problem mehr, aber das macht
erst Sinn, wenn ich entsprechende
Messwerte aufnehmen kann.

Ich habe den "Dummy-Geber", der einfach
fest vorgegebene Werte lieferte
(je nach Anfrage, zum Test der Decodierung)
durch einen ATtiny 13 ersetzt,
der auf jede Anfrage reagiert, aber dafür
tatsächlich misst.
Das Ergebnis ist beeindruckend!

Da die Berechnungen im Display-Rechner
stattfinden, werden sich die Messstellen
eher langweilen.........

Was hab ich da vor?

Ich will je fünf (4 ????) Zellen zugleich
messen. das geht mit einem Baustein
über die Zwischenwerte der Reihenschaltung
von 4 x 5V ; 0-5V-10V-15V-20V.
Die Auflösung beträgt da immer noch
ca. 0,025V bei fünf Zellen bzw.
0,02V bei vier Zellen.
Die AD-Wandler arbeiten mit 10Bit (1024)
Der Wert müsste also ohnehin durch 4 geteilt
werden damit es ein Byte pro Wert wird.
Das ist nicht die Messgenauigkeit!
aber die sollte dann immer noch bei ca +- 0,1V
oder besser liegen

Es drängt sich geradezu auf, die Balancer-
Funktion auch in die Messstellen zu packen!

.....mal durchkalkulieren, obs Sinn macht.

Ich spare ATtinys à 1€ je Zelle ein, brauche dafür
aber je einen Optokoppler .....und der Abgleich
wird schwieriger....und der Balancer bräuchte
eine eigene Spannungsversorgung...............

Hmmmmmmmm...............

Nachtrag 06.April 2010

.......und wieder einen Riesenschritt weiter!!!!!

Das Display läuft schon mal gut genug für erste Tests.
Da ist noch einiges zu tun, aber das eilt jetzt nicht.
Die Befehle gehen richtig raus und die Rückmeldungen
werden korrekt angezeigt. Das reicht vorerst.
Der Prozessor wird sicher noch ein anderer.
Vermutlich ein Atmega 48!
Der hat als einzigen "echten" Nachteil sehr viele Pins (28).
Mit 1,30€ eine Super-Sache.
Wenn der nur nicht so riesig wäre.........
Beim Display ist das kein Problem, aber bei den
Mess-Modulen muss ich Platz sparen.Da sind die
14Pins des ATtiny24 schon angenehmer.

Ich habe in der Zwischenzeit ein wenig an den
Messstellen weitergearbeitet.

Mittlerweile messen vier ATtiny24 jeweils vier
Spannungen.Leider haben die 24er wie auch die
26er keine wirklich echte serielle Schnittstelle.
Deshalb laufen die mit "Software-UART"
Zumindest aber mit Quarz und so funktioniert
das schon ganz zufriedenstellend.
Womöglich werde ich hier auch auf den
Atmega 48 umstellen - mal sehen.......
Der wäre völlig "unterfordert", aber die
Datenübertragung wäre dank UART besser.

Die Kommunikation läuft noch nicht galvanisch
getrennt, aber immerhin klappt die Kopplung.
Alle Messstellen kriegen das selbe serielle Signal.
(bei wesentlich mehr Messstellen ist hier natürlich
noch eine Treiberstufe für viele Optokoppler nötig)


Die Rückmeldung wird per Dioden und Pull-Up auf
eine Leitung zusammengeführt.
Da alles nach dem Master-Slave-Prinzip arbeitet
gibt es hierbei bisher keine Probleme.
(jede Messstelle sendet nur, wenn sie vorher
aufgefordert wurde, so gibt es kein Durcheinander)

Wie gehts weiter?
Nächstes "Etappenziel" ist die galvanische Trennung
der seriellen Kommunikation.Insbesondere die
Treiberstufe für bis zu 50 Optokoppler.Ich will
Versuche mit Treiberbausteinen für Mosfet machen.
Die Dinger setzen die 5V-Signale auf 12V oder 24V
um und sind sehr schnell und preiswert.Bei 12V
könnten schon mal je vier Optokoppler in Reihe
betrieben werden.Wieviele dieser Gruppen an einem
Ausgang betrieben werden können muss noch
getestet werden.Schon der kleine TC4431/32
kann 1,5A Peak und mindestens 100mA
Dauerstrom bei 24V schalten, was an 12V
für mindestens 24 Optokoppler reichen sollte.

2 * 24 * 4 = 192 Da sollten mit zwei TC4432
192 Spannungen keine Utopie sein!
(Das gilt es aber noch zu bestätigen)
Ansonsten gibt es ja auch richtige Treiber-ICs.
Um einen Frequenzumrichter für
380V-Motoren an Gleichspannung zu betreiben
sind ca 160-170 Zellen nötig.

Da ich ohne großes Protokoll nur ein Byte sende
und pro Meßstelle vier Zellen messe möchte ich die
Werte 201 - 250 für Statusabfragen freihalten.

mit 251 (?) bis 254 könnten dann z.B.die
Bordbatterie und die Gesamtspannung erfasst
werden.

Bei den Rückmeldungen mache ich mir weniger
Sorgen.Ein ATtiny oder Atmega kann locker
einen Optokoppler ansteuern.
Dass ich wohl nicht die Ausgänge von fast 50
Optokopplern einfach parallelschalten sollte
ist auch klar, aber das muss ich ja ohnehin
grüppchenweise machen. Die Anlage soll ja
aus Standardbaugruppen bestehen,
Display = Master und Slaves je nach
Anzahl der überwachten Zellen
Eventuell wird die Kommunikation auch
mit etwas mehr als 5V erfolgen.
Da fällt mir schon noch was ein!

I²C oder ein ähnliches Bussystem stünde auch noch
im Raum, aber das ist auch nicht so viel besser,
vor Allem wenns galvanisch getrennt sein soll
wird der Aufwand schnell größer.
Ich werde deshalb wohl bei meiner primitiven
seriellen Kommunikation bleiben, wenngleich
da wohl an mancher Stelle mit 12V gearbeitet
werden wird.
Mir reichen übrigens sogar 300Baud wenns denn
sein müsste, derzeit läufts mit 1200Bd.
(9600Bd machten aber auch keine Probleme)

Noch ein ganz wichtiger Punkt auf der
"To Do -Liste": die Variablen wie
Zellenanzahl, oberer und unterer Grenzwert
etc....... sollen unbedingt im Menue einstellbar
werden; momentan sind sie noch fest
im Programm abgelegt; aber wozu haben
die ATtinys und Atmegas schliesslich
ihr EEprom........ Die paar Variablen
lassen sich sicher noch wo unterbringen!
Im 2313 fehlt allerdings der nötige Platz.



Update 9.April 2010:

noch ein paar Verbesserungen:

video


grundsätzlich ist das System schon fast verwendbar!

es fehlen noch folgende Funktionen:
Galvanische Trennung der Meßstellen
Messen mehrerer Zellen in Reihe
Einstellen der Parameter im Menue

ferner:
gezieltes Anzeigen bestimmter Zellen
(aus Platzgründen derzeit entfernt)

Steuerung eines Ladegerätes bzw.
Integration eines Ladegerätes ins System.
(Das wird wohl etwas schwieriger!)
Voraussetzung hierfür ist eine Rückmeldung der
Balancer-Funktion bzw eine Steuerung der Balancer
vom Display aus.Sobald eine Zelle mehr als
z.B. 50% der Balancerleistung braucht,
muss die Ladestromstärke reduziert werden.

Ob jetzt "oben" oder "unten" balanziert wird
(Jack Rickard...) ist doch letztendlich egal!
Die schwächste Zelle macht immer den vollen
Spannungshub. "Oben" balanzieren ist
wesentlich einfacher, da für jede Zelle die selben
Werte gelten.
Dafür ist eine Spannungsüberwachung
jeder einzelnen Zelle Voraussetzung.
Wird "unten" balanziert, dann sieht man an
der Gesamtspannung wann Schluss ist.
Ein Balanziervorgang kann aber nur bei
fast völlig leeren Akkus stattfinden.
Aufgrund ihrer flachen Kennlinie sagt die
Spannung bei LIPOs fast nichts über den
Ladezustand aus.
Ich wills mal so sagen:
Werden LIPOs ohne Batteriemanagement
betrieben, dann ist "unten" die bessere
Lösung bzw sogar die einzige Möglichkeit.
Hat man aber ein Monitoring oder
Management, so sollte eher "oben" balanziert
werden.Die Steuerung des Ladevorganges ist so viel
einfacher zu beherrschen.
Man sollte sich aber im Klaren sein, dass die
praktikabelste Lösung wohl eine Art
Mittelweg sein wird. Es ist nicht nötig alle
Zellen randvoll zu laden und eine Menge
Energie in den Balancern zu verheizen.
Sobald die schwächste Zelle zuerst voll ist
und auch zuerst leer wird ist die Balanzierung
in Ordnung, ganz egal, auf welche Spannung sich die
Zellen letztendlich einpegeln.
Die Shunt -Widerstände brauchen daher gar nicht so
stark ausgelegt sein wie üblich.
Es reicht also, wenn sie nur korrigiernd eingreifen.
(Das setzt aber eine Rückmeldung voraus)
Eigentlich kann mit dem Laden aufgehört werden
sobald die erste Zelle ihre volle
Spannung erreicht hat.
genauso muss aber erkannt werden wann die erste
Zelle leer ist. (es sollte dann aber die selbe sein,
die als Erste voll war!!!!)
Ein "fertigbalanzieren bis 4,2V" bringt jedenfalls
überhaupt nichts.

mfG
Franz