Hallo,
hätte da mal eine Frage (so wie viele andere auch):
Ich habe in meine Fenster integrierte Fensterkontakte, welche bei
geöffneten Fenster offen sind, bei geschlossenen Fenster geschlossen.
Möchte nun mit einem Arduino den Zustand des Fensterschalters auslesen,
habe dazu einen ganz einfachen Schaltplan gezeichnet.
Arduino & Fenster sind bis zu 20 Meter entfernt. Die Leitung, welche
durch das Fenster geht, würde ich die GND- Leitung anlegen, und zurück
zum Arduino führen. Am Arduino würde ich den PullUP am Port aktivieren.
Macht GND auf solch eine Länge Probleme? Sollte das funktionieren, gibts
etwas zu beachten?
Danke!
lG
Hi
Da die beiden Adern des Fensterkontakt (und wohl auch auf dem Weg dahin)
recht nahe aneinander liegen, solltest Du keine größeren Störungen
bekommen.
Einzig gegen das Prellen eines jeden mechanischen Schalter wirst Du vll.
was programmieren müssen, sofern Du nicht nur sturr auf einem Display
den aktuell eingelesenen Zustand anzeigen willst, sondern mit Interrupts
arbeitest.
MfG
Ich erwarte da keine Probleme. Da der Kontakt im Ruhezustand geschlossen
ist, und die beiden Leitungen parallel dicht beieinander verlaufen,
wirst Du wohl kaum Störungen empfangen.
Wenn der Kontakt geöffnet ist, ist er allerdings für Störungen
empfänglich.
Da man bei Alarmanlagen normalerweise mit 12V zu tun hat, würde ich die
Eingänge des µC entsprechend absichern. Und damit du außerdem problemlos
normal-open Kontakte verwenden kannst, würde ich Störungen durch einen
R/C Filter unterdrücken. Kombiniert kann das so aussehen (diese
Schaltung ist vielfach Praxiserprobt):
Bei dieser Schaltung muss der interne Pull-Up Widerstand im µC
deaktiviert sein.
Bitte beachte: Wenn man im Extremfall an alle Eingänge 12V anlegt,
fließt ein gewisser Strom über die 10k Ohm Widerstände nach VCC. Wenn
dieser Strom höher ist, als die Stromaufnahme der ganzen Schaltung, dann
erhöht sich die Spannungsversorgung unzulässig. Aus 5V werden dann z.B.
eventuell 7V. Dies kann man relativ einfach mit einer 5,6V Zenerdiode
zwischen VCC und GND unterdrücken.
Der 10µF Kondensator hat neben der Entstörung noch eine weitere Aufgabe:
Er stellt sicher, daß der Schaltkontakt zumindest kurzzeitig mit
ausreichend "Wetting Current" durchflossen wird. Viele Schaltkontakte
geben frühzeitig ihren Geist auf (werden unzuverlässig), wenn sie mit zu
wenig Strom belastet werden.
Hallo,
danke für eure Antworten.
Habe bereits für die Erkennung vom Drücken eines Lichtschalters eine
Schaltung, welche ich angehängt habe.
In diesem Falle ist der Lichtschalter der Fensterkontakt.
Der µF Kondensator dient dem Current Wedding, 100nF Kondensator zur
Entstörung.
Optokoppler verwende ich, um den Mikrocontroller vor falsch angelegte
Spannungen etc. zu schützen (und weil ich einige Optokoppler daheim
herumliegen habe :) ))..
lG
Thomas schrieb:> Optokoppler verwende ich, um den Mikrocontroller vor falsch angelegte> Spannungen etc. zu schützen
Da wäre ich dann aber gleich konsequent und würde Prozessor-GND und
Schalter GND garnicht miteinander verbinden, es besteht dafür ja auch
keine Notwendigkeit. An den vorherigen Konzepten stört mich auch, dass
GND der Prozessorschaltung 20 m durch die Gegend geführt wird, da gibt
es genügend Möglichkeiten, Störungen auf den GND der Elektronik
einzukoppeln, es muss ja nicht gleich der Blitz einschlagen. Also eine
ganze galvanische Trennung, nicht nur eine halbe.
Georg
Georg schrieb:> Da wäre ich dann aber gleich konsequent und würde Prozessor-GND und> Schalter GND garnicht miteinander verbinden, es besteht dafür ja auch> keine Notwendigkeit
Das wäre natürlich auch die beste Möglichkeit.
Mein Problem ist nur, dass 12V + 5V Leitung bei der Schaltung nicht
galwanisch getrennt sind.
Kann ich irgendwie wieder eine galwische Trennung erzeugen (ein Bauteil,
wo ich mich 1x GND, 5V + 12V reinfahre, und mit 2x GND, 5 + 12V wieder
rauskomme)?
lG
> Der µF Kondensator dient dem Current Wedding, 100nF> Kondensator zur Entstörung.
Der 100nF Kondensator ist überflüssig. Diese Funktion übernimmt bereits
der größere Kondensator. 10 Ohm für R2 ist ein bisschen wenig, nimm
lieber 100 Ohm.
> da gibt es genügend Möglichkeiten, Störungen auf den GND der> Elektronik einzukoppeln
Wenn man die GND Leitungen auf der Platine richtig (Sternförmig) und
breit genug führt, sind da keine Probleme zu befürchten. Das sollte man
ohnehin immer tun.
Thomas schrieb:> Kann ich irgendwie wieder eine galwische Trennung erzeugen (ein Bauteil,> wo ich mich 1x GND, 5V + 12V reinfahre, und mit 2x GND, 5 + 12V wieder> rauskomme)?
Relais.
Stefan U. schrieb:> Wenn man die GND Leitungen auf der Platine richtig (Sternförmig) und> breit genug führt, sind da keine Probleme zu befürchten.
was genau ist mit sternförmig gemeint?
Stefan U. schrieb:> Relais ist die falsche Antwort. Da dein Netzteil bereits beide> Stromkreise zusammengeführt hat, kannst du sie nicht mehr voneinander> trennen. Du müsstest das Netzteil durch zwei einzelne ersetzen.>> Lies das:> http://www.sieb-meyer.de/tl_files/media/Produkte/Downloads/EMC_EMV/Deutsch/EMV_Geraeteaufbau.pdf
Danke für den Link, sieht interessant aus.
Sollte man die 12V Leitung, welche zum Fenster führt & Retour zum
Arduino geht, auch verdrillen? Was ist eigentlich der genaue Grund für
das verdrillen der Leitung?
Thomas schrieb:> Der µF Kondensator dient dem Current Wedding, 100nF Kondensator zur> Entstörung.
Was zum Teufel ist "Current Wedding"?
Gibt es dafür keinen deutschen Begriff?
Die Googlesuche findet nur Ergebnisse, die man besser nicht im
Browserverlauf des ArbeitsPCs haben will...
Leroy M. schrieb:> Was zum Teufel ist "Current Wedding"?> Gibt es dafür keinen deutschen Begriff?
Doch, Fritt-Strom.
Zudem hat er es auch noch falsch geschrieben.
Es heißt eigentlich "Wetting Current" (und nicht "Current Wedding").
Tja, wenn sich schon mal einer mit englischen Begriffen versucht... :-D
npn schrieb:> Doch, Fritt-Strom.>> Zudem hat er es auch noch falsch geschrieben.> Es heißt eigentlich "Wetting Current" (und nicht "Current Wedding").
Nicht nur das. Frittstrom fliesst ueber den Kontakt.
Dafuer ist ein C also falsch, genauso wie der Strom natuerlich im
Kontaktkreis fliessen sollte und nichts zwischen Optokoppler und uC zu
suchen hat.
ereewwt
> was genau ist mit sternförmig gemeint?
Dass alle GND Leitungen sich an einem gemeinsamen Punkt treffen. Steht
doch in dem Artikel, den ich Dir zum Lesen empfohlen habe.
> Was ist eigentlich der genaue Grund für das verdrillen der Leitung?
Diese Empfehlung bezieht sich auf symmetrische Leitungen.
Er stellt sicher, daß elektromegntische Felder beide Adern gleich stark
betreffen und sich somit gegenseitig auslöschen. Denn bei Symmetrischen
Leitungen zählt die Spannungsdifferenz zwischen zwei Leitungen, nicht
der absolute Wert.
Wenn du zwei Drähte nebeneinander führts und sich die Quelle der
elektromagnetischen Felder seitlich davon befindet, dann würde die
Störung auf die näher liegende Ader stärker einwirken, als auf die
Andere. Die Verdrillung verhindert das.
Deine Alarmanlage ist jedoch unsymmetrisch. Eine Ader ist mit GND
verbunden, während die andere hochohmig mit VCC verbunden ist. Und sie
werden auch unsymmetrisch ausgewertet. Du verwendest am µC nur die
absolute Spannung auf einer der beiden Adern. Störungen werden sich
daher immer unsymmetrisch auswirken, auch bei verdrillten Kabeln.
Deswegen filterst du sie mit R/C Gliedern heraus.
> Frittstrom fliesst ueber den Kontakt.
Ja
>Dafuer ist ein C also falsch
Nein. In diesem Fall sorgt der Kondensator dafür, daß beim Schließen des
Kontaktes kurzzeitig ein ausreichend hoher Strom fließt. Und das genügt
in der Regel.
Stefan U. schrieb:> Deswegen filterst du sie mit R/C Gliedern heraus.
Das heißt, ich kann meine letzt gepostete Schaltung so belassen, wie sie
ist, und mir muss keine sorgen machen?
Thomas schrieb:> Das heißt, ich kann meine letzt gepostete Schaltung so belassen, wie sie> ist, und mir muss keine sorgen machen?
Auch wenn Stefan U.'s Antwort sehr kurz war, sie ist grundsätzlich
richtig. Trotzdem möchte ich noch ein paar Bemerkungen hinzufügen:
Eine falsch angelegte Spannung, z.B. durch Verpolung, wird den 1µF (wenn
es wie gezeichnet ein Elko ist) plagen und auch die LED im Optokoppler.
Eine einfache Diode in Durchlassrichtung am Schaltereingang vor R2 und
R3 wird dies beheben.
R1 könnte man auch R3 zuschlagen (R3=10k, R1=0), nach den 100nF muss
kein Widerstand mehr sitzen. Für die gleiche Zeitkonstante R3/C2 müsste
man dann C2 halbieren, aber wenn in deiner Anwendung eh alles quasi
gemächlich geht, auch bei 100n belassen - filtert dann noch besser :-).
Wobei, EMV-Störungen oder induktive/kapazitive Kopplungen durch
naheliegende Netzleitungen sind in der Optokopplerschaltung deutlich
weniger tragisch: es muss ja fürs Leuchten der LED richtig Energie
aufgebracht werden und das schafft eine Einstreuung eher selten.
Insgesamt ist das aber eine sehr gute Art, einen abgesetzten
Schaltkontakt an einen µC anzubinden. Ich hätte es ganz ähnlich gemacht,
nur ev. den Optokoppler mit höherem Strom gefahren und am µC-Eingang
einen niederigen Pullup gewählt. Mit einem min. CTR von 50% und 1mA
LED-Strom wären schon jetzt ein externer Pullup mit 12-15k besser
(störsicherer) als die Verwendung des intern, der so zwischen 30k-40k
liegt.
Einziger Nachteil: bei geschlossenem Fensterschalter fließt halt immer
rund 1mA durch die OK-LED - in meiner Variante sogar noch mehr. Bei
einem Kontakt ist das wenig tragisch, aber wenn man mehrere abfragen
möchte, summiert sich das.
Thomas schrieb:> Mein Problem ist nur, dass 12V + 5V Leitung bei der Schaltung nicht> galwanisch getrennt sind.
Dann kannst Du auch auf die Optokoppler verzichten undstattdessen
einen einfachen Transistor verwenden.
> Kann ich irgendwie wieder eine galwische Trennung erzeugen (ein Bauteil,> wo ich mich 1x GND, 5V + 12V reinfahre, und mit 2x GND, 5 + 12V wieder> rauskomme)?
Theoretisch nimmt man dafür sog. DCDC-Wandler. Einfacher wären aber
vermutlich einfach zwei getrennte Netzteile.
> Der µF Kondensator dient dem Current Wedding,
Gibts dann auch neun Monate später Current Childs?
Harald W. schrieb:> Gibts dann auch neun Monate später Current Childs?
Nein, damit lasse ich mir etwas mehr Zeit :-) ...
Harald W. schrieb:> Dann kannst Du auch auf die Optokoppler verzichten undstattdessen> einen einfachen Transistor verwenden.
Optokoppler habe ich jetzt schon daheim herumliegen...
Anbein ein Bild der Schaltung, wenn ich die 2 10k Widerstande
zusamenführe... Dem Optokoppler macht es eh nichts aus, wenn man
entladen des C2 kurzfristig mehr Strom fliest, da kein Widestand
Zwischen C2 und IC1 ist?
Thomas schrieb:> Dem Optokoppler macht es eh nichts aus, wenn man> entladen des C2 kurzfristig mehr Strom fliest, da kein Widestand> Zwischen C2 und IC1 ist?
Nein. Die Spannung an C2 ist ja genau so groß wie die Flussspannung an
der OK-LED bei dem einen mA. Schaltest du die 12V weg, dann kann ja der
Strom nicht größer werden. Noch ein Vorteil: der Elko wird nur noch 1.1V
Spannung sehen (vorher: ~6V), du kannst also einen mit der kleinsten
Spannung nehmen.
Thomas schrieb:> Optokoppler verwende ich, um den Mikrocontroller vor falsch angelegte_n_> Spannungen etc. zu schützen
Der Optokoppler mit Ein- und Ausgang an der selben Masse erschließt sich
mir nicht. Es genügt ein simpler Transistor, den abweichenden Pegel vom
µC fern zu halten.
HildeK schrieb:> Noch ein Vorteil: der Elko wird nur noch 1.1V> Spannung sehen (vorher: ~6V), du kannst also einen mit der kleinsten> Spannung nehmen.
Ich sehe da eher 12V. Ausserdem fürchte ich muss am Optokoppler C und E
getauscht werden, und an den Eingang von IC1 muss ein Pullup-Widerstand,
wenn der keinen eingebauten hat.
Georg
> Es genügt ein simpler Transistor, den abweichenden Pegel vom> µC fern zu halten.
Oder wie ich schon schrieb ein 47k Ohm Widerstand vor dem Eingang des
µC. Der Eingang verträgt über und Unterspannung dauerhaft bis mindestens
2mA (also ca. 100 Volt). Langfristig wird eher der Widerstand
durchbrennen, als der µC.
Kurzzeitig verträgt der µC locker das Zehnfache. Wobei das wohl nicht
vorkommen wird, da der Kondensator kurzzeitige Spitzen bereits aufnehmen
wird.
Aber was erwartet man sonst von der Arduino Fraktion, die sogar im
Massenproduktion Relais via Optokoppler ansteuern.
Stefan U. schrieb:> Oder wie ich schon schrieb ein 47k Ohm Widerstand vor dem Eingang des> µC. Der Eingang verträgt über und Unterspannung dauerhaft bis mindestens> 2mA (also ca. 100 Volt).
Das sehe ich als Bastelpfusch und würde es nicht so machen.
> Aber was erwartet man sonst von der Arduino Fraktion, die sogar im> Massenproduktion Relais via Optokoppler ansteuern.
Nicht jeder, der Arduino einsetzt, ist zwingend auch unfähig.
Thomas schrieb:> Das heißt, ich kann meine letzt gepostete Schaltung so belassen, wie sie> ist, und mir muss keine sorgen machen?
Am Optokopplertransistor C und E tauschen!
Bipolartransistoren funktionieren im Inversbetrieb zwar prinzipiell,
aber mit schlechten Daten.
Georg schrieb:> Ich sehe da eher 12V.
Ich war bei C2, aber ich sehe gerade, das ist ja gar kein Elko - hat
sich damit erledigt.
> Ausserdem fürchte ich muss am Optokoppler C und E> getauscht werden,
Ja, unbedingt!
Stefan U. schrieb:> Oder wie ich schon schrieb ein 47k Ohm Widerstand vor dem Eingang des> µC. Der Eingang verträgt über und Unterspannung dauerhaft bis mindestens> 2mA (also ca. 100 Volt).
Du brauchst dann noch einen Pulldown am Eingang und der muss mindestens
33k haben. Das geht gut, solange du auf dem Board bleibst, nicht aber
mit z.B. 10m Leitung zum Schalter. Da streut dann alles mögliche ein und
löst aus.
Deshalb der Optokoppler, der ist auch gegen 100V schützbar und braucht
im aktiven Zustand einen relativ hohen Schleifenstrom, so dass er bei
offenem Schalter nie die Energie durch Einstreuungen erhält, die die LED
zum Leuchten brauchen würde.
> Das sehe ich als Bastelpfusch und würde es nicht so machen.
Stell Dir mal vor, Atmel selbst würde solche Schaltung empfehlen. Und
das sogar an Netzspannung. Skandal!
Haben sie aber! Es gibt tatsächlich eine Application Note, in der Atmel
die Nutzung der ESD Dioden mit einem Vorwiderstand empfiehlt, um den
Null-Durchgang von Netz-Spannung zu erkennen.
http://www.atmel.com/Images/Atmel-2508-Zero-Cross-Detector_ApplicationNote_AVR182.pdf
Vorschlag: Schreibe mal Microchip wegen deinem "Bastelpfusch" Vorwurf an
und bitte um Stellungnahme. Wir freuen uns auf deinen Bericht.
Stefan U. schrieb:> Stell Dir mal vor, Atmel selbst würde solche Schaltung empfehlen. Und> das sogar an Netzspannung. Skandal!>> Haben sie aber! Es gibt tatsächlich eine Application Note, in der Atmel> die Nutzung der ESD Dioden mit einem Vorwiderstand empfiehlt, um den> Null-Durchgang von Netz-Spannung zu erkennen.
Gegen die Verwendung der Schutzdioden ist imho nichts einzuwenden, wenn
der Hersteller deren maximale Belastbarkeit spezifiziert und man sich
daran hält. Nicht nur Atmel, wie du sagst, sondern auch bei Xilinx habe
ich eine derartige Empfehlung gesehen, die auch mündlich bestätigt
wurde. Bei Xilinx ging es um die Anpassung eines 3.3V Signals an einen
2.5V oder 1.8V-Eingang.
> wenn der Hersteller deren maximale Belastbarkeit spezifiziert
Was bei AVR leider nicht der Fall ist. Finde ich übrigens sehr
ärgerlich. In irgend einer App Note stand jedoch die Empfehlung, 2mA
nicht zu überschreiten.
Ich habs sie mal probehalber mit 20mA belastet - das haben sie
ausgehalten. Planen tu ich aber nur mit den von Atmel genannten 2mA.