Lichtschranke an Pi anschließen und einrichten

  • Hallo zusammen, ich würde gerne diese Lichtschranke (Affiliate-Link) an meinen Pi 4 anschließen und vollständig einrichten. Hab leider absolut kein Ahnung an welche Pins ich die Lichtschranke anstecken muss und wie ich die Lichtschranke dann programmiere. Soll nur ein einfacher Zähler werden. Vielleicht kann mir ja jemand etwas Hilfestellung geben.


    Grüße

  • Ich nehme nicht an, dass du durch #2 nennenswert erhellt wurdest... Also versuch ich es mal.


    Hier findet man technische Angaben, die für den Anschluss dieser Lichtschranke wichtig sind, nämlich:


    - braunes Kabel = +5 V (Anschluss an Pin 2 oder 4 des Pi)

    - blaues Kabel = GND (Anschluss an Pin 6 oder einen anderen Ground-Pin des Pi)

    - Strombedarf 100 mA - das ist für den Pi unter normalen Bedingungen kein Problem.

    - schwarzes Kabel = digital out (open Collector). Anschluss an einen beliebigen GPIO des Pi, bevorzugt einen ohne alternative Funktionen, z. B. Gpio 17 (Pin 11).


    Open Collector bedeutet, dass der Digital-Out-Anschluss des Sensors einen Schalter nach GND darstellt. In der Anleitung heißt es: "es ist ein 10k Pull-Up am Ausgang anzuschließen" - diesen Pullup-Widerstand kannst du beim Pi mittels Programmierung einschalten, musst ihn also nicht "anschließen".

    Alles, was du tun musst, ist, den GPIO 17 als Eingang mit Pullup programmieren. Der durch das Programm aktivierte Pullup-Widerstand im Pi legt, 3,3 V auf den Eingang, so dass eine logische 1 (high) anliegt. Das kannst du in deinem Programm mit digital read auslesen.

    Erkennt der Sensor ein Hindernis, schaltet der Open-Collector-Ausgang des Sensors den GPIO des Pi auf GND. Der Strom fließt über den Schalter des Sensors ab und die Spannung am GPIO fällt auf 0 V (logisch 0 oder low). Auch das kannst du mit digital read auslesen. So kannst du erkennen, ob ein Hindernis da ist oder nicht.


    Zum Programmieren und Auslesen der GPIOs such mal nach "Pi GPIO Input digital read" und ähnlichen Begriffen, da wirst du tausende Anleitungen finden.

    Für einen einfachen Zähler brauchst du im einfachen Fall eine Schleife, die bei jedem Wechsel des Signals von low auf high eins hochzählt. Auch dafür findest du im Web Beispiele und zahlreiche teils ganz unterschiedliche Herangehensweisen. Google dich halt mal durch. Ein Grundkurs in Programmierung würde hier den Rahmen sprengen.


    Viel Erfolg.

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

  • Ich nehme nicht an, dass du durch #2 nennenswert erhellt wurdest...

    Wenn der TO lesen kann, wovon ich ausgehe, dann schon! :shy:


    Btw. Es reicht! Dieser zitierte Kommentar und die vielen gleichwertigen Sprüche in der letzten Zeit zogen mehrere Beschwerden über Dich nach sich und damit meine ich nicht nur eine oder zwei oder fünf! Wenn Du diesbezüglich den Ball nicht flach halten kannst, dann bleibt mir nicht viel übrig, als Dich für mindestens zwei Wochen in den Urlaub zu schicken. Und glaube mir, das ist nur in Deinem Interesse und das nun endgültig letzte mal, jedenfalls von meiner Seite her!



    green2go Sorry für den OT!


  • Einem RPi Einsteiger, welcher kaum Erfahrung hat, würde ich nicht empfehlen einen Sensorausgang direkt an einen GPIO Port zu schalten. Sicherer wäre es, einen Widerstand z.B. 1kOhm in Reihe noch vor den GPIO Eingang zu schalten. Denn wenn man versehentlich den Eingang als Ausgang programmiert, diesen auf H schaltet und das Sensorsignal von einem OC Anschluß kommt, besteht die Gefahr dass mehr Strom fließt, als für den RPi gut ist. Ehe man dann merkt wo das Problem liegt, ist der RPi evtl. schon defekt.

  • Erstmal danke für die Hilfreichen Tipps. Die Drähte sind nur etwas verdreht angeordnet das liegt wahrscheinlich daran das die Lichtschranke für den Arduino gedacht ist und der wahrscheinlich eine andere Pin Anordnung hat, oder? Dann muss ich halt die Drähte nochmal neu in einzelne Buchsen stecken und dann aufstecken.

  • Komisch, dass es niemanden stört, dass der Sensor 5V ausgibt. Den Sensor ohne Widerstand zu betreiben, killt mit Sicherheit den GPIO. Welchen GPIO du nimmst, ist erst mal egal. Nur die bereits verwendeten kannst du nicht nutzen.


    Ist das der Sensor?

    Falls ja, dann schau mal im Datenblatt die letzte Seite:


    Anstatt nur einen Widerstand zu verwenden, würde ich zwei nehmen.

    Sieht dann so aus:


    Widerstände: Links mit 3.9K und 4.7k und rechts mit 2 x 4.7K.


    Am besten mit dem Multimeter die Spannung direkt an der Signalleitung messen. Wenn sie schon 3.3V beträgt, kannst du dich an die Anleitung des Herstellers halten.


    Wenn der Ausgang aber wie erwartet 5V ausgibt, dann die Widerstände anschließen. Ein Widerstand ist an Masse angeschlossen und zwischen den beiden Widerständen den GPIO und am ersten Widerstand den Sensor-Ausgang. Dann noch mal im geschalteten Zustand messen.


    Der logische high-Pegel liegt bei 1.8V. Die vollen 3.3V müssen nicht unbedingt anliegen.

    Die Spannung darf aber niemals höher als 3.3V sein.


    Weitere Möglichkeiten zur Anbindung an den RPi: Optokoppler, Pegelwandler

    Darüber findest du auch jede Menge richtige und falsche Informationen im Forum.

  • Komisch, dass es niemanden stört, dass der Sensor 5V ausgibt. Den Sensor ohne Widerstand zu betreiben, killt mit Sicherheit den GPIO. Welchen GPIO du nimmst, ist erst mal egal. Nur die bereits verwendeten kannst du nicht nutzen...

    Wenn das so mit dem OpenCollector Signalausgang des Sensors stimmt, kommt die Spannung für das Schaltsignal der Lichtschranke vom 3,3V GPIO Port des RPi. ( Welcher mit dem internen 50k an 3,3V hängt, bzw. mit einem externen 10k Widerstand an die externen 3,3V am GPIO anzuschließen ist.) Der OC Ausgang der Lichtschranke zieht dann das 3,3V Signal des RPi GPIO's bei Auslösung der Lichtschranke, nach GND. Wenn man sich mit der OC Schaltung nicht sicher ist, sollte man dass vorher ohne RPi testen.



    @DeaD_EyE


    Bei einem OC Ausgang würden deine beiden Schaltbeispiele nicht funktionieren, da ein OC Ausgang quasi ein mit GND verbundener Taster ist, dessen Ausgang, eigentlich eher ein unbeschalteter Eingang ist, welcher nach GND schaltet. z.B. wie bei vielen Lüfter Tachosignalen


    Vielleicht mal hier reinschauen:

    https://www.elektronik-kompendium.de/sites/slt/1206121.htm