Forum: Mikrocontroller und Digitale Elektronik 70V an Arduino registrieren?


von 2nd (Gast)


Lesenswert?

Liebe Elektroniker,

vor einiger Zeit habe ich mir mit einem Arduino mal eine Art 
Fernbedienung für einen CD Player gebastelt, die mir, je nach Zustand 
der Eingänge eine bestimmte Bytefolge an das RS-232 Interface des Player 
schickt und so bestimmte Titel einer CD anwählen und abspielen kann.

An den Eingängen war dann z.B. ein Taster, der einfach nur die 5V 
Betriebsspannung auf den I/O Port gezogen hat.

War der Impuls einmal da, geht die serielle Botschaft raus. Impulsdauer 
oder folgende Zustände sind egal.

Nun möchte ich den Player gerne über einen anderen Weg starten.

Ein externes Gerät mit eigener Stromversorgung liefert an einem Ausgang 
einen Spannungsimpuls zwischen 10V und 70V ab. Der Impuls ist ungefähr 
50ms lang. Die Polarität ist mal so, mal so.

Für mich stellt sich nun die Frage, wie ich diesen Impuls an den Arduino 
weitergebe.

Mit einem Relais stelle ich es mir recht einfach vor. Der Impuls lässt 
das Relais schalten und das Relais zieht dann 5V auf einen I/O.
Allerdings möchte ich kein Relais verwenden.

Meine Probleme sind also:
- der große Spannungsbereich 10V - 70V
- die Dauer des Impulses (ca. 50ms)
- die Weitergabe an den Arduino
- der vollständig getrennte Stromkreis

Wie gesagt, wenn der Impuls einmal registriert wurde, ist der Rest, der 
evtl. noch auf dem Port ankommt, egal (z.B. Prellen). Der Arduino 
schickt die Sequenz nur einmal und muss später per Taster wieder 
"scharf" geschaltet werden.

Kann mir jemand weiterhelfen?

Vielen Dank

2nd

von Michael R. (mexman) Benutzerseite


Lesenswert?

Was spricht gegen einen Optokoppler?


gruss

Michael

von 2nd (Gast)


Lesenswert?

Hallo Michael,

vielen Dank.
Grundsätzlich erstmal gar nichts ;)
Leider steck ich nicht so tief im Thema Elektronik und Bauteile. Mir 
liegt eher die Programmierung.

Wenn ich Wikipedia und Co. gerade richtig verstanden habe, dann könnte 
ich den 10-70V Impuls an den Eingang des Optokopplers legen und die 5V 
des Arduino über den Ausgang des Optokopplers auf den I/O Port des 
Arduino schalten.

Klingt soweit erstmal großartig.

Wie könnte ich denn mit der variablen Spannung 10-70V und der ggf. 
alternierenden Polarität umgehen?
Es handelt sich schon um Gleichspannung - nur weiß man eben nicht, wie 
die Polarität auf den beiden herausgeführten Leitungen ist.

Und die zweite Frage, die sich mir gerade stellt:
Wie schnell ist denn so ein Optokoppler? Wenn das Eingangssignal nur 
50ms lang ist, reicht das für ein zuverlässiges "schalten"?

Vielen Dank

2nd

von Mine Fields (Gast)


Lesenswert?

2nd schrieb:
> Wie könnte ich denn mit der variablen Spannung 10-70V und der ggf.
> alternierenden Polarität umgehen?

Es gibt wenn ich mich recht erinnere spezielle Optokoppler mit 
antiparallelgeschalteten Dioden. Damit sollte das Verpolen kein Problem 
sein.

Mit etwas Glück kannst du den Vorwiderstand so auslegen, dass der 
Optokoppler einfach über den gesamten Spannungsbereich arbeiten. 
Ansonsten musst du evtl. mit Z-Dioden arbeiten. In Verbindung mit dem 
Verpolen musst du dir vielleicht noch eine kleine Schaltung ausdenken.

von Dietrich L. (dietrichl)


Lesenswert?

2nd schrieb:
> Wie könnte ich denn mit der ... ggf. alternierenden Polarität umgehen?

Brückengleichrichter

> Und die zweite Frage, die sich mir gerade stellt:
> Wie schnell ist denn so ein Optokoppler? Wenn das Eingangssignal nur
> 50ms lang ist, reicht das für ein zuverlässiges "schalten"?

Auch der langsamste ist wesentlich schneller :-))

Gruß Dietrich

von 2nd (Gast)


Lesenswert?

Wow - super. Vielen Dank für Eure Tips!!!

OK, also der Brückengleichrichter würde mir dann zu einer 
festdefinierten Polung des Signals verhelfen.

Bei Pollin gibt es z.B. einen "BR81D" (100V/2A). Der würde dann 
vermutlich ausreichen, oder?

Bei dem Optokoppler und dessen Eingangssignal tue ich mir gerade noch 
etwas schwer.

Hier: 
http://www.conrad.de/ce/de/product/187038/OPTOKOPPLER-PC-817/?ref=category

steht bspw. was von "U(CEO) = 80V" und "Ausgangsspannung = 35V".

Bedeutet dass, dass am Eingang maximal 80V anlegen (aber auch schon 
vorher geschaltet wird) und
ich über den Ausgang maximal 35V "schalten" kann?

Oder kommt am Ausgang tatsächlich eine Spannung heraus, abhängig von der 
Spannung am Eingang?

Ich möchte ja eigentlich eine Art digitales Verhalten.

Kann mich da jemand auf den richtigen Weg bringen?

Danke!!!!

2nd

von Dietrich L. (dietrichl)


Lesenswert?

Schau Dir zuerst mal http://www.mikrocontroller.net/articles/Optokoppler 
an und dann das Datenblatt des Optokopplers 
http://www.produktinfo.conrad.com/datenblaetter/175000-199999/187038-da-01-en-PC817.pdf 
(nicht die Conrad-Übersicht)!

Gruß Dietrich

von 2nd (Gast)


Lesenswert?

Hallo Dietrich,

vielen Dank für den Link.
Das ist harter Stoff für mich. Die grobe Funktionsweise habe ich zwar 
verstanden, aber mit den ganzen Kenndaten und wofür sie wichtig sind, 
bin ich total überfordert. Die ganzen Abkürzungen, mal deutsch, mal 
englisch, Puh...

Ich werd's nachher nochmal in Ruhe probieren, wenn die Kinder im Bett 
sind ;)

Vielen Dank soweit!

von 2nd (Gast)


Lesenswert?

Hallo nochmal,

so - die Kleine sitzt vorm Fernseher. Das funktioniert auch und ich kann 
mir weiter den Kopf zerbrechen.

Also wenn ich aus dem Link von Dietrich nun richtig gelernt habe,
dann will ich einen digitalen Optokoppler.

Von der Eingangsseite aus gesehen, wird ein Optokoppler genauso 
behandelt wie eine LED. Ich kann also nicht mit 70V daran gehen, sondern 
muss mit einem Vorwiderstand arbeiten, so dass ich auf 1.2 - 1.5 Volt 
komme. Richtig?

Um nun diesen Widerstand aber berechnen zu können, muss ich doch die 
Eingangspannung einbeziehen. Aber die liegt ja unbekannterweise irgendwo 
zwischen 10 und 70V. Da steig ich das erste Mal aus.

Und Kopfschmerzen bereitet mir das Datenblatt des Optokopplers.
Hier habe ich einen gefunden, der in einer anderen Schaltung (über 
google gefunden) als "Relais" benutzt wurde:
https://www.buerklin.com/default.asp?kwd=Photo-MOS-Relais-Typ-Panasonic-AQY-212&event=ShowDvNr%28G115500%29&l=d

Ich verstehe nicht, wie ich so ein Datenblatt lesen muss bzw. wie ich 
daraus die nötigen Widerstände ableiten kann.

Ist am Ausgang überhaupt ein Widerstand nötig? Kann man nicht einfach 
die +5V des Arduino über den Optokoppler zurück auf den I/O Port 
schalten?

So in Relais-Denkweise?

Vielen Dank für jede Hilfe.

Michael

von Sascha W. (sascha-w)


Lesenswert?

2nd schrieb:
> Hallo nochmal,
> Also wenn ich aus dem Link von Dietrich nun richtig gelernt habe,
> dann will ich einen digitalen Optokoppler.
ja, wobei für digitale Anwendungen auch ein "analoger" geht - nur eben 
nicht umgekehrt

> Von der Eingangsseite aus gesehen, wird ein Optokoppler genauso
> behandelt wie eine LED. Ich kann also nicht mit 70V daran gehen, sondern
> muss mit einem Vorwiderstand arbeiten, so dass ich auf 1.2 - 1.5 Volt
> komme. Richtig?
genau

> Um nun diesen Widerstand aber berechnen zu können, muss ich doch die
> Eingangspannung einbeziehen. Aber die liegt ja unbekannterweise irgendwo
> zwischen 10 und 70V. Da steig ich das erste Mal aus.
>
> Und Kopfschmerzen bereitet mir das Datenblatt des Optokopplers.
> Hier habe ich einen gefunden, der in einer anderen Schaltung (über
> google gefunden) als "Relais" benutzt wurde:
> 
https://www.buerklin.com/default.asp?kwd=Photo-MOS-Relais-Typ-Panasonic-AQY-212&event=ShowDvNr%28G115500%29&l=d
>
> Ich verstehe nicht, wie ich so ein Datenblatt lesen muss bzw. wie ich
> daraus die nötigen Widerstände ableiten kann.
Was du suchst ist der Diodenstrom <Forward current (IF)> und die 
<Forward voltage UF>
Im Datenblatt gibt's immer den Bereich wie Absolute Maximum Ratings 
dort steht der höchste Stromwert den die Diode verträgt und einen 
Bereich wie Electro-optical oder DC Characteristics dort findest du 
die Flussspannung der Diode bei einem bestimmten Strom.

nehmen wir mal an:
Diodenspannung des OC:            1.2V
Spannungsabfall am Gleichrichter: 2 x 0.7V
minimale Eingangsspannung:        10V
Mindeststrom:                     5mA

(10V - 1.2V - 2 x 0.7V) / 5mA = 1.48kOhm
Also erst mal den Widerstand für die kleinste Eingangsspannung 
berechnen.
Dann schauen wieviel Strom bei der maximalen Eingangsspannung mit dem 
gewählen Vorwiderstand rauskommt ...
(70V - 1.2V - 2 x 0.7V) / 1.48kOhm = 45.5mA
Wenn der OC nun z.B. 60mA verträgt, dann könnte man das in deiner 
Anwendung wo keine dauerhafte Eingangsspannung anliegt einfach so 
machen.

> Ist am Ausgang überhaupt ein Widerstand nötig? Kann man nicht einfach
> die +5V des Arduino über den Optokoppler zurück auf den I/O Port
> schalten?
lieber den IO-Port mit dem OC auf GND ziehen und den internen Pullup des 
Controllers einschalten.

Sascha

von Sesk K. (zeborok)


Lesenswert?

Könnte man hier nicht einen einfachen Spannungsteiler verwenden, um die 
max. Spannung etwa auf die ADC-Referenz zu bekommen?

von Heinz (Gast)


Lesenswert?

Die AVR-Controller haben Schutzdioden an den Portpins (überprüfen). 
Diese Dioden fangen bei 5,5 V an zu leiten (überprüfen). Die Dioden 
können 1 mA gegen Massen ableiten (überprüfen). Die 70 V, wie oben schon 
geschrieben, gehen auf einen Gleichrichter und weiter über einen 
Widerstand von 100 K (überprüfen) zum Controller.

von Michael R. (mexman) Benutzerseite


Lesenswert?

Sesk K. schrieb:
> Könnte man hier nicht einen einfachen Spannungsteiler verwenden, um die
> max. Spannung etwa auf die ADC-Referenz zu bekommen?

Vor Antwort bitte in Zukunft den Thread durchlesen.

- der vollständig getrennte Stromkreis

War gefordert.

Gruss

Michael

von Route_66 (Gast)


Lesenswert?

Hallo!
Ist Deine ominöse Spannungsquelle das Telefonrufsignal?
Wenn ja, warum sagst Du das nicht?
Für Rufsignalerkennung gibt es tausende Schaltungen mit Optokopplern...

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.