Translate

10 Oktober 2018

.........es gibt mich noch!

Ja hallo allerseits!

Tja, schon wieder ein Jahr vorbei ohne dass man es so richtig bemerkt hat...….

Je älter man wird, desto schneller scheint die Zeit zu verrinnen!

Wieder mal war viel zu tun, manche Ereignisse haben sich geradezu überschlagen,
aber das soll jetzt nicht der Inhalt dieses Posts sein...….

In Sachen Elektromobilität ist leider viel zu wenig bis gar nichts passiert,
aber trotzdem hat sich in meinem Fuhrpark so einiges getan.
Ein paar Altlasten sind endlich abgehakt, aber ein paar neue Problemchen sind
dazu gekommen.

Bei meiner "Alltags- bzw. Reiseente" die ich vor zwei Jahren wieder flott machte
ist schon wieder der TÜV fällig! Na ja, das hat noch Zeit bis zum Frühjahr
da hier eh ein Saisonkennzeichen drauf ist.

Sehr gefreut hat mich, dass ich auch eine weitere Ente, nämlich meine gute alte
16PS-Ente Bj. Ende '69 wieder ordnungsgemäß auf die Straße bringen konnte.
Nach 15Jahren Standzeit war natürlich so einiges zu reparieren insbesondere
die Bremsanlage und Bereifung musste praktisch komplett ersetzt werden.
Insgesamt war es aber gar nicht tragisch, es gab so gut wie keine negativen
Überraschungen und an Blech und sonstiger Mechanik war fast nichts zu beanstanden.
Die 16er wurde von mir 1988 komplett überarbeitet und durchrepariert.
(neue Schweller und Bodenbleche und einige Schweissarbeiten, anderer Motor + Getriebe
und der Lack ausgebessert) Von einer Restaurierung will ich da aber nicht sprechen.
Der wunderbare leicht patinierte Originalzustand konnte bis heute erhalten werden.
Weil ich meine 16er nur selten benutze und ansonsten aber stets vor allen schädlichen
Umwelteinflüssen fern halte hat sie die letzten 30 Jahre erstaunlich gut überstanden.

Ebenso wiedererweckt wurde meine '71er BMW R75/5 die jetzt 22Jahre eingelagert war.
Auch hier war überraschend wenig zu tun! Reifen na klar! Andere Auspufftöpfe,
Sitzbank neu bezogen, ein paar Bowdenzüge ersetzt und so Kleinigkeiten......
sowie ein anderes Rahmenheck. (Das war der eigentliche Grund warum die Maschine damals
eingemottet blieb, weil das Blech wo die klappbare Sitzbank einrastet bzw.
der Schlosszapfen geführt wird erst abgebrochen war und dann auch noch verloren ging )
Neu lackiert habe ich das Motorrad vor 24 Jahren schon und das hat sich gut gehalten.
Bleiben noch ein paar Dinge die schon beim Kauf vor ca. 26 Jahren nicht in Ordnung waren.
Aber wenn man da anfängt endets in einer kompletten Revision der Technik!
Das will ich jetzt gerade überhaupt nicht machen!
Die Kupplung ist stark verschlissen,  und der linke Zylinderkopf sollte ersetzt werden,
weil er einen beginnenden Stegriss hat (War eine "Notreparatur" da beim originalen Kopf das
Kerzengewinde samt Reparatureinsatz ausgerissen war)
Ich weiß auch dass die Zylinder (schon damals) leichte Standschäden haben
und es gibt eine alte Rechnung über " 1 Pleuel gebraucht "
Da der Motor aber ganz ordentlich läuft und kaum Öl braucht möchte ich ihn eigentlich
erst "aufbrauchen" und bei den wenigen Km die ich damit fahre kann das noch
eine sehr lange Zeit dauern.
Ich vermute sehr stark, dass da eine "Sportnockenwelle" drin ist!
Die 75/5 ist eigentlich nicht als besonders drehfreudige Maschine bekannt sondern soll
so in der Gegend von 5500 U/min eigentlich schon "zumachen".
Der Motor meiner BMW kriegt da nochmal so richtig Kraft und hat sein Leistungsmaximum
erst bei über 6000 U/min. Da stimmt was nicht!
Diese Leistungscharakteristik ist nicht das was ich haben möchte.
Schon alleine wegen der vorderen Trommelbremse ist die 75/5 nicht zum Rasen
geeignet. (und wegen der kurzen hinteren Schwinge die meine '71er noch hat auch nicht)
Zum schnell Fahren sollte man eine /6 oder später nehmen, die sind an den entscheidenden
Stellen ganz deutlich weiterentwickelt und verbessert
Vielleicht schaffe ich es ja diesen Winter, die Kupplung und die Nockenwelle zu tauschen.
…...und der Simmerring am Tellerrad des Antriebs sollte auch gleich getauscht werden.

……..und und und...…. mir wird sicher nicht so bald langweilig werden!
Vielleicht schaffe ichs dieser Tage noch, ein paar Fotos einzufügen!

dis demnächst!
Franz









27 Oktober 2017

Inbetriebnahme einer chinesischen Digitalanzeige an einer Deckel FP2 Fräsmaschine

Hallo allerseits!

.........ja ja, ich lebe noch! Auch wenn ich hier über ein Jahr nichts mehr veröffentlicht habe!
Es waren einfach andere Dinge wesentlich wichtiger!

Allmählich kehrt hier wieder Normalität ein und ich kann auch gelegentlich wieder
irgendwelche Sachen basteln.

Derzeitiges Projekt ist die alte Deckel FP2 Fräsmaschine, die seit einigen Jahren in einer
Ecke meiner Werkstatt verstaubt weil da die Digitalanzeige kaputt ist.
Die Maschine gehört mir zwar nicht, aber wenn sie schon bei mir rumsteht, dann
darf ich sie auch benutzen.Die originale Anzeige ist ein  uraltes Teil mit
einer schwarz-weissen Fernsehröhre, und weil da nicht nur kein Bild mehr erscheint
sondern auch die Tasten zum Teil kaputt sind und der Kunststoff sich zersetzt
ist eine Reparatur sinnlos und wäre wohl auch nicht ganz einfach.

Nicht zuletzt aus reiner Neugier habe ich jetzt eine Digitalanzeige beim chinesischen
Versandhaus Banggood bestellt, und das Teil ist letztendlich tatsächlich angekommen.
Das Paket hing zwar ein paar Tage beim Zoll fest, aber dann wars plötzlich da.
Ich habe in letzter Zeit einiges an Kleinzeug dort bestellt und bin höchst angenehm überrascht.
Arduino-Klone für ca 2€, kleinere Motorsteuerungen für 5 bis 10€ und einiges an
Werkzeugen, Fräsern und Bohrern...... alles "für ein Butterbrot" und incl. Versand!
Man muss nur ein bisschen Zeit haben, so zwei bis drei Wochen dauerts meist mindestens

Jetzt habe ich gerade kein passendes Kabel da, und auch keinen Kartenleser um die Bilder aus der Kamera zu holen.... wird nachgeholt!

Die Digitalanzeige schaut auf den ersten Blick gar nicht so schlecht aus, aber das ist schon
sehr billig gemacht......und die Doku in schönstem Chinesisch und noch dazu verkehrt!
Aber was will man für ca 130€ für eine 3-Achsen-Anzeige mit einigen tollen Funktionen
schon groß erwarten?
Die Stecker für die Glasmaßstäbe sind anders belegt als im Datenblatt angegeben! Au weia!
Na ja, das war schnell rausgemessen und nachgeschaut, aber dann wurde es komplizierter!
Die alten Heidenhain-Maßstäbe an der Fräse liefern ein 11µA bzw ein 1Vss Analogsignal
und damit kann der TTL-Eingang der Anzeige nichts anfangen.
Für das Problem gibt es schon lange eine Lösung in Form der Heidenhain EXE-Messwandler.
Zur Not könnte man die Sinus-Signale per OP direkt in Rechtecksignale umwandeln
und würde trotzdem noch eine Auflösung von 0,005mm erhalten.Die Messwandler aus der
EXE-Serie rechnen aber die Analogwerte noch wesentlich feiner in Takte um, und weil ich nicht
allzuviel basteln will, weil alleine die Stecker schon teuer sind habe ich mir lieber einige dieser
Messwandler ersteigert. Einer ist heute angekommen und hat sich als funktionierend
erwiesen obwohl er als ungeprüft und daher als defekt vverkauft wurde.
Leider ist ausgerechnet dieses Teil, ein EXE 610 mit 10x  "viel zu gut für diese Aufgabe"
weil damit die Auflösung des Meßsystems 0,0005mm beträgt! (ein halber tausendstel mm!)
Ich kann noch nicht sicher sagen, ob das Display derart viele Impulse überhaupt verarbeiten kann.
Die anderen beiden Wandler sind noch unterwegs abr das sind dann EXE 602 und die
interpolieren das Signal dann 5x bzw 1x was dann 0,001 oder 0,005 mm Auflösung ergibt.
Immerhin funktioniert diese Auswertung ganz hervorragend und letztendlich habe ich es
auch geschafft, rauszufinden, wie man die Mess-Auflösung im Display einstellt.
Leider kann ich kein Chinesisch! aber immerhin sind die Tasten lesbar beschriftet und in der Anleitung abgebildet bzw geschrieben.

Wenigstens konnte ich eine englische Beschreibung einer ähnlichen Anzeige auftreiben
so dass wenigstens der Grobe Weg schnell klar wurde. Nur um überhaupt ins Menue
zu gelangen war das nicht brauchbar. Da haben de sich was ganz Besonderes einfallen lassen!
Unterm Firmenzeichen ist noch eine Taste vrsteckt! Die hab ich dann eher zufällig entdeckt.

Falls jemand anderes auch mal mit diesm Display konfrontiert sein sollte,
gibts hier eine Anleitung:

Einstellen der Sensorauflösung am Display:

Links unten unterm SONGHONG-Zeichen befindet (verbirgt) sich ein Taster
ca. 1Sekunde drücken dann sollte das Display rechts oben umschalten und 
„X DIR -“ anzeigen.
„ENT" schaltet die jeweilige Zählrichtung um
mit den Pfeiltaste abwärts gehts weiter zu „Y DIR“  und „Z DIR“
weiter über „SDMMODE“ und „Clear SDM“   (was ist das?)
bis „SET PARA“  (bzw 1x aufwärts direkt da hin)
„ENT“ drücken  „Password“ erscheint (weil aber keines definiert ist gehts mit „ENT“weiter)
„ENT“ drücken  „X.Y.Z.RESD“ erscheint
„ENT“ drücken „SEL AXIS“ erscheint, links werden die jeweiligen Auflösungen angezeigt
 X Y bzw. Z wählen und gewünschten Wert mit Pfeiltasten einstellen
(bzw direkt eingeben?? hat 1x geklappt??eventuell nur bei Default wert)
Bei EXE610 (10x) : 0.0005  ; bei EXE602 (5x) : 0.001 ; Bei EXE602 (1x) : 0.005
(einfache Umsetzung mit simplen OP würde also zur Not auch reichen! Auflösung 0.005 reicht)
wenn fertig „ENT“ drücken „X.Y.Z. RESS“ erscheint (bedeutet wohl resolution save)
„ENT“ länger (2s) drücken bis Neustart erfolgt ( Bzw Songhong-Taste oder „ . “ geht wohl mit jeder Taste)

Ich habe das jetzt erst mal in der Firma getestet, da steht auch eine Fräse mit diesen Maßstäben.
Zuhause werd ich dann mal schauen was die Deckel-Fräse da macht.

bis demnächt!
Franz


07 September 2016

Endlich wieder Ente fahren!

.....so ein 2CV ist einfach nicht für die Ewigkeit konstruiert..... aber irgendwie kann
man fast alles wieder reparieren.
Meine "Alltags- und Gebrauchsente" hatte vor einiger Zeit leider einen Zustand erreicht,
wo mal wieder eine größere Revision nötig war.
Wie doch die Zeit verfliegt! Das ist tatsächlich schon wieder 18 Jahre her, als ich das Ding damals
geschenkt bekam (Rahmen "durch", aber Karosserie durchaus noch zu retten)
Ich kaufte damals eine andere Ente zurück, bei der ich etliche Jahre zuvor mal den Rahmen
erneuert hatte, bei der aber mittlerweile die Karosserie am Ende war und so konnte ich damals
aus zwei kaputten Enten wieder eine ganz brauchbare zusammenmischen.
Netterweise ist bei den letzten Enten die Fahrgestellnummer ins Bodenblech der
Karosserie eingeschlagen und nicht im eigentlichen Fahrgestell so dass hier der Rahmentausch
ein bisschen einfacher machbar ist.( aber irgendwann ist auch dieses Bodenblech fällig,
dann wirds wieder etwas verzwickter, und ich muss mir das von einer Werkstatt bestätigen lassen,
dass da die Nummer neu eingeschlagen werden musste.. aber da ist noch eine Weile hin,
und das ist dann schon alles ganz korrekt zu machen)

Als ich das Auto seinerzeit reparierte war schon der Querholm im Fußraum zu schweissen.
(und noch so manch andere Stelle)
Eine typische Problemstelle der Entenkarosserie und nur dann ordentlich zu flicken wenn die
Karosserie vom Fahrgestell abgenommen wird.
Ich war ja angenehm überrascht, wie lange das gehalten hat, und für den letzten Tüv musste ich
dann da schon ein bisschen Zaubern um die Stelle wieder halbwegs schön aussehen zu lassen.
.....und weil ich da rumschweisste ohne die Karosserie abzunehmen konnte ich dann die Stelle
auch nicht gegen Rost behandeln und deshalb hat hier jetzt auch der Rahmen ein Loch.
(aber da sind auch noch etliche auf der Unterseite, die viel schwieriger zu reparieren sind)
Wie dem auch sei, jetzt war mal wieder eine ordentliche Reparatur nötig.
Nach insgesamt 28 Jahren war auch der damals verwendete Rahmen nicht mehr so ganz
taufrisch. Ich habe da zwar schon schlechtere wieder hergerichtet, aber das war dann
nur noch für zwei oder vier Jahre und dann wars endgültig vorbei.
Der alte Rahmen ist durchaus noch zu retten, aber halt nicht in eingebautem Zustand.
Und ausserdem habe ich einfach nicht die nötige Zeit, das jetzt zu machen
Mittlerweile denkt man bei solchen "Klassikern" ja in etwas größeren Zeiträumen.
Ausserdem hat diese Ente die ganzen Jahre recht unverfälscht überstanden.
Der Lack ist großteils noch der originale und es wurde fast nichts verändert.
Ich habe mich daher entschlossen, einen neuen Rahmen zu besorgen,
und zwar einen originalen und keinen der verzinkten Neukonstruierten.
...mal schauen, falls ich mir aus meinem Fundus noch eine weitere Ente aufbaue,
die dann ohne große Rücksicht auf Originalzustand zum Benutzen gedacht wäre
könnte meine Wahl dann durchaus anders ausfallen.

Weil ich jetzt ein paar Tage Urlaub hatte konnte ich das Projekt recht flott durchziehen.
In einer guten Woche (und da auch nur halbtags) war der ganze Umbau erledigt.
und gestern konnte ich auch die Abgasuntersuchung plus TÜV erfolgreich durchführen
und somit wäre ein Problem gelöst, das mir sehr schwer im Magen lag.

Die eigentlichen Umbauarbeiten wären ja schnell erledigt gewesen, wenn.... ja wenn
man alle Schrauben etc. ganz einfach lösen hätte können!
Die Federtöpfe waren kaum mehr raus zu bekommen.
An Zerlegen wie im Handbuch beschrieben war nicht mehr zu denken!
Da musste die Flex ran! Die ganzen Halteschrauben (Rohre mit Aussengewinde)
waren nicht zu retten, aber wenigstens blieben der Rahmen und die Federtöpfe
nahezu unbeschädigt. Ich habe dann aber doch andere, bessere Töpfe eingebaut
"Damals" wurde an Enten geschraubt, die 8 oder 10 manchmal sogar 12 Jahre
auf dem Buckel hatten. Da waren ganz andere Stellen betroffen als die mit denen
man heutzutage kämpft. An der Vorderseite durchgerostete Federtöpfe zum Beispiel.
Die Schweissarbeiten an der Karosserie dauerten auch etwas länger als gedacht.
Dann noch die Vorderachse überholt (Lenkgetriebe, Achsschenkelbolzen und
fast alle Gummiteile ersetzt. Leider ölt der Motor noch ein bisschen an einer
Stelle, die mir gar nicht gefällt......Da könnte ein Stößelrohr undicht sein!
Die Dichtungen sinds definitiv nicht.

Ein echt trauriges Kapitel ist die Qualität mancher Nachbauteile.Insbesondere wenn sie
aus Gummi sind. Vor ca vier Jahren habe ich zwei thailändische Reifen (VEE Rubber) gekauft.
Die sind mittlerweile an den Flanken voller Risse obwohl sie noch nicht mal dem
Sonnenlicht ausgesetzt waren. Zwei chinesische (Golden Tyre) halten sich da wesentlich besser.
Gefahren bin ich mit denen aber auch noch sehr wenig.






 Der Fußraum ....nachher...schaut schon besser aus



 neben dem rechten Rücklicht
alte Reparatur,  vor ca. 10 Jahren



 vom Motorraum her betrachtet.
Die blaue und grüne Hammerschlagfarbe gabs vor kurzem sehr günstig



 Unterkante der Motorhaube innen (vor ca. 10 Jahren geschweisst)


 und aussen (alte Reparatur, ca 10 Jahre her)


 Haubenscharnier, eine bekannte Schwachstelle.
Ich tränke das immer mit Motorradkettenfett, reinige alles und
streiche drüber. Hat sich hier sehr bewährt! Rostet kaum weiter!


  Fußraum-Blech und alter Rahmen
sah innen noch gar nicht soooo schlimm aus


 aussen auch kaum sichtbar (hinter der Achse)


 .........aber im Verborgenen sah es übel aus





 Holm unterm Fahrersitz


 nachher ...ok, kann man schöner machen,
aber dieses Bodenblech gehört einfach komplett ersetzt


 weiter vorn wurde auch schon geflickt,
da hilft nur ein kompletter Tausch von Boden und Schweller


Schaut schlimmer aus, als es ist.
Ausnahmsweise mal von aussen durchgerostet.
innen kaum Rost an der Stelle


 Der Vorderbau könnte durchaus noch eine Weile halten


an der Tankbefestigung rosten fast alle, nicht allzu schlimm.


 neben den Schrauben der Hinterachse gehts meist zuerst los



 links  das Gleiche

 ....und vorne auch


 alte Reparatur, kaum zu sehen


 Wenn man unterm Auto liegt gehts nicht schöner.



etwas Unterbodenschutz, dann wärs schöner


 aber noch lange nicht gut


 auch so eine klassische Stelle unterm Rücksitz,
auch schon erneuert!


 ....und Unterseite B-Säule, diesmal reichte noch drüberpinseln.


 neben dem Rücklicht wurde schon öfter geschweisst (Murks, ich weiß)
da muss aber in absehbarer Zeit das komplette Heck ersetzt werden
(Heckblech, Kofferraumboden,Radkästen. Seitenteile bis oberhalb der Tür )


 von innen durch, schon seit vielen Jahren!


.... kaum zu reparieren, nur auswechseln.
das hält aber noch eine Weile! Gelegentlich einfetten und gut ists
Viel mehr kann man da nicht machen, wäre sinnlos!

















Die Tür war vor 15 Jahren hier schon durch.
Die Stelle rostet nur ganz lansam weiter.
gelegentlich drüberpinseln und gut.........

Die Ente schaut tatsächlich noch etwas besser aus als sie es eigentlich ist.
Leider wurde schon an sehr vielen Stellen geschweisst.
Wenn man da erst mal anfängt, Teile zu tauschen müssen mindestens die
unteren 20cm der Karosserie komplett erneuert werden.
Wenn man den vorderen Fußraum erneuert (komplettes Teil, 65 Euro) dann
sollten auch neue Bodenbleche rein.
Die zu tauschen macht aber nur Sinn wenn auch gleich der
Schweller erneuert wird.
Hinten gehts weiter.... Der Kasten unterm Rücksitz ist
sehr schlecht, Die ganzen Verstärkungen im Radkasten ( Gurthalter, Gummipuffer)
sind ein Rostbiotop und sämtliche Schweissnähte der Radkästen
sind stark angegriffen. Insbesondere auch am Rand des Kofferraumbodens
und oben an der Kotflügel-Befestigungskante.
Weil auch das Heckblech (Unterkante) schlecht ist müsste man das auch neu machen.
Dann aber auch  noch links und rechts neue Seitenteile, weil die
hinteren Fenster allmählich rausfaulen
..........eigentlich bleibt nur noch der Bogen über den Vordertüren übrig.

Diese Karosserie kann locker noch einige Jahre zusammengeflickt werden,
aber für eine ordentliche Restaurierung ist es hier leider schon zu spät.
Deshalb muss es hier einfach genügen, die Verkehrssicherheit wiederherzustellen.
Mir ist vollkommen bewusst, dass das durchaus besser gemacht werden könnte,
aber hier machts einfach keinen Sinn mehr.
Das ist meine Gebrauchs-Ente und (noch) kein Sammlerstück!
......aber wie schon erwähnt, es ist erschreckend, wie die Jahre vergehen........
Diese Ente war nie als Oldie oder gar Langzeit-Fahrzeug gedacht, und nächstes Jahr
wird sie schon 30!!!!!!! was will man mehr? alles im grünen Bereich soweit!
Ich habe mir schon vor einigen Jahren eine recht gute Karosserie von einer
Unfall-Ente besorgt die kaum Rost hat und nur unten im Fußraumbereich
durch den Unfall beschädigt ist. (Der Rahmen knickte dort ein und verformte den Holm)
Das wird dann irgendwann mal die Nachfolge-Karosserie bzw gleich eine weitere Ente.
meine 16PS-Ente (ganz anderes Kapitel...) hatte ich z.B.1988 als 18-jährigen Oldtimer gekauft
(oder vielmehr gerettet) und das war die letzte verkäufliche16PS-Ente die mir seither über den Weg
gelaufen ist.Mittlerweile ist das Teil über 46 Jahre alt und sollte auch mal wiederbelebt werden.
(schaut ganz gut aus, aber ich muss nächste Woche wieder arbeiten und drum wird das wohl
erst nächstes Jahr passieren)

Nächstes Teil auf meinem Wunschzettel: eine Punktschweisszange!

bis demnächst!
Franz







20 Mai 2016

I²C- AD-Wandler ADS1115 bzw ADS1015 sowie MCP3428 auslesen. Diesmal mit Bascom

Hallo allerseits,

Nachdem es neulich problemlos klappte, ein Platinchen mit einem
ADS1015 an einem Arduino in Betrieb zu nehmen soll das jetzt auch
in Bascom programmiert werden.
Anfangs hat mich das ein bisschen "gefoppt", aber es lag nur an einer winzigen
Kleinigkeit...........

ein bisschen Info am Rande:
Vor einiger Zeit habe ich ja schon mal erfolgreich den MCP3428 (16bit I²C AD-Wandler)
in Betrieb genommen, und damit hervorragende Messergebisse erreicht.
Die ganz entscheidende Eigenschaft ist das Vorhandensein von differentiellen Eingängen!
Es wird also nicht nur gegen GND gemessen, sondern gegen einen Referenz-Pin.
Das ist die Entscheidende Eigenschaft, um mit dem LEM HASS200-S hochpräzise zu messen.

Der ADS1015(12Bit) bzw ADS1115(bis 16Bit) und seine Verwandten sind eigentlich sehr
ähnlich wie der MCP3428 und dessen Verwandte.

Im Vergleich zum MCP3428 ist der ADS1115 jedoch wesentlich schneller!
Während der MCP bei 12Bit 240Messungen, bei 14Bit 60Messungen und bei 16Bit
nur noch 15 Messungen pro Sekunde schafft macht der ADS1115 selbst im 16Bit-Modus
noch gewaltige 860 Messungen pro Sekunde!!!!!

Für den geplanten Einsatz in der "Franzbox" ist so viel Leistung gar nicht nötig, aber schaden tuts auch nicht.Mehr als 14Bit Auflösung ist hier auch gar nicht nötig.
Öfter zu messen als ca 15 Mal pro Sekunde ist auch nicht nötig.insofern ist der MCP3428
auch schon ausreichend schnell

Beide Wandler arbeiten mit einer internen Referenz von 2,048V und haben einen
jederzeit umkonfigurierbaren "Gain amplifier"
Die Referenz 2,048 sorgt für direkt verwendbare Ausgangswerte in Volt
Der Einstellbereich reicht beim ADS von 1/3 ; 1/2 ; 1x ; 2x ; 4x bis 8x
also von +-6,144V bis +-0,256V
Beim MCP ist 1x ; 2x ; 4x ; 8x einstellbar  also +- 2,048 bis +- 0,256V

Es ist hierbei zu beachten, dass kein Pegel das Potential der Versorgung überschreiten darf,
also nicht unter 0V und über der Versorgungsspannung (ca2V-5,5V je nach Typ)

Der maximale Ausgangswert beträgt dabei:
12Bit:  -2048 bis 2047   entspricht  x 1mV
14Bit:  -8192 bis 8191   entspricht  x 250µV
16Bit -32768 bis 32767  entspricht x 62,5µV
....das alles bei Gain = 1

Die bestmögliche Auflösung bei 16Bit und Gain = x8 beträgt somit 7,8125µV!
Das sind 0,000007815V je Digit bei +-0,256V Messbereich
Das reicht auch jederzeit um einen Shunt direkt zu messen und auszuwerten.
Hierbei ist natürlich "galvanische Trennung" zwingend nötig, was bei I²C nicht
so ganz trivial ist. Hier wäre SPI von Vorteil.

In den meisten Bereichen hat der ADS die Nase vorn, was kann denn der MCP besser?

In erster Linie hat der MCP vier differentielle Eingänge auf acht pins während der
ADS nur vier Eingangspins hat und so entweder vier mal gegen GND
bzw pin0 gegen Pin1 und Pin2 gegen Pin3 oder Pin0 bis Pin2 gegen Pin3 messen kann.
Ausserdem ist die Ansteuerung des MCP ein bisschen einfacher.
Es müssen etwas weniger Daten übertragen werden, aber letztendlich geben beide
die gleichen Werte aus

Wie liest man denn nun den ADS1015 bzw ADS1115 in Bascom aus?
Der Einfachheit halber nur die entscheidenden Sequenzen.
(den eigentliche Programmaufbau setze ich einfach mal als bekannt voraus)
Die jeweiligen Konfigurationen sind aus meinem Programm übernommen
und können natürlich an die jeweiligen Bedürfnisse angepasst werden.

Die Einzelheiten sind im Datenblatt mehr oder weniger verständlich erklärt.
Ich will da jetzt nicht allzusehr ins Detail gehen, sondern alles nur mal
ganz einfach und verständlich beschreiben wie es grundsätzlich geht.


Ini-Sequenz:

erst mal I²C starten:

Enable Interrupts

Config Sda = Portc.4                  'Ports bestimmen
Config Scl = Portc.5
I2cinit                                        I²C starten

.........hier nur "Software-SPI" aber schon mal die Hardware-Pins beim Atmega XX8


dann Konfiguration senden:
z.B.:

I2cstart
I2cwbyte &B10010000                 'Adresse  senden  an Schreib-Adresse                
I2cwbyte &B00000001                 'Config-Register ansprechen
I2cwbyte &B00000100                 'MSB des Config-Register senden
I2cwbyte &B10000011                 'LSB des Config-Register senden
I2cstop

wieder umschalten auf Lese-Modus

I2cstart
I2cwbyte &B10010000                  'Adresse senden
I2cwbyte &B00000000                  'Lese-Register ansprechen
I2cstop

dann auslesen:

I2cstart
I2cwbyte &B10010001                 'Adresse senden an Lese-Adresse
I2crbyte Read1a , Ack                   'MSB des Messwertes lesen
I2crbyte Read1b , Nack                 'LSB des Messwertes lesen
I2cstop

.........das wars eigentlich schon.......
Die Konfiguration und das Umschalten in den Lesemodus müssen zwar nur einmalig
erfolgen, es schadet aber nicht, das gelegentlich "aufzufrischen"
Auch bei einem Wechsel des Eingangs oder sonstiger Einstellungen
ist die komplette Sequenz nötig

Umrechnen der Werte in positive und negative Zahlen

Read1a wird als Byte gelesen, ist aber für die nachfolgende Berechnung als Word definiert
Read1b im Beispiel sind als Byte definiert
Read1aint ist als Integer definiert

Die beiden Byte müssen erst mal zu einem "Word" zusammengefügt werden
"zu Fuß" geht das so:   (geht auch eleganter, ist dann aber nicht so verständlich)
Read1a = Read1a * 256           'High-Byte nach oben schieben
Read1a = Read1a + Read1b      'Low-Byte einfügen
Read1aint = Read1a                 'Word in Integer ergibt Vorzeichen

Fertig! Der Messwert kann nun weiterverarbeitet werden


Der selbe Lesevorgang bei einem MCP3426

Konfiguration senden:

I2cstart
I2cwbyte &B11010000                 'Adresse  senden  an Schreib-Adresse
I2cwbyte &B00010000                 'Konfiguration senden (hier: Kanal1, 12Bit)
I2cstop

......Hier gibt es nur ein (1) Kofigurationsbyte!
Umschalten in Lesemodus ist hier nicht nötig!

Lesen:
I2cstart
I2cwbyte &B11010001                 'Adresse  senden  an Lese--Adresse
I2crbyte Read1a , Ack                   'MSB des Messwertes lesen
I2crbyte Read1b , Ack                 'LSB des Messwertes lesen
I2crbyte Read1c , Nack                 'Konfigurationsbyte lesen
I2cstop

..........Beim Lesen gibt es hier auch noch ein drittes Byte
Inhalt: Konfiguration und ein "Ready-Bit" das muss nicht immer
ausgewertet werden, ist z.B. nützlich bei Einzelmessungen um sicher zu gehen, dass
der Wert aktuell ist

Zusammenfügen der Byte zu einem Integer-Wert wie oben beim ADS


Diese AD-Wandler (MCP und ADS) kann man jederzeit während des Betriebs "umparametrieren"
Man kann da also schön spielen! z.B. die Auflösung bei niedrigen Analogwerten
erhöhen etc......

Bis demnächst mal wieder!
Franz





03 Mai 2016

Verbesserte Strommessung per I²C AD-Wandler

........wenns schon mit meinem Triebwerk nicht weitergeht,
weil ich meine Nabe noch immer nicht habe......
oder einfach mal als kleines Lebenszeichen von mir!

Zwischendurch mal ein kleines bisschen Elektronik und Programmierung.
Diesmal ganz entgegen meiner sonstigen Gewohnheit auf einem Arduino!
Eine kleine Arduino-Übung für mich, und für die Allgemeinheit wohl besser
geeignet als Bascom, womit ich eigentlich lieber arbeite, weil man da insbesondere bei
PWM-Geschichten flexibler ist und viel problemloser Quarzfrequenzen und Vorteiler
an die persönlichen Bedürfnisse anpassen kann.
Na ja, alles hat seine Vor-und Nachteile.Ein ganz besonderer "Liebling" von mir ist ja der
Freeduino serial v2.0 den es z.B. bei Watterott günstigst gibt.
Die "echte" Serielle Schnittstelle hat was! Damit lässt sich so manches anfangen,
was mit USB nicht möglich ist,wenn man nicht gerade an einem PC hängt.

Die Problematik bei der Strommessung in der Franzbox ist nach wie vor
nicht behoben.
Zur Erinnerung: Ich messe den Strom mit einem LEM HASS200S Wandler.
Dieser wird an 5V betrieben und liefert ein Ausgangssignal von theoretisch
0V = -800A  2,5V= 0A und 5V=800A sowie eine Referenzspannung für den Nullpunkt
(Nur zum Berechnen, in der Praxis sind +-600A möglich, da die Ausgangsspannung
nicht bis 0V bzw 5V geht)
Ich habe die Referenz nicht verwendet, sondern nur auf 0A abgeglichen
und das Ausgangssignal direkt auf einen ADC-Eingang des Atmega gelegt.
Die Genauigkeit bei hohen Strömen (Entnahme) ist ausreichend,aber
bei geringeren Strömen (Ladevorgang) ist die Auflösung einfach zu grob
um wirklich verlässliche Werte zu bekommen.

es hätte hier auch keinen Sinn gemacht, die Referenzspannung auszuwerten.
Das Problem kann eigentlich nur mit einem deutlich feiner auflösenden ADC
mit differentiellem Eingang gelöst werden.
Ich habe vor einiger Zeit schon mal sehr erfolgreiche Versuche mit einem
solchen Baustein gemacht, aber die Verfügbarkeit sowie die winzige Bauform
waren nicht optimal.

Nun habe ich es nochmal mit einer Platine von Adafruit versucht.
Der 12Bit-Wandler ADS1015 ist für diese Aufgabe auch wunderbar geeignet und fertig verlötet
problemlos lieferbar.
Es gibt auch eine Pin-kompatible Version ADS1115 mit 16Bit Auflösung,
die hier noch Vorteilhaft sein könnte.
Der ADS1115 ist etwas langsamer, aber locker schnell genug.

I²C braucht nur zwei Leitungen, und ist notfalls auch "galvanisch getrennt" machbar.
Beim Stromwandler gehts ohne Trennung, aber wenn auch noch die Akkuspannung
gemessen werden sollte wird das ein Thema.
Der ADS1015 hat vier Analogeingänge die per internem Multiplexer wahlweise
gegen GND oder als zwei Differenzeingänge konfiguriert werden können.

in Default-Konfiguration beträgt die Auflösung 3mV, das ist nicht sehr viel besser,
als die bisherigen ca 5mV, aber da auch der Bereich von +-2,048V bezogen auf die
Referenz von 2,5V ausreicht, um den LEM-Sensor auszulesen kommt man dann
auf eine Auflösung von 1mV, und das ist dann das fünffache (korrekt 1/5 ;-)  )an Auflösung, verglichen mit dem Atmega-Onboard-ADC bzw  0.0625mV Auflösung bei
Verwendung des ADS1115. (Das ist dann eine ganz andere Liga!)

Für den ersten Funktionstest Test habe ich es mir einfach gemacht und ein Demo-Programm
angepasst. Alles nur mal auf dem Breadboard zusammengesteckt und getestet.
Der "Freeduino serial V2.0" links im Bild dient hier übrigens nur als 5V-Netzteil.
Ein Arduino Nano war auf dem Steckbrett deutlich besser zu handhaben.

Mein Versuchsaufbau:


































Das Arduino-Programm:

Ich habe hier nur ein Demoprogramm von Adafruit, das die Daten seriell
über USB/serial ausgibt um eine LCD-Anzeige ergänzt.
Die Library gibts bei Adafruit zum Downloaden.
Achtung! die Zeilenumbrüche könnten hier im kopierten Text etwasverschoben sein,
und das Einfügen von Text in spitzen Klammern nach include  der Libs klappt hier nicht!

#include  Wire.h
#include  Adafruit_ADS1015.h
#include  LiquidCrystal.h



LiquidCrystal lcd(11, 10, 2, 3, 4, 5);
// Adafruit_ADS1115 ads;  /* Use this for the 16-bit version */
Adafruit_ADS1015 ads;     /* Use thi for the 12-bit version */

void setup(void)
{
lcd.begin(16, 2);
lcd.setCursor(0, 0);

  Serial.begin(9600);
  Serial.println("Hello!");

  Serial.println("Getting differential reading from AIN0 (P) and AIN1 (N)");
  Serial.println("ADC Range: +/- 6.144V (1 bit = 3mV/ADS1015, 0.1875mV/ADS1115)");

  // The ADC input range (or gain) can be changed via the following
  // functions, but be careful never to exceed VDD +0.3V max, or to
  // exceed the upper and lower limits if you adjust the input range!
  // Setting these values incorrectly may destroy your ADC!
  //                                                                ADS1015  ADS1115
  //                                                                -------  -------
  // ads.setGain(GAIN_TWOTHIRDS);  // 2/3x gain +/- 6.144V  1 bit = 3mV      0.1875mV (default)
  // ads.setGain(GAIN_ONE);        // 1x gain   +/- 4.096V  1 bit = 2mV      0.125mV
  // ads.setGain(GAIN_TWO);        // 2x gain   +/- 2.048V  1 bit = 1mV      0.0625mV
  // ads.setGain(GAIN_FOUR);       // 4x gain   +/- 1.024V  1 bit = 0.5mV    0.03125mV
  // ads.setGain(GAIN_EIGHT);      // 8x gain   +/- 0.512V  1 bit = 0.25mV   0.015625mV
  // ads.setGain(GAIN_SIXTEEN);    // 16x gain  +/- 0.256V  1 bit = 0.125mV  0.0078125mV

  ads.begin();
}

void loop(void)
{
  int16_t results;

  /* Be sure to update this value based on the IC and the gain settings! */
  float   multiplier = 3.0F;    /* ADS1015 @ +/- 6.144V gain (12-bit results) */
  //float multiplier = 0.1875F; /* ADS1115  @ +/- 6.144V gain (16-bit results) */

  results = ads.readADC_Differential_0_1();
 
  Serial.print("Differential: "); Serial.print(results); Serial.print("("); Serial.print(results * multiplier); Serial.println("mV)");


lcd.setCursor(0, 0);
lcd.print("ADC Wert:");
lcd.print(results);
lcd.print("  ");
lcd.setCursor(0, 1);
lcd.print(results*multiplier);
lcd.print(" mV  ");

  delay(100);