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
Thomas schrieb: > gibts > etwas zu beachten? Pull Up! Falls der integrierte Widerstand zu gross ist einen externen verwenden.
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):
1 | Kontakt |
2 | _____ 220 Ohm 10k Ohm |
3 | |---- ------[===]---+----[===]----o VCC |
4 | | |
5 | |---------------||----+----[===]-----------------o µC Pin |
6 | 10µF 47k Ohm |
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.
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
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?
ich würde einen DC/DC und Optokoppler nehmen. Dann ist es galv. getrennt und störsicherer.
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.