Induktiven Näherungsschalter mit 6-36V abfragen

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Hi,

    ich möchte die Impulse eines induktiven Näherungsschalters mit einem Pi Zero WH zählen. Leider ist der Sensor für 6-36V ausgelegt, und der Pi darf ja maximal mit 3,3V beaufschlagt werden.


    Für mein Projekt brauche ich so oder so ein externes 12V Netzteil, von daher hab ich schonmal eine Spannungsquelle. Wie bekomme ich jetzt die Spannung der Impulse am besten auf 3,3V?

    Es gibt ja verschiedene Rechner für Spannungsteiler oder Schaltungen mit Zenerdioden, allerdings fehlt mir zur Berechnung der nötigen Widerstände stets die Stromstärke, die "in" den GPIO fließt, um ihn z. B. auf High zu ziehen. Möglicherweise bin ich da auch von Haus aus auf dem Holzweg, mir fehlt da leider ein wenig das Wissen dazu.


    Könnt ihr mir dabei helfen, oder habt ihr andere, gute Ideen? Vielen Dank schonmal!


    Lg

  • Moinsen,

    Das einfachste wäre ein Optokoppler.
    Anhand der Ausgangsspannung des Sensors kann man den Vorwiderstand berechnen.

    Differenzspannung = Eingangspannung - UForrward Spannung des Optokoppler-Eingangs.

    Aus dieser Differenzspannung errechnet man den benötigten Vorwiederstand:
    Widerstand = Differenzspannung / IForward ( Vorwärtsstrom der Eingangs LED )

    Da die meisten Optokoppler um 1,2-1,3 Volt Betriebsspannung der LED haben und der maximale Vorwärtsstrom bei 20 mA liegt, kann man die Formel relativ leicht zusammenfassen:

    Vorwiderstand = (Betriebsspannung des Sensors - 1,25 V) / 0,02 A

    Damit musst du nur eine Emitterauskopplung am Ausgang des Optokopplers machen.

    Immer wenn der Fototransistor leitend wird, erfolgt auch ein High Impuls am GPIO Eingang. Durch die Verbindung des Emitters über R8 mit Masse bleibt der Pegel am GPIO auf LOW gezogen, solange am Optokoppler kein Eingangssignal anliegt.

    Franky

  • Optokoppler hatte ich mir auch schon angesehen, war aber mit der Beschaltung unsicher. Das Schaltbild sieht in der Tat äußerst einfach und leicht nachvollziehbar aus. So werde ich es machen. Vielen Dank für die kurze, aber sehr prägnante Erklärung!

    Ah da bleibt noch eine Frage, Schaltfrequenzen von max. 10 Hz sollten kein Problem sein, oder? Falls nicht, bestelle ich mir die Optokoppler und los gehts :)

    Edit: Kannst du mir den Begriff Emitterauskopplung noch erklären?

  • Moinsen,

    Optokoppler gibt es wie Sand am Meer ;)
    Typenbezeichnungen von PCxxxx, LTVxxx bis schlag mich Tod.
    Dazu kann man auch vor der Bestellung im Datenblatt nicht nur nach den benötigten Betriebsparametern UForwad und IForward schauen, sondern auch nach der Toggle-Frequenz.
    Aber 10 Hz, darüber machst du dir jetzt nicht wirklich Gedanken ? :saint:
    Bei 50 kHz + oder gar den MHz-Bereich erreichend wäre das eine begründete Nachfrage.

    Franky

  • Jetzt hätte ich noch eine Frage. Oben genannter Teil meines Projekts liest mir die Impulse des Wasserzählers ab, ich möchte am Pi auch den Stromzähler anschließen. Dieser hat eine S0-Schnittstelle mit S0+ und S0- Anschlüssen. Es handelt sich um einen Eltako DSZ15D-3x80A.

    Im Handbuch steht dazu folgendes:

    Schnittstelle lmpulsausgang S0 nach DIN EN 62053-31,
    potenzialfrei durch einen Optokoppler,
    max. 30V DC/2OmA u. min.5V DC.
    Impedanz 100 Ohm,
    Impulslänge 30ms, 1000Imp./kWh

    Ich bin mir grad sehr unsicher, wie ich den Zähler überhaupt anschließen soll. Wegen den min. 5V brauch ich ja bestimmt auch eine Schaltung, die mir das wieder zurück auf die 3,3V für den GPIO wandelt, oder? Würde mir da ein zweiter Optokoppler helfen?


    Lg & Danke!

  • Um zumindest. etwas selbst beizutragen, hab ich das Schaltbild aus dem S0-Artikel von Wikipedia versucht, mit der Optokoppler-Beschaltung von oben zu kombinieren.

    Rausgekommen ist das. Könnt ihr das vielleicht auf Richtigkeit überprüfen oder mir noch nen Tipp geben?

  • Alles klar, vielen Dank. :) Scheint ja doch einfacher zu sein als ich dachte.

    Jetzt hab ich noch eine Frage zu deinem Optokoppler-Schaltbild. Der Widerstand R8 ist der Pulldown für den GPIO, so weit war ich schon. Aber wozu dient der R9?:/

  • Moinsen,

    Einfach als kleine Strombremse, und als kleiner minimaler Überspannungsschutz. Denn über den Spannungsteiler aus R9 + R8 gelangt nur eine Spannung ( theoretisch ) von 3,13 Volt zum GPIO. Damit wird dieses Signal = Pegel aber immer noch als High-Impuls erkannt, denn ab einer Spannung von ca. 2,1 Volt interpretiert das PI ein solchen Pegel als HIGH.
    Das LOW entsprechend hat einen zulässigen Spannungsbereich zwischen 0,0 V und 0,8 Volt. Der Bereich zwischen 0,8 V und knapp über 2,0 Volt darf nicht genutzt werden.

    Franky

  • Hi, kurze Info.

    Ich hab mir jetzt alles wie von dir beschrieben auf die Platine gelötet. Die Abfrage des Induktionsschalters und die S0-Beschaltung, wie sie im externen Link beschrieben ist. Zudem noch eine Erkennung des Strom-Hoch- und Niedertarifs, wobei es sich um ein vom Elektriker installiertes, mechanisches Relais handelt, was ja mit nem GPIO mit Pulldown sehr einfach abzufragen ist. Dann hab ich noch eine Erkennung über ein zweites Netzteil und nen Optokoppler gebastelt, ob Netzstrom anliegt oder Stromausfall ist - der Raspberry soll gemeinsam mit nem NAS (welches ich mir nächstes Jahr anschaffen möchte) an eine USV und das NAS via SSH runterfahren, wenn Stromausfall ist.

    Ich hab das alles zunächst mit einfachem Programmcode getestet und es scheint soweit einwandfrei zu funktionieren. Daher sage ich hier vielen Dank für die vielen Infos und die einfache Erklärung!

  • Einfach als kleine Strombremse, und als kleiner minimaler Überspannungsschutz. Denn über den Spannungsteiler aus R9 + R8 gelangt nur eine Spannung ( theoretisch ) von 3,13 Volt zum GPIO.

    Strombremse... ja. Bei 120 Ohm ungefähr 27,5 mA, was üblicherweise zu einem entsetzten Aufschrei im Forum führt. Ich würde hier als Schutzwiderstand 1 KOhm nehmen, um den Strom im Fall des Falles auf 3,3 mA zu begrenzen.
    Einen Spannungsteiler, der die Eingangsspannung am GPIO begrenzt, kann ich da allerdings nicht erkennen... dazu müsste der Widerstand direkt hinter dem Optokoppler-Ausgang liegen. Einen konkreten Nutzen würde ich da aber ohnehin nicht sehen.

    Wenn man tatsächlich die Beschaltung mit Spannungsteiler wählt und als Schutzwiderstand (R9) = 1 KOhm verwendet, dann sollte der Pulldown (R8) nicht unter 10 KOhm sein, weil sonst die Spannung unter 3 Volt sinkt - ein bisschen Luft nach unten will man ja noch haben.

    Oh, man kann hier unliebsame Nutzer blockieren. Wie praktisch!

  • Wenn man tatsächlich die Beschaltung mit Spannungsteiler wählt und als Schutzwiderstand (R9) = 1 KOhm verwendet, dann sollte der Pulldown (R8) nicht unter 10 KOhm sein, weil sonst die Spannung unter 3 Volt sinkt - ein bisschen Luft nach unten will man ja noch haben.

    Und ?
    Was ist das für eine unrelevante Aussage ?
    Falls du schon einmal was von Pegelspannungen gehörst die bei einer rein digitalen Auswertung zur Anwendung kommen - verweise ich auf Beitrag #10  hier steht geschrieben und das ist auch in Fachbüchern, sowie der offiziellen Dokumentation zum RasPI so nachzulesen.
    * Low Pegel = 0,0 Volt ( -0,3 V ) bis 0,8 V
    * High Pegel = 2,0 Volt bis 3,3 V ( +0,4 V )

    Das heißt nicht anders - an einem GPIO darf und kann eine Spannung zwischen tatsächlich -0,3 und 3,7 Volt angelegt werden, ohne das dem RasPI ein nachhaltiger Schaden entsteht.

    Also warum darf dann eine Spannung nicht unter 3,0 Volt fallen ?? Klar darf sie das !
    Nur in Bereich 0,8 V bis 2,0 V ist der der sogenannte "gesperrte Bereich" welcher für eine digitale Auswertung nicht verwendet werden darf.


    Hier wieder einmal und schon zum X-ten Mal die Logikpegel

    Franky

  • Was du zum Thema Spannungsteiler geschrieben hast ist FALSCH! Es gibt in deinem Schema keinen Spannungsteiler, der die Eingangssspannung begrenzt.
    Und deine Strombegrenzung auf 27,5 mA schützt den Pi faktisch NICHT!
    Deine Ausführungen zu diesem Thema waren also mindestens verwirrend, bestenfalls unnütz, schlimmstenfalls schädlich. Aber dazu kein Wort von dir. Du ignorierst jeden Hinweis auf deine Fehler, selbst dann, wenn sie ohne Vorwurf vorgetragen werden. Du bist in keiner Weise kritikfähig und überschätzt deine Kenntnisse und Fähigkeiten maßlos.

    Aber reflexartig musst du um dich beißen wie ein getretener Hund! "... unrelevante Aussage" (Es heißt übrigens "irrelevant"!) " ... schon einmal was von Pegelspannungen gehört ..." Mann, wie mir deine arrogante Art zuwider ist, kann ich gar nicht ausdrücken.

    Du kannst aber gerne mal hier nachlesen, dass es bei Pegelspannungen Grenzen nicht nur für Eingänge, sondern auch für Ausgänge gibt. (Im Übrigen auch auf deinem Bild erkennbar.) Demnach muss ein LVTTL-Ausgang bei high mindestens 2,4 Volt haben. Der Eingang hingegen garantiert die korrekte Erkennung ab 2 Volt. Wenn ich sage "nicht unter 3 Volt", dann bezieht sich das auf die Nominalspannung von 3,3 Volt. 3 Volt sind 10/11 von 3,3 Volt - entsprechend dem Teilerverhältnis 1 und 10 kOhm.
    Wenn man das gleiche Teilerverhältnis auf die 2,4 Volt anwendet, die ein LVTTL-Ausgang im ungünstigsten Fall noch spezifikationskonform bietet, dann landet man bei 2,18 Volt. Da hat man gerade mal noch knapp 10 % Luft über den geforderten 2 Volt. Wenn man also nominal über 3 Volt bleibt, ist man dahingehend auf der sicheren Seite.
    Wir haben es zwar bei den 3,3 V hier nicht mit einem Ausgang, sondern mit 3,3 Volt direkt vom Spannungsregler zu tun, aber erstens hängen die zusammen und zweitens ist es der Einfachheit halber wenig sinnvoll, unterschiedliche Regeln auf die gleiche Spannung anzuwenden.

    Ich frag mich nur, wie du das eigentlich aushältst, mit deinen Beiträgen hier großräumig bestenfalls Gelächter, wahrscheinlich aber eher Mitleid auszulösen...

    Den Thread werde ich blocken - hab's nicht nötig, mich von jemandem ankacken zu lassen, der seine vermeintliche Unfehlbarkeit wie eine Monstranz vor sich her trägt und über jeden Anstand erhebt!

    Oh, man kann hier unliebsame Nutzer blockieren. Wie praktisch!

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!