Reflexkoppler an 1wire-counter anbinden - Stromzähler auslesen

Begonnen von Punkt, 28 Februar 2013, 11:06:38

Vorheriges Thema - Nächstes Thema

Punkt

Hallo zusammen,

Ich bin da aktuell an einem Problem dran, bei dem ich nicht weiterkomme und mich immer wieder im Kreis drehe:

Ich habe den 1-Wire-Dual-Counter von Uwe aufgebaut und lese bisher damit meinen Gaszähler per Reedkontakt aus - läuft perfekt!

Jetzt wollte ich meinen Stromzähler (analog mit Drehscheibe) ebenfalls auslesen und an den Counter anschliessen um zählen zu lassen.
Zum Zählerablesen habe ich eine Schaltung mit einem CNY70 Reflexkoppler und einem LM393 gewählt:

Schaltbeispiel

(ich hoffe, der Link geht in Ordnung)


Prinzipiell funktioniert das schon sehr gut.

Jetzt hatte ich aber folgende Idee:
aktuell wird jedesmal wenn der Reflexkoppler durchschaltet das Signal auch durchgeschaltet.

Das bedeutet aber, daß das Signal die meiste Zeit (der silberne Teil der Stromzähler-Scheibe) geschaltet ist.
Nur wenn der kurze Rote Teil vorbeikommt wird das Signal unterbrochen.

Meine Gedanken dazu waren:
Wenn ich das Signal irgendwie invertieren kann, dann würde der Stromverbrauch doch normalerweise extrem sinken, da nur bei der roten Markierung das Signal geschaltet wäre (und damit die Kontroll-LED leuchtet usw.). Das sollte doch auch im "Offline-Fall" die Pufferbatterie (GoldCap) stark entlasten...

Das Signal sollte also nur durchgeschaltet werden wenn der Reflexkopper NICHT durchgeschaltet ist...

Und hiermit habe ich meine Probleme...ich habe diverse Modifikationen versucht (andere Anordnung der Widerstände, BC557 statt BC547...) aber nichts hat bisher eine zufriedenstellende Lösung gebracht...

Vor allem wenn ich beide Schaltungen (Counter und Reflexkoppler) mit der gleichen 5V-Stromquelle betreibe geht gar nix mehr... :-)


Könnt ihr mir hier eventuell nen Schub in die richtige Richtung geben?



Viele Grüße

Michael
Cubieboard-2 mit 1wire-Bus und I2C-Extensions
Datenbank: mysql auf Ubuntu-Server
verschiedene "Satellitensysteme" mit ESP-8266

Punkt

so....ich bins nochmal...

durch einiges hin und her probieren bin ich jetzt von selbst drauf gekommen.
Scheinbar hab ich vor lauter Bäumen den Wald nicht mehr gesehen....

Ich brauche einfach nur noch nen Vorwiderstand und in meinem Fall nen Optokoppler dazwischen zu setzen - dann könnte es funktionieren...

Ich werde das Ergebnis hier posten...


Viele Grüße

Michael
Cubieboard-2 mit 1wire-Bus und I2C-Extensions
Datenbank: mysql auf Ubuntu-Server
verschiedene "Satellitensysteme" mit ESP-8266

dougie


Michael,

versuch doch einfach mal anstelle von T1 (= NPN Transistor) einen PNP zu nehmen.
Da der OP eh nichts anderes macht als hin und her zu schalten, sollte dein Problem damit schon gelöst sein.

cassy

Hallo Michael,

IMHO bist Du schon fast am Ziel ...
... lass die Schaltung, so wie sie in dem Anhang gezeichnet ist und tausche einfach am OP den nichtinvertierenden mit dem invertierenden Eingang, also vertausche Pin 2 mit Pin 3, und voilà, Du hast das gewünschte Ergebnis.

Chris <cassy>

Punkt

Hallo zusammen,

das Vertauschen der Eingänge hatte ich versucht.
Aber wenn ich das korrekt verstanden hatte dann dreht sich dann ja die Spannungsrichtung an Pin1 - d.h. ich muss dann so wie von dougie vorgeschlagen doch den PNP-Transistor verwenden...?

Das hatte dann allerdings irgendwie nicht richtig geschaltet - statt an/aus gabs zwischenstufen wie bei einem Dimmer...

Ich hab das aber mittlerweile zum laufen bekommen.
Ihc hab einfach an den Collector einen Optokoppler dazugeschaltet, welcher aktell durchschaltet wenn der Transistor nicht geschaltet ist.
Das hatte auch super funktioniert...

Ich bin jetzt allerdings hin und hab die Schaltung verdoppelt (sind ja quasi 2 Komparatoren...) - und jetzt schaltet der Optokoppler nicht mehr ab.
Ich denke, daß da noch was mit den Widerständen nicht ganz passt... Mein Netzteil quietscht auch ganz leise... *hust*

Ich bin von +5V mit 10K an die jeweiligen Collectoren und dazwischen hab ich mit weiteren 10K an die Optokoppler abgezweigt (die LED aus der oben verlinkten Schaltung hatte ich weggelassen...).

Wie gesagt - scheinbar stimmt nur noch was mit den Widerständen nicht...

Ich versuch morgen mal nen Plan einzustellen...


Viele Grüße

Michael
Cubieboard-2 mit 1wire-Bus und I2C-Extensions
Datenbank: mysql auf Ubuntu-Server
verschiedene "Satellitensysteme" mit ESP-8266

Punkt

Hallo,

nochmal ein kurzer Zwischenbericht:

Die Schaltung läuft...ich hatte lediglich eine Brücke für +5V vergessen... :-/

Was aber gebliegen ist ist das ganz leise Piepsen des Netzteils (5V / 500mA).
Je nachdem ob durchgeschaltet ist oder nicht piepst es anders / intensiver...

Hier vermute ich daß es trotzdem noch Verbesserungspotential bei der Dimensionierung der Widerstände gibt...

Ich versuche - wie geschrieben - morgen mal nen aktualisierten Schaltplan einzustellen...

Ahso...noch zur Info: wenn die Schaltung nicht angeklemmt ist piepst das Netzteil nicht... :-)


Viele Grüße

Michael
Cubieboard-2 mit 1wire-Bus und I2C-Extensions
Datenbank: mysql auf Ubuntu-Server
verschiedene "Satellitensysteme" mit ESP-8266

Punkt

Hallo,

ich habe den Schaltplan jetzt mal angepasst auf meine Schaltung.
Wie gesagt ist mein einziges Problem jetzt noch, daß das Netzteil leise piepst/summt.
Ich vermute, daß es an falsch dimensionierten Widerständen liegt - wahrscheinlich die beiden 10K-Widerstände die ich eingebaut habe...

Als Optokoppler hab ich die PC817 von Sharp verbaut...

Kann mir jemand einen Tipp zur Dimensionierung der Widerstände geben?


(siehe Anhang / see attachement)



Viele Grüße

Michael
Cubieboard-2 mit 1wire-Bus und I2C-Extensions
Datenbank: mysql auf Ubuntu-Server
verschiedene "Satellitensysteme" mit ESP-8266

dougie


Die Schaltung mit den beiden 10K Widerständen versteh ich nicht wirklich. Dimensionierung: maximaler Strom durch die LED Iled und die Forward-Spannung Vf steht im Datenblatt.

Widerstand R errechnet sich dann aus R = (5V - Vf) / Iled

Das Piepsen deines (Schalt-) Netzteils ist dessen Regelung. Es schaltet mit der Frequenz die du hörst ein und aus. Kannst du nicht viel gegen machen ausser anderes Netzteil nehmen oder das Ding auf machen und den Trafo in Heisskleber versenken.

Punkt

Die Schaltung mit den Widerständen hatte ich mir so gedacht:

Der 10K-Widerstand vor dem Collector habe ich deshalb eingebaut, weil ich dachte: Wenn der Transistor durchgeschaltet ist hab ich nen Kurzschluss wenn ich da keinen Widerstand drin hab.

Der Widerstand vor dem Optokoppler war herausgetestet *hust*

Die Idee war folgende:
Wenn der Transistor nicht schaltet fließt der Strom durch den Optokoppler.
Wenn der Transistor geschaltet ist fließt der Strom gegen GND und nicht mehr durch den Optokoppler.

Hab ich auch irgendwo ausm Netz gefischt... :-/

Meinst du ich kann den 10K-Widerstand vor dem Collektor weglassen?
Wie sieht das da mit Kurzschluss aus? Oder reicht es, daß die IR-Diode von dem Reflexkoppler mit dran hängt?

Manches kapier ich scheinbar einfach nicht... :-D


Viele Grüße

Michael
Cubieboard-2 mit 1wire-Bus und I2C-Extensions
Datenbank: mysql auf Ubuntu-Server
verschiedene "Satellitensysteme" mit ESP-8266

Punkt

Hab mir grade nochmal das Datenblatt des Optokopplers angesehen...

Ich bin da immer noch etwas unsicher.

Da steht bei "absolute maximum ratings":
Input forward current (If): 50mA   (Iled) find ich nicht...



Dann bei Input forward voltage max. 1,4V

Wenn ich das jetzt rechne bekomme ich: (5V - 1,4V) / 0,05A = 72Ohm?

Kann das richtig sein?
Oder wo hab ich da ne Verständnislücke? :-)


Viele Grüße

Michael
Cubieboard-2 mit 1wire-Bus und I2C-Extensions
Datenbank: mysql auf Ubuntu-Server
verschiedene "Satellitensysteme" mit ESP-8266

dougie



Lass R8 einfach weg und nimm für R5 mal so was um die 100 bis 150 Ohm  :-)

Punkt

Hallo dougie,

das funktioniert leider nicht...

ich hab das jetzt umgelötet und jeweils mit 150 Ohm und mit 100 Ohm probiert...

Das Problem ist, daß die Optokoppler gar nicht mehr ausschalten...egal was der LM393 macht.
Deshalb hatte ich vorher ja den Widerstand vor dem Optokoppler, damit wenn der Transistor schaltet kein Strom mehr durch den OK fliesst sondern direkt gegen GND...

...oder meine Überlegungen sind totaler Quatsch... :-)

Aber was ich jetzt festgestellt hatte:
Das Netzteil piepst auch mit den neuen Widerständen...also wird es wohl bei dem Teil normal sein...

Wie gesagt - mit den beiden 10K-Widerständen hatte das funktioniert - es wurde entsprechend geschaltet...
Die Frage wäre jetzt ob das Probleme machen würde wenn ich das wieder zurückbaue...

Das Teil soll ja rund um die Uhr im Keller ohne Aufsicht durchlaufen...


Viele Grüße

Michael
Cubieboard-2 mit 1wire-Bus und I2C-Extensions
Datenbank: mysql auf Ubuntu-Server
verschiedene "Satellitensysteme" mit ESP-8266

dougie



Hi Michael,

das Problem ist via Forumsberatung eher schlecht zu lösen.

Die Idee, dort noch mal extra Optokoppler einzubauen, macht die Sache nur fehleranfälliger und komplexer.
Grundsätzlich sind die Dinger überflüssig, für das was du erreichen möchtest.

Versuch es doch bitte erst mal mit den Tipps. Cassy hat meines Erachtens den Besten gehabt. Damit sollte alles gehen.

VG
Ralf

Punkt

Danke danke danke danke!

Ich war so blind, daß ich vor lauter Bäumen den Wald nicht mehr gesehen hatte und dann wurde das wie ein Selbstläufer immer komplizierter...

Kurze Info: So wie cassy das beschrieben hat klappt es.

Mir war nur einfach nicht klar, wie der LM393 tatsächlich funktioniert.
Ich habe jetzt die jeweiligen Eingänge getauscht und alles funktioniert wie gehabt.

Was mich auf die falsche Fährte gelockt hatte:
Ich hatte den 20K-Widerstand auf Pin7 vergessen und einfach die ganze Zeit übersehen daß das Teil fehlt.

Jetzt läuft alles komplett ohne Optokoppler. Wesentlich simpler aufgebaut - und:
Mein Netzteil ist absolut ruhig!

Also: -> gelöst! :-)


Ich danke euch nochmal allen für die Tipps und die Unterstützung!


Viele Grüße

Michael
Cubieboard-2 mit 1wire-Bus und I2C-Extensions
Datenbank: mysql auf Ubuntu-Server
verschiedene "Satellitensysteme" mit ESP-8266

cassy

Hallo Michael,

schön, dass wir Dir weiterhelfen konnten und Deine Schaltung nun wunschgemäß funktioniert.
 ... frei nach dem KISS-Prinzip <<Keep It Simple & Stupid>> ...
Einfache und überschaubare Lösungen, damit kommen alle weiter.

Bis denn

Chris <cassy>

Punkt

Hallo Chris,

wie gesagt funktioniert die Schaltung jetzt so wie sie soll vom schalten her.

Ich hab das ganze jetzt am Zähler montiert und festgestellt, daß an der Zählerscheibe wohl kleinere Unebenheiten existieren, die das Ablesen unmöglich machen.
Das Problem ist, daß wenn ich die Empfindlichkeit niedriger stelle zwar der silberne Teil der Scheibe ohne auf dem Counter zu zählen durchläuft - dafür aber im roten Bereich zig mal gezählt wird.

Stelle ich die Empfindlichkeit höher wird zwar der rote Strich korrekt durchgängig abgelesen - dafür aber im silbernen Bereich einige hundert mal auf dem Counter hochgezählt...

Leider gibt es kein "genau dazwischen" sondern nur ein sowohl als auch in der Mitte... :-)


Kann da ein Kondensator vor dem Basis-Anschluss des Transistors schon etwas helfen?
Das wäre ja am einfachsten - nur ob das was bringt weis ich nicht...


Was ich auch noch gelesen hatte: mit einem Schmitt-Trigger könnte ich das scheinbar kompensieren wenn es solche geringen Abweichungen gibt.
Sollte ich das noch einbauen?

Benötige ich dazu einen neuen Baustein oder kann ich diese Schaltung nicht einfach auch mit Transistoren und Widerständen erreichen?
Ich hab den ganzen Nachmittag und Abend gesucht - aber nichts passendes für mich gefunden... :-(

Wäre super wenn da jemand nen Tipp für mich hätte...
Ich bin eigentlich fast am Ziel und würde ungern den gesamten Plan verwerfen... :-/


Viele Grüße

Michael

Cubieboard-2 mit 1wire-Bus und I2C-Extensions
Datenbank: mysql auf Ubuntu-Server
verschiedene "Satellitensysteme" mit ESP-8266

cassy

Hallo Michael,

und wieder hast Du es bereits geahnt: der Schmitt-Trigger ist bereits in Deiner Schaltung "versteckt", wir müssen ihn nur noch aktivieren.
Wir müssen dafür sorgen, dass wenn der Ausgang des OPs nach Plus schaltet, dass er diesen Zustand etwas stabiler beibehält. Und beim Schalten nach "Masse" ebenfalls.
---------
Ein einziger Widerstand vom Ausgang des OPs (Pin 1) zum nichtinvertierenden Eingang (Pin 3) erreicht dies. Dieser ist sehr!! hochohmig zu wählen (mit Mega-Ohm anfangen, dann kleiner werden), da diese Mitkopplung die Schaltung "stabilisiert"; wenn der Widerstand zu klein ist, nämlich so sehr stabilisiert, dass ggfls. sie nicht mehr in die andere Lage wechselt. Den Schaltpunkt dann immer wieder neu einstellen.
Desweiteren würde ich den Poti zur Schaltpunktbestimmung, bei Dir als R2 10kOhm, als Spindeltrimmer ausführen. Diese können feiner eingestellt werden (falls unklar, suche bei Google nach "Spindeltrimmer"). Gerne kann auch der Mitkopplungswiderstand (s.oben) als Spindeltrimmer ausgeführt werden. U.U. würde ich einen Kondesator (C wenige nF) noch parallel zu R7 schalten, der sorgt dann auch für etwas mehr Ruhe, aber nicht zu groß wählen, sonst verschluckt der Reflexkoppler die Markierung der Ferrarisscheibe, wenn diese sich schnell dreht.
Also: effektiv ein Widerstand und ein Kondensator dazu, und die Schaltung macht auch "im Feld" das, was man sich "im Labor" ausgedacht hat. Dies sind die beiden Seiten der Elektronik.

Chris <cassy>

dougie


...mit den vorgeschlagenen Massnahmen, könnte es durchaus klappen ein stabiles Signal zu bekommen. Jedoch bin ich mir nicht sicher, ob der CNY70 überhaupt ein für diese Anwendung geeigneter Sensor ist, weil er nur für einen relativ kleinen Messabstand vorgesehen ist, und normalerweise nicht durch eine Scheibe hindurch arbeitet.

Falls es nicht klappen sollte: ein Bekannter von mir hat diese Aufgabe mit einer alten optischen Maus gelöst, die er passend vor der Scheibe montiert hat, und die Stromaufnahme der Maus als Ausgangssignal verwendet.

Wenn alle Stricke reissen: ist es ein Einphasen oder Dreiphasen-Zähler? Ggf. einfach 30 Euro investieren und einen Digitalen Zähler mit S0 Ausgang nach den Hauptsicherungen zusätzlich installieren.

VG
Ralf

Punkt

Hallo Chris,

ich werde das mal durchtesten.
Der Widerstand zwischen Pin1 und Pin3 dort hin auch wenn ich die beiden Eingänge jetzt ja getauscht habe?

D.h. der kommt dann an den Signal-ausgang (Pin1) und den Eingang an dem der Spindeltrimmer (Pin3) hängt?
Oder muss der an den Eingang an dem auch der Reflexkoppler hängt (mittlerweile ja Pin2)? :-)

@dougie: Das könnte denke ich schon klappen - ich bekomme ja Signale von der Scheibe - je nachdem wie ich den Spindeltrimmer einstelle läufts bei dem silbernen Teil super durch - im anderen Fall klappt ja das erkennen des roten Strichs prima... :-)


Ich werde berichten. :-)


Viele Grüße

Michael
Cubieboard-2 mit 1wire-Bus und I2C-Extensions
Datenbank: mysql auf Ubuntu-Server
verschiedene "Satellitensysteme" mit ESP-8266

Punkt

Soooo....

ich bins schon wieder.

Ich hab das jetzt mal versucht sowohl mit den Widerständen als auch mit den Kondensatoren.

Ich hab Widerstände von 1M bis runter zu 270KOhm getestet - zwischen Pin1 und Pin3 - zusätzlich noch zwischen Pin1 und Pin2 (weil ich ja die Eingänge rumgedreht hatte)...

Ergebnis: bisher keine signifikante Änderungen...
Ich gehe mal davon aus, daß der Sensor tatsächlich ganz kurze Unterbrechungen hat die auch von dem Widerstand nicht kompensiert werden.

Die Situation ist folgende:

Bei dem silbernen Teil ist immer alles ok - also wird nix hochgezählt auf dem Counter.
Bei dem roten Strich ist aber immer wieder ne kleine Unterbrechung wohl drin.

Mit dem bloßen Auge ist an der LED (leuchtet wenn der rote Strich da ist) keine Signalunterbrechung zu sehen - aber:
Ich hab das ganze ja an den 1-wire-Counter von Uwe angeschlossen und der zählt dann beim roten Strich 4-6 (je nachdem) Zähler drauf.

D.h. der Transistor schaltet in der kurzen Zeit mehrmals durch und unterbricht - und das im Millisekundenbereich...
Ich hab nen BC547B verbaut - aber das sollte ja kein Problem sein.
Es sei denn der wäre zu empfindlich...

Der Kondensator mit 10nF parallel zu R7 hat eher das Gegenteil gebracht.
Sobald der drin ist blinkt die Kontroll-LED am Transistor wie verrückt.


Das alles wirft bei mir jetzt folgende Frage auf:

Kann ich nicht die Basis des Transistors mit nem zusätzlichen Kondensator für - sagen wir mal - 1 Sekunde geschaltet halten?
Oder zumindest nicht so, daß der mittendrin in Sekundenbruchteilen ab und wieder anschaltet?

Ich hab da an sowas wie ne Ausschaltverzögerung gedacht...hab aber noch nicht herausfinden können wie ich das bewerkstelligen soll...


...irgendwie muss man das Teil doch zum laufen kriegen! :-)
Abtasten lässt sich der Zähler ja mit dem CNY70... :-D er ist scheinbar nur zu empfindlich... *lach*


Viele Grüße

Michael
Cubieboard-2 mit 1wire-Bus und I2C-Extensions
Datenbank: mysql auf Ubuntu-Server
verschiedene "Satellitensysteme" mit ESP-8266

Punkt

Hallo zusammen,

ich habe jetzt weiter herumexperimentiert.

Ich bin mir zwischenzeitlich nicht mehr sicher, ob der CNY70 wirklich für dieses Szenario verwendbar ist (wie von dougie bereits vorhergesagt).
Ich hab jetzt mal die Spannung gemessen die ich am Fototransistor-Teil des CNY70 hab wenn er so vor der Scheibe sitzt wie ich die ganze Zeit versuche alles einzustellen.

Es gibt quasi fast keine Schwankungen in der Spannung - egal ob der rote Strich vorbeikommt oder nicht.
Die Spannung schwankt gerade mal zwischen 5,188V und 5,194V - und das mehr unregelmäßig als sonst was.

Ich überlege der Einfachheit halber einfach entsprechende Stromzähler mit S0-Ausgang direkt hinter die Stromzähler der Stadtwerke zu setzen.
Die kosten pro Stück 35 Euro und können gleich in den Zählerkasten eingebaut werden...

Also aktuell halte ich es für sehr unwahrscheinlich daß ich mit diesen Reflexkopplern mein Ziel erreichen könnte.
Ich lasse mich aber auch sehr gerne vom Gegenteil überzeugen wenn jemand damit so etwas hinbekommen hat... :-)


dougie und Chris sage ich bis hierher mal vielen vielen Dank - und ich habe wieder sehr vieles dazugelernt! :-)


Viele Grüße

Michael
Cubieboard-2 mit 1wire-Bus und I2C-Extensions
Datenbank: mysql auf Ubuntu-Server
verschiedene "Satellitensysteme" mit ESP-8266

dougie



Ärger dich nicht, Michael! :-) Der CNY70 hat mich (und andere) auch schon Nerven gekostet.

Ich arbeite aktuell gerade wieder an einer Positioniereinrichtung, wo ein Schlitten über ein Tragseil gezogen wird. Das Zugseil wird an der Winde durch ein kleines Rohr gezogen, in dem ein kleines Fenster ausgefräst ist. In dem Fenster steckt ein CNY70 und schaut sich das Seil an. Alle 10cm ist dort eine Markierung eingefärbt.

Das erste Seil hatte ich hier mit schwarzem Edding selber hergestellt (Prototyp und Proof of Concept), und das funktionierte prima.

Draussen im Feld musste dann ein neues Seil angefertigt werden, und es wurde ein anderer schwarzer Filzstift verwendet.
Ergebnis: keine Chance! Der CNY70 erkannte die Markierungen nicht mehr, obwohl beide Seile augenscheinlich identisch aussahen.

Anders gesagt: die rote Farbe auf deiner Zählscheibe muss die Wellenlänge der Infrarotdiode im CNY70 "schlucken", sonst kann es nicht funktionieren.

Ich hab letztes Wochenende auch meinen Haupt-Sicherungskasten umgebaut und jetzt zusätzliche Zähler mit S0 zum Messen.

VG
Ralf

UweH

Moin,

ich hatte auch versucht, die Zählerscheibe mit einer Reflexlichtschranke zu detektieren...nach unzähligen Versuchen und mehreren Schaltungsvarianten habe ich es aufgegeben und habe mir einen zusätzlichen digitalen Drehstromzähler mit S0-Ausgang eingebaut.

Die besten Ergebnisse hatte ich mit einer Laser-Reflexlichtschranke, weil der Laserstrahl nicht so sehr gestreut wird. Aber auch das Dingens war auf Dauer nicht beherrschbar. Beim Wasserzähler funktioniert das problemlos seit zwei Jahren, der Stromzähler hat sich widersetzt.

Ich kann nur aus eigener Erfahrung jedem raten: Lass es!


(siehe Anhang / see attachement)


(siehe Anhang / see attachement)


(siehe Anhang / see attachement)