Hallo, ich stehe vor einem Rätsel und hoffe auf etwas Input. Ich habe einen Wärmemengenzähler (Sontex Superstatic 789) mit Impulsausgang (OpenDrain 500ms, max 35V DC). Daran habe ich einen Optokoppler angeschlossen und auf der anderen Seite einen ESP32 mit Tasmota. Einen PullUp habe ich dort nicht (hat der ESP32 wohl intern?!). Zum Test hatte ich einen externen 10 kOhm angehangen, aber das hat auch keine Änderungen gebracht (GPIO 25 auf 3,3V) Ziehe ich das den PIN "SIG" manuell auf Masse, dann kommen die Impulse auf der anderen Seite an. Ich bilde mir ein, dass beim Counter auch ab und an ein Impuls gezählt wird aber da kann ich auch falsch liegen. Der Wärmemengenzähler gibt laut Datenblatt immer einen Impuls aus (kann man nichts einstellen). Ich vermute nun einen Fehler in meinem Aufbau. Zum Verständnis, habe ich mit meinem Laienhaften Fritzing Kenntnissen was gemalt :) Gruß Paul
Paul R. schrieb: > Einen PullUp habe ich dort nicht (hat der ESP32 > wohl intern?!). Ist der auch aktiviert? Wenn unsicher : Mal einen extern ran hängen. Was sagt dein Logic-Analizer oder Oszi am Optokopplerausgang?
Paul R. schrieb: > Einen PullUp habe ich dort nicht (hat der ESP32 wohl intern?) So viel Ahnungslosigkeit und du wundest dich warum es nicht geht ? Mach halt mal 10k dran.
Paul R. schrieb: > Hallo, > > ich stehe vor einem Rätsel und hoffe auf etwas Input. > Ich habe einen Wärmemengenzähler (Sontex Superstatic 789) mit > Impulsausgang (OpenDrain 500ms, max 35V DC). > > Daran habe ich einen Optokoppler angeschlossen Was komplett sinnlos ist, denn beide Seiten haben Masseverbindung. > Ich vermute nun einen Fehler in meinem Aufbau. Zum Verständnis, habe ich > mit meinem Laienhaften Fritzing Kenntnissen was gemalt :) Möglicherweise ist der Open Drain Ausgang auch eher schwach und kann den Optokoppler nicht ansteuern. Braucht auch keine. Ein einfacher 10k Pull-Up Widerstand gegen 3,3V reicht! Dann kann man SIG direkt an den Mikrocontroller anschließen.
Jep, interne Pullups müssen proaktiv eingeschaltet werden, die sind nicht von Haus aus aktiv. Und das schöne am Open-Drain-Ausgang ist, dass man sich den Optokoppler sparen kann. Einfach einen Pullup auf 3.3V an den Ausgang und ab geht's!
Paul R. schrieb: > Ich vermute nun einen Fehler in meinem Aufbau. Da kann man ganz einfach Gewissheit bekommen: weil die Schaltung an sich ja völlig statisch funktionieren muss, dann nimm ein Multimeter und messe die Pegel an den Signalleitungen und am µC-Eingang. Wenn da Pegel irgendwo "zwischedrin" auftreten, dann ist irgendwas faul. Aber weil der Wärmezähler sowieso galvanisch getrennt von einer Batterie versorgt wird und links und rechts vom OK sowieso die selbe Masse ist: wozu dann einen OK? Ich würde das so machen:
1 | Zähler |
2 | ________µC |
3 | .-----|Ve 3V3 |
4 | | | |
5 | 1k | |
6 | | | |
7 | OD -------o-----| In |
8 | | |
9 | GND ------------| GND |
10 | |__________ |
Falk B. schrieb: > Möglicherweise ist der Open Drain Ausgang auch eher schwach Der kann bis zu 25mA.
:
Bearbeitet durch Moderator
Michael B. schrieb: > Mach halt mal 10k dran. Das hat er doch schon gemacht: Paul R. schrieb: > Zum Test hatte ich einen externen 10 kOhm angehangen, > aber das hat auch keine Änderungen gebracht (GPIO 25 auf 3,3V) Michael B. schrieb: > So viel Ahnungslosigkeit und du wundest dich warum es nicht geht ? Ahnungslosigkeit vorwerfen aber nicht richtig lesen finde ich auch nicht so toll..
Danke euch erst einmal. Ich teste es mal mit den direkten PullUp
Lothar M. schrieb: >> Möglicherweise ist der Open Drain Ausgang auch eher schwach > Der kann bis zu 25mA. Vielleicht hat er den Anschluss verpolt.
:
Bearbeitet durch User
Vielleicht hat der Impulsausgang einen PNP Transistor mit Open Kollektorausgang und die LED vom Optokoppler muss gegen GND geschaltet werden. Außerdem kommen an Pin 20 vom ESP32 keine 5 Volt raus. Im Gegenteil, es muss eine Versorgungsspannung von 5V daran angeschlossen werden! Eine Impulslänge von 500 Millisekunden ließe sich mit einer normalen LED im sichtbaren Bereich leicht am Impulsaugang prüfen.
:
Bearbeitet durch User
Falk B. schrieb: > Vielleicht hat er den Anschluss verpolt. Das könnte man mit einem Multimeter messen, da braucht es nicht mal ein Oszi dafür. Wobei man sinnvollerweise tatsächlich ein Oszi nehmen würde, um gleich noch die Signalintegrität (Pegel, Pulsdauer, Flanken) zu kontrollieren. Otto K. schrieb: > Eine Impulslänge von 500 Millisekunden ließe sich mit einer normalen LED > im sichtbaren Bereich leicht am Impulsaugang prüfen. Mit anderen Worten: das "Problem" hier ist im Grunde kein nennenswertes. Tausend Wege führen ans Ziel.
Moin, Ein Oszi habe ich leider nicht. Mit dem Multimeter ist es auch schwer zu messen. Aktuell erhalte ich vielleicht einen Impuls am Tag (wenn überhaupt) aktuell läuft nur warmwasser und keine Heizung. Mit dem 1k PullUP auf 3,3V hat aber nicht funktioniert. Der Impuls (scheinbar heute Nacht irgendwann) kam nicht an am Counter. Im Handbuch den Sontex ist beschrieben, das die Impulsausgänge immer an sind. Einstellen kann man da nichts. Den Optokoppler hatte ich deswegen, da ich den OpenDrain erst mit 24V versorgen wollte und der ESP kann da ja nicht direkt ab. Über einen Spannugsteiler wäre es vielleicht auch gegangen aber den Optokoppler hatte ich da.
:
Bearbeitet durch User
Otto K. schrieb: > Vielleicht hat der Impulsausgang einen PNP Transistor mit Open > Kollektorausgang und die LED vom Optokoppler muss gegen GND geschaltet > werden Der Optokoppler stammt von Paul. Da muss gar nichts gegen Gnd geschaltet werden, wenn man das nicht möchte. Paul R. schrieb: > Den Optokoppler hatte ich deswegen, da ich den OpenDrain erst mit 24V > versorgen wollte ... Die IR-LED eines Optokopplers besitzt eine Vorwärtsspannung von um die 1,2V. Was willst du da mit 24V rumfummeln, wenn du die freie Wahl hast. Warum schaltest du nicht ein Anzeige-LED in Serie zur Optokoppler-LED? Ein Puls von 500ms ist gut wahrnehmbar. Den Vorwiderstand müsstest du entsprechend anpassen. Falk B. schrieb: > Möglicherweise ist der Open Drain Ausgang auch eher schwach und kann den > Optokoppler nicht ansteuern. Die im Datenblatt des Zählers angegebenen 25mA sollten doch für einen PC817, der wesentlich weniger als 1mA schalten soll, mehr als ausreichend sein.
:
Bearbeitet durch User
Paul R. schrieb: > Den Optokoppler hatte ich deswegen, da ich den OpenDrain erst mit 24V > versorgen wollte und der ESP kann da ja nicht direkt ab. Ein OD-Augang muss nicht "versorgt" werden. Sondern der Mosfet schaltet entweder gegen GND durch, oder er sperrt. > Über einen Spannugsteiler wäre es vielleicht auch gegangen aber den > Optokoppler hatte ich da. Du brauchst keinen Spanungsteiler. Dein OK ist genauso wie der Impulsgeberausgang ein OpenKollektor-Ausgang. Der OK braucht also auf der Ansteuerseite einen Vorwiderstand für die LED, und aus der Ausgangsseite exakt die selbe Hardware wie der Impulsausgang: einen Pullup. Ich habe dir die Schaltung aufgezeichnet. Da ist kein Spannungsteiler drin, sondern nur der Pullup (den der OK sowieso auch braucht). Dieser OK ist hier absolut fehl am Platz. Er bringt nur unötige Freiheitsgrade und für Laien unerwartete Dimensionierungs- und Alterungsprobleme ins Spiel. Denn dann muss man auf einmal mit Stromübertragunsfaktoren und Lastwiderständen und LED-Strömen herumrechnen und alle Eventualitäten und Toleranzen berücksichtigen. Und das ohne Notwendigkeit und ohne jeglichen Nutzen, denn der Wärmemengenzähler ist eh' schon ein galvanisch getrenntes , weil batteriebetriebenes Gerät. Wozu sollte dann eine weitere galvanische Trennung durch einen OK noch nötig sein? Paul R. schrieb: > Aktuell erhalte ich vielleicht einen Impuls am Tag (wenn überhaupt) > aktuell läuft nur warmwasser und keine Heizung. Du weißt also derzeit noch nicht mal, ob da überhaupt was rauskommt, oder ob du den Ausgang inzwischen "irgendwie kaputtgebastelt" hat? In diesem Fall würde ich (wenn ich nicht ein Oszi hätte) erstmal sowas mit einem Relais in Selbsthaltung machen:
1 | Zähler Relais TE 5-1462037-9 |
2 | OD --------o------. |
3 | | | |
4 | / .... [/] .---47R---. |
5 | | '---------o----|<---o-- 5V |
6 | | LED rot |
7 | GND -------o----------------------------- GND |
Dann reicht 1 Puls, um das Relais in Selbsthaltung zu bringen. Und wenn dann am nächsten Morgen der Zähler weitergezählt hat, aber die LED noch dunkel ist, dann ist der Ausgang kaputt.
:
Bearbeitet durch Moderator
Lothar M. schrieb: > Und das ohne Notwendigkeit und ohne jeglichen Nutzen, denn der > Wärmemengenzähler ist eh' schon ein galvanisch getrenntes , weil > batteriebetriebenes Gerät. Wozu sollte dann eine weitere galvanische > Trennung durch einen OK noch nötig sein? Technisch nötig ist die Trennung nicht. Wenn man aber ein fremdes Gerät nicht beschädigen will, ist so eine Trennung immer eine gute Idee. Das fremde Gerät prüfen und ggf. reparieren, das kann oder will man nicht müssen, insbesondere, wenn man – wie offensichtlich der OP – wenig Ahnung hat. Auch wenn man eine gemeinsame Masse hat, schützt ein Optokoppler vor diversen Ereignissen. > Du weißt also derzeit noch nicht mal, (...) ob du den Ausgang inzwischen > "irgendwie kaputtgebastelt" hat? Siehst du, nun sagst du es selbst: Kaputtbasteln ist immer möglich.
Rolf schrieb: > Wenn man aber ein fremdes Gerät nicht beschädigen will, ist so eine > Trennung immer eine gute Idee. Aber nur dann, wenn man auch eine wirklich potentialgetrennte Versorgung für diesen OD-Ausgang hat. Wenn das nicht der Fall ist, dann führt so ein OK nur zu zusätzlicher Verwirrung. > Siehst du, nun sagst du es selbst: Kaputtbasteln ist immer möglich. Wenn es so ist, dann wurde das Messgerät mit einem OK kaputtgebastelt... ;-)
Rolf schrieb: > Auch wenn man eine gemeinsame Masse hat, schützt ein Optokoppler vor > diversen Ereignissen. Das tun zwei Widerstände auch - der eine als Pull-Up und der andere in Serie zum Eingang. Bei einem Optokoppler kann fast genauso viel schief laufen. Oder was für "Ereignisse" meinst du?
Rainer W. schrieb: > Rolf schrieb: >> Auch wenn man eine gemeinsame Masse hat, schützt ein Optokoppler vor >> diversen Ereignissen. > > Das tun zwei Widerstände auch - der eine als Pull-Up und der andere in > Serie zum Eingang. Ja, und? Es wurde von zwei Leuten gesagt, dass ein Optokoppler völlig überflüssig sei, weil es eine gemeinsame Masse gibt – dem habe ich widersprochen, weil die Begründung(!) in dieser Allgemeinheit falsch ist. (Was die Lösung mit den beiden Widerstände angeht, die funktioniert im allgemeinen Fall nicht. Aber das war ja nicht der Punkt.) > Bei einem Optokoppler kann fast genauso viel schief laufen. Mit Betonung auf "fast"? Und was genau bedeutet "schief laufen"? Es ging ja nicht um die Funktion, sondern um den Schutz von fremden Gerätschaften. > Oder was für "Ereignisse" meinst du? Überspannung aus Richtung der Signalsenke oder Kurzschluss der Signalquelle. Ja, man kann sich gegen beides auch auf andere Weise schützen. Und im speziellen Fall des OP ist ein Kurzschluss auch harmlos, im allgemeinen Fall nicht.
Rolf schrieb: > Ja, und? Es wurde von zwei Leuten gesagt, dass ein Optokoppler völlig > überflüssig sei, weil es eine gemeinsame Masse gibt – dem habe ich > widersprochen, weil die Begründung(!) in dieser Allgemeinheit falsch ist. Doch, die Begründung ist allgemein richtig: weil es einen gemeinsamen Massebezug gibt, ist ein OK nicht nötig. Er könnte bestenfalls aus völlig anderen Gründen nötig sein wie z.B. > Überspannung aus Richtung der Signalsenke Die kann man auch haben, wenn die Versorgung der OK-LED durchgeht oder falsch angeklemmt wird. > oder Kurzschluss der Signalquelle und Blitzschlag und sonstnochwas. Und wenn das dann passiert, dann kommt die Überspannung auch noch über die Masse ins System. Richtig wirksam ist der OK also wie gesagt nur bei völliger galvanischer Trennung. > Und was genau bedeutet "schief laufen"? Messpitze rutscht ab, Draht wird falsch eingeklemmt, Spannung wird falsch eingestellt, usw. usf. Aber speziell hier in Thread gilt: es ist ein batteriebetriebenes Gerät, das mit einer 3V-Lithium-Primärzelle versorgt wird. Wofür also ein OK? > (Was die Lösung mit den beiden Widerstände angeht, die funktioniert im > allgemeinen Fall nicht. Aber das war ja nicht der Punkt.) Man muss sie so auslegen, dass sie funktioniert. Genauso muss man die Schaltung mit dem OK so auslegen, dass sie funktioniert. Es gibt nach meiner Erfahrung 2 Arten von Menschen, die Optokoppler verwenden: 1. die, die nicht recht wissen, was sie tun 2. die, die Gründe für einen OK-Einsatz genau an dieser Stelle haben Aber seis drum: dieses haarspalterische Kasperlestheater hilft dem TO nicht weiter. Im Prinzip müsste jede der Lösungen funktionieren. Jetzt gilt es herauszufinden, warum das nicht der Fall ist. Der Verdacht mit dem fehlerhaften Anschluss des OK steht da durchaus berechtigt im Raum.
Rolf schrieb: > Was die Lösung mit den beiden Widerstände angeht, die funktioniert im > allgemeinen Fall nicht. Bin gespannt - hier geht es nicht um den allgemeinen Fall, sondern um das Problem des TO. > Es ging ja nicht um die Funktion, sondern um den Schutz von fremden > Gerätschaften. Ein Widerstand von einigen Kiloohm schützt nicht gegen alles, aber gegen alles, was von einem ESP32 i.A. so kommen kann, wenn es um einen Open Collector Ausgang geht, der 25mA/35V verträgt. > Überspannung aus Richtung der Signalsenke oder Kurzschluss der > Signalquelle 3.3V ist bei einem Ausgang, der 35V verträgt, keine Überspannung und zur Strombegrenzung dient einer der Widerstände, der bei Verwendung eines Optokopplers genauso vorhanden ist. Und was soll passieren, wenn man einen Open Collector Ausgang kurzschließt?
:
Bearbeitet durch User
Unabhängig davon ob ein OK erforderlich ist oder nicht sehe ich jetzt auch keinen zwingenden Grund alles zu ändern. Ich finde es wichtiger zu lernen wie man Fehler sucht als ob man eine Schaltung noch weiter hätte optimieren können. Wenn ein original PC 817 verbaut ist dann wären selbst bei einem CTR von nur 50% absolut ausreichende Reserven und der Wärmemengenzähler kann mit seinem Open Drain MOS-Ausgang (25 mA) auch den LED-Strom treiben. Für eine systematische Fehlersuche würde ich jetzt alles original (mit 10k Pull-Up am ESP-Eingang) lassen und statt des Wärmemengenzählers einen Taster anschließen. Damit dann mit dem Multimeter gegen Masse in beiden möglichen Zustände alle wichtigen Signalpegel nachmessen. Wenn da alles stimmt kan man damit die SW testen. Wobei man wissen muss dass ein Taster prellen kann und damit bei einem Tastendruck auch mehrere Impulse erzeugt werden können. Für einen grundlegenden Test reicht das aber. Und erst wenn da alles passt hängt man wieder den Wärmemengenzähler dran.
Frank S. schrieb: > ... und statt des Wärmemengenzählers einen Taster anschließen. Ach - hast du den Eröffnungs-Post gelesen? Ein Taster würde genau das bewirken. Paul R. schrieb: > Ziehe ich das den PIN "SIG" manuell auf Masse, dann kommen die Impulse > auf der anderen Seite an. p.s. Auf deiner Tastatur zeigt die Taste für das Komma (',') schwerste Aussetzer.
:
Bearbeitet durch User
Paul R. schrieb: > Ziehe ich das den PIN "SIG" manuell auf Masse, dann kommen die Impulse > auf der anderen Seite an. Also jetzt wie eben beschrieben systematisch weitermachen: man nimmt die Signalkette ohne das fragliche Gerät in Betrieb und sorgt dafür, dass diese Signalverarbeitung funktioniert. Wenn man es richtig macht, dann schließt man als Quelle auch mal einen Signalgenerator an, lässt das Ganze übers Wochenende durchlaufen und kontrolliert dann, ob die Impulsanzahl über lange Zeit ebenfalls passt. Frank S. schrieb: > Wobei man wissen muss dass ein Taster prellen kann und damit bei einem > Tastendruck auch mehrere Impulse erzeugt werden können. Die Entprellung des Sensoreingangs zur Signalkonditionierung würde ich sowieso machen. Denn das Signal vom Sensor wird immer im Bereich um 500ms sein, wenn es denn kommt. Man kann also alles, was was im Bereich bis 100ms "herumzappelt" per Software getrost als "Störung" herausfiltern. Gute SW implementiert dann sogar noch einen Zähler, der beinhaltet, wie oft dieser Filter unerwarteterweise zugeschlagen hat. Und wenn dieser Fehlerzähler dann kontinuierlich hochläuft, dann sollte man sich mal die Verkabelung anschauen. Und unabhängig davon muss man dann kontrollieren, ob der Geber sich überhaupt (noch) wie ein Taster nach GND verhält. Oder ob der Ausgang ganz oder teilweise kaputt ist. Paul R. schrieb: > Einen PullUp habe ich dort nicht (hat der ESP32 wohl intern?!). Die internen Pullups von µC sind recht hochohmig. Für eine störsichere Schaltung sollten extern niederohmigere Widerstände angeschlossen werden. Und wenn du aber nicht weißt, ob du in deiner eigenen SW den Pullup aktiviert hast, dann ist ein externer Pullup eh' die bessere Wahl. > Ich bilde mir ein, dass beim Counter auch ab > und an ein Impuls gezählt wird aber da kann ich auch falsch liegen. Dann muss genau das gesichert werden: kommen aus dem Zähler Impulse heraus. Ich würde da jetzt einfach meinen Frequenz-/Impulszähler anschließen und das ein paar Tage laufen lassen. Alternaitv hilft wie gesagt ein Oszilloskop, das auf Singleshot einen Impuls aufzeichnet, oder wenn es da kann, auf mehrere Impulse triggert und die dann abspeichert. Inzwischen sind in diesem Thread aber alle nötigen Tipps aufgeführt, die man zur erfolgreichen Inbetriebnahme (ob mit Angst-Optokoppler oder per Direktanschluss) braucht.
:
Bearbeitet durch Moderator
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.