Forum: Mikrocontroller und Digitale Elektronik Klingelsignal des Wohntelefons -> GPIO des Raspi 3B+


von Martin L. (martin_l831)


Angehängte Dateien:

Lesenswert?

Moin liebe Community,

ich bin noch relativ neu in der Mikrokontroller-Szene und hab jetzt mein 
quasi-erstes kleines Projekt überlegt.

Ich möchte vom Raspberrypi benachrichtigt werden, wenn es an der Tür 
klingelt.
Softwareseitig ist das kein Ding, nur mit der Schaltung hab ich probleme 
und bevor ich meinen Pi röste, dachte ich ich frag lieber nochmal nach 
ob das so passt:

Die Klingel (genauer das "Wohntelefon") liefert einen 5V DC-Puls wenn 
jemand klingelt. um diese Spannung vom Pi zu trennen habe ich vor, einen 
CNY17-3 Optokoppler zu nutzen. Laut (hoffentlich richtiger) Rechnung 
bräuchte ich da einen 62 Ohm Vorwiderstand. Ich hab aber nur nen 75 Ohm 
Widerstand, denke der sollte auch gehen, oder?

auf der anderen Seite des Optokopplers habe ich den 3,3V Ausgang des 
Raspis gegen GND mit einem Pulldown-Widerstand und einem der GPIOs 
verbunden der dann "high" oder "low" auslesen soll.

wie gesagt all das hab ich mir aus 1000 Seiten Internet zusammengesucht 
und habe keine ahnung ob das so funktioniert. ich hätte von euch gern 
einfach nochmal die Bestätigung "jo, so kannste das anschließen" oder 
"um gottes willen mach das ja nicht, da zerschießt du dir alles"

Das wär mega lieb von euch!

Liebe Grüße
Martin

von Wolfgang (Gast)


Lesenswert?

Martin L. schrieb:
> auf der anderen Seite des Optokopplers habe ich den 3,3V Ausgang des
> Raspis gegen GND mit einem Pulldown-Widerstand und einem der GPIOs
> verbunden der dann "high" oder "low" auslesen soll.

Ungewöhnlich ...
Warum verwendet du keinen Pull-Up und ziehst den Pin mit dem OC nach 
Gnd?

p.s.
In Eagle solltest du im Schaltplaneditor beim Platzieren von 
Bauelementen und Wires i.A. nie den 100 mil oder 50 mil Raster 
verlassen, sonst entstehen keine logischen Verbindungen in der 
Netzliste. Chaos im Layout ist dann vorprogrammiert.

von Wolfgang (Gast)


Lesenswert?

Martin L. schrieb:
> Laut (hoffentlich richtiger) Rechnung bräuchte ich da einen 62 Ohm
> Vorwiderstand.

Ich komme auf 680 Ohm.

von Martin L. (martin_l831)


Angehängte Dateien:

Lesenswert?

ich hatte mich über das auslesen von GPIOs belesen und hatte gelesen 
dass grundsätzlich wohl beides geht, der einzige unterschied wäre wohl 
dass Pullup-widerstände im Normalzustand ein "high" an GPIO gibt und 
pulldownwiderstände im Normalzustand ein "low"
ich wollte die Logik einfach nicht invertieren. es erscheint mir 
logischer "low" für "es passiert gerade nichts" und "high" für "es 
klingelt!" zu nutzen.

wenn das aber gegen die Konventionen ist, bau ich das auch gern um, dann 
bräuchte ich aber nochmal eure hilfe

Edit: hier nochmal der am Raster ausgerichtete Schaltplan

: Bearbeitet durch User
von Martin L. (martin_l831)


Lesenswert?

Wolfgang schrieb:
> Ich komme auf 680 Ohm.

Habe diesen Rechner hier genutzt:
https://www.leds-and-more.de/catalog/resistor.php

Die Werte habe ich aus dem Datenblatt: 
http://www.farnell.com/datasheets/2149962.pdf

Spannungsquelle: 5 Volt
LED-Durchlassspannung: 1.39 Volt (Forward voltage Typ.)
LED-Strom: 60 mA (Forward current)

errechneter Widerstand: 60.17 Ω
empfohlener Widerstand: 62.00 Ω

von HildeK (Gast)


Lesenswert?

Martin L. schrieb:
> ich wollte die Logik einfach nicht invertieren. es erscheint mir
> logischer "low" für "es passiert gerade nichts" und "high" für "es
> klingelt!" zu nutzen.
>
> wenn das aber gegen die Konventionen ist, bau ich das auch gern um, dann
> bräuchte ich aber nochmal eure hilfe

Nein, das ist überhaupt kein Problem. Lass es so, wenn es dir aus 
SW-Sicht günstiger erscheint. Es gibt keine Konvention.

Nur der LED-Vorwiderstand, den solltest du korrigieren. So fließen rund 
50mA durch die LED und das ist absolut nicht notwendig. Es ist recht 
nahe an der maximal zulässigen Grenze! Tiefer darfst du auf keinen Fall 
gehen.
Zur Berechnung:
Am Ausgang fließen maximal 3.3V/10k = 330µA. Der OK hat eine 
Stromtransferrate von mindestens 34% bei 1mA LED-Strom (und 100% bei 
10mA), dann reichen für die LED 1mA. Sei großzügig und nimm 5mA, das 
gibt einen Widerstand von ≈800Ω, also passen 820Ω, locker auch 1kΩ oder 
680Ω. Du hast ein weites Feld, solange du unter 3k9 bleibst.

von HildeK (Gast)


Lesenswert?

Martin L. schrieb:
> Die Werte habe ich aus dem Datenblatt:
> http://www.farnell.com/datasheets/2149962.pdf
>
> Spannungsquelle: 5 Volt
> LED-Durchlassspannung: 1.39 Volt (Forward voltage Typ.)
> LED-Strom: 60 mA (Forward current)

Du solltest nicht bei den Grenzdaten (absolute maximum ratings) schauen. 
Das sind Grenzen, die man nicht überschreiten darf, sonst darf das 
Bauteil kaputt gehen!
Auch die LED-Durchlassspannung ist nur so hoch, wenn diese 60mA fließen. 
Man darf bei den IR-LEDs ruhig mit 1.0V-1.2V rechnen. So genau schießen 
die Preußen eh nicht 😀.

In anderen Zeilen des Datenblatts werden Messparameter mit 1mA, 5mA, 
10mA und 20mA verwendet. Das ist als Vorschlag zu sehen für deine 
Berechnungen.
Nimm deinen Vorwiderstandsrechner mal für 5mA ...

von Martin L. (martin_l831)


Lesenswert?

HildeK schrieb:
> Zur Berechnung:
> Am Ausgang fließen maximal 3.3V/10k = 330µA. Der OK hat eine
> Stromtransferrate von mindestens 34% bei 1mA LED-Strom (und 100% bei
> 10mA), dann reichen für die LED 1mA. Sei großzügig und nimm 5mA, das
> gibt einen Widerstand von ≈800Ω, also passen 820Ω, locker auch 1kΩ oder
> 680Ω. Du hast ein weites Feld, solange du unter 3k9 bleibst.

wow okay. das sind viele Zahlen. So richtig hab ich noch nicht 
verstanden, wie du auf die Zahlen kommst und was sie bedeuten, aber die 
Kernaussage 'nen 820Ω-Widerstand oder etwas in der nähe zu nehmen ist 
angekommen.

wie kommst du denn auf die 3,3V am ausgang? reden wir jetzt von der 
Seite des Raspberrypis oder die seite der Klingel, denn da sind doch 5V 
anliegend.!?
Ich bin etwas verwirrt und sichtlich nicht firm mit der Berechnung des 
Widerstands :-(

Edit: aaah alles klar. also hab ich einfach in der Falschen Zeile 
geschaut. das ergibt auf jeden fall sinn. sorry. :-( hab ja gesagt ich 
bin blutiger anfänger

: Bearbeitet durch User
von Wolfgang (Gast)


Lesenswert?

Martin L. schrieb:
> Spannungsquelle: 5 Volt
> LED-Durchlassspannung: 1.39 Volt (Forward voltage Typ.)
> LED-Strom: 60 mA (Forward current)

Du willst den Optokoppler nicht kurz vor der Schmerzschwelle betreiben, 
sondern nur den GPIO des RaspPi ansteuern.
Wieviel Strom fließt durch deinen Pull-Up?
Wie ist das CTR deines OC im Wort-Case?
Welcher Strom muss dann durch die LED fließen?
Wie ist die V_f zu diesem Strom?
Wieviel Spannung muss am Widerstand abfallen?
-> Vorwiderstand

von Martin L. (martin_l831)


Lesenswert?

Wolfgang schrieb:

> Du willst den Optokoppler nicht kurz vor der Schmerzschwelle betreiben,
> sondern nur den GPIO des RaspPi ansteuern.
stimmt das war mein Fehler, ich suche im Datenblatt aber immer noch die 
Stelle wo ich die Werte für den Normalbetrieb finde :-/

> Wieviel Strom fließt durch deinen Pull-Up?
Der Pullup (in meinem Fall der Pulldown, siehe weiter oben) liegt doch 
galvanisch getrennt auf der anderen Seite des OK. Das heißt zwei 
unabhängige Stromkreise. Es geht doch hier um den Vorwiderstand auf der 
Klingelseite. Da kommen 5V an.

> Wie ist das CTR deines OC im Wort-Case?
:'( ich weiß nicht mal wo ich so eine Info finde.

> Welcher Strom muss dann durch die LED fließen?
genügend, damit sie aufleuchtet, aber nicht so viel dass sie 
durchbrennt. wie finde ich das ohne testen heraus?

> Wie ist die V_f zu diesem Strom?
:'( :'( ich will nicht mehr

> Wieviel Spannung muss am Widerstand abfallen?
heul geht weg böse Zahlen!

Edit:
Das ist mir wohl doch leider etwas zu hoch.
Ich hol mir jetzt einfach n 820Ohm Widerstand und pack den auf Seite der 
Klingel da dran. Laut HildeK funktioniert das. Da vertrau ich einfach 
mal drauf. tut mir leid euch gestört zu haben und Vielen 100 Dank für 
eure Hilfe! :-)

: Bearbeitet durch User
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
Noch kein Account? Hier anmelden.