Forum: Mikrocontroller und Digitale Elektronik Reedkontakt - Schaltung mit Arduino


von Le O. (osral)



Lesenswert?

Hallo Zusammen,

ich versuche zur Zeit meine 10 Reedkontakte mit Hilfe eines Arduinos 
auszulesen.

Dazu habe ich folgenden Schaltplan (Beispielhaft mit 2 Reedkontakten) 
erstellt.

Ein durchgeführter Test war auch erfolgreich und ich konnte die States 
lesen.

Mir sind dennoch noch einige Sachen unklar:
- Ich würde den 10kOhm Widerstand so nah wie möglich an den Sensor 
bringen wollen - nicht an den Arduino - um z.B. mit möglichen 
Streukapazitäten oder anderen Peaks keine Probleme zu bekommen (siehe 
auch 
https://standexelectronics.com/wp-content/uploads/Load_Switching_and_Contact_Protection_DE.pdf). 
Hier habe ich jetzt aber bereits auch anderes gelesen. Widerstand so nah 
wie möglich an den Arduino.... Tu mich damit grad etwas schwer.

- Des Weiteren würde ich den Widerstand an Ground (siehe Skizze) 
anlegen, statt über die 5V lane. Auch da habe ich schon gelesen, 
Widerstand zwischen 5V und Reedkontakt...

Würde mich über jeden Support freuen.

Danke! Osral

von Wolfgang (Gast)


Lesenswert?

Le O. schrieb:
> Dazu habe ich folgenden Schaltplan (Beispielhaft mit 2 Reedkontakten)
> erstellt.

Aus versehen hast du den Steckplan angehängt. Zeig mal den richtigen 
Schaltplan. So ist nur sehr mühselig zu verfolgen, was du da 
zusammengesteckt hast.

> - Des Weiteren würde ich den Widerstand an Ground (siehe Skizze)
> anlegen, statt über die 5V lane. Auch da habe ich schon gelesen,
> Widerstand zwischen 5V und Reedkontakt...

Nein, Widerstand von 5V ist schon die bessere Lösung. Um die Sache 
störsicherer zu machen, kannst du vor den Eingang noch einen RC-Tiefpass 
hängen und einen größeren Strom durch den Kontakt fließen lassen.

von Gerhard O. (gerhard_)


Angehängte Dateien:

Lesenswert?

Le O. schrieb:
> Hallo Zusammen,
>
> ich versuche zur Zeit meine 10 Reedkontakte mit Hilfe eines Arduinos
> auszulesen.
>
> Dazu habe ich folgenden Schaltplan (Beispielhaft mit 2 Reedkontakten)
> erstellt.
>
> Ein durchgeführter Test war auch erfolgreich und ich konnte die States
> lesen.
>
> Mir sind dennoch noch einige Sachen unklar:
> - Ich würde den 10kOhm Widerstand so nah wie möglich an den Sensor
> bringen wollen - nicht an den Arduino - um z.B. mit möglichen
> Streukapazitäten oder anderen Peaks keine Probleme zu bekommen (siehe
> auch
> 
https://standexelectronics.com/wp-content/uploads/Load_Switching_and_Contact_Protection_DE.pdf).
> Hier habe ich jetzt aber bereits auch anderes gelesen. Widerstand so nah
> wie möglich an den Arduino.... Tu mich damit grad etwas schwer.
>
> - Des Weiteren würde ich den Widerstand an Ground (siehe Skizze)
> anlegen, statt über die 5V lane. Auch da habe ich schon gelesen,
> Widerstand zwischen 5V und Reedkontakt...
>
> Würde mich über jeden Support freuen.
>
> Danke! Osral

Hallo Osral,

Aus meiner Sicht rate ich Dir wie im Anhang vorzugehen.

Pullup Rs können noch etwas niedriger geraten. Ich ziehe ein paar mA vor 
damit die Konrakte dauerhaft zuverlässig bleiben. Falls es zu den 
Reedkontakten ein Datenblatt gibt, den Kontaktstrom nach deren Angaben 
formulieren.

Zur Verbesserung der Störsicherheit empfehle ich nach dem Pullup 
Widerstand so nahe wie möglich zum Arduino einen 10K 
Strombegrenzungswiderstand und Abblock C an jeden Eingang vorzusehen.

Das ist aus verschiedenen Gründen empfehlenswert. Erstens begrenzt so 
ein Widerstand den Eingangsstrom bei moderater Überspannung. Im 
Datenblatt steht, daß bei Überspannung der maximal zulässige Ableitstrom 
durch die inneren Dioden des uC +/-1mA betragen darf. Mit 10K sind also 
bei VCC=5V bis zu +15V Eingangsüberspannung und bis zu -10V zulässig. Im 
ausgeschalteten Zustand bis zu rund +/- 10V.

Ferner wirken lange Zuleitung oft als Antennen und können den uC leicht 
durch externe Störeinflüsse beeinflussen, was sich in vielerlei Form 
w.B. unerwartete RESETs bemerkbar machen kann. (Das Schalten induktiver 
Lasten im Stromnetz macht sich da besonders unangenehm bemerkbar)

Der 10K mit dem 1-10n C wirkt als Schutz- und Tiefpassfilter um nur den 
DC Wert durchzulassen. Man sollte digitale Eingänge immer zweckmäßig 
filtern. Ganz vorsichtige Leute verwenden sogar optische Isolatoren, 
speziell in industriellen Umgebungen.

Die Pullupwiderstände kannst Du ruhig nahe bei den Filter RCs 
platzieren. Die brauchen nicht in der Nähe der Reedkontakte sein. Das 
bringt überhaupt nichts.

Extra Zenerdioden als Spannungsbegrenzung der Eingänge sollten in Deiner 
Anwendung nicht notwendig sein, es sei denn Höhere Spannungen könnten 
erwartet werden. CMOS Eingänge haben eingebaute gegenpolige 
parasitische Dioden die Über- und Unterspannung nach Masse und Vcc 
ableiten. Eine Überspannung an einem Eingang kann bei fehlender 
Strombegrenzung am Eingsng über die innere Schutzdiode hach Vdd sogar 
den uC betreiben. Auch aus diesen Grund ist der 10K Serienwiderstsnd 
empfehlenswert.

OK. Das wärs,
Gerhard

: Bearbeitet durch User
von Wolfgang (Gast)


Lesenswert?

Gerhard O. schrieb:
> Der 10K mit dem 1-10n C wirkt als Schutz- und Tiefpassfilter um nur den
> DC Wert durchzulassen.

Der Kondensator vom Tiefpass sollte allerdings nach Gnd gehen. Seine 
Aufgabe ist es NICHT, Störungen von der Versorgung auf den Eingang zu 
koppeln ;-)

von Gerhard O. (gerhard_)


Lesenswert?

Wolfgang schrieb:
> Gerhard O. schrieb:
>> Der 10K mit dem 1-10n C wirkt als Schutz- und Tiefpassfilter um nur den
>> DC Wert durchzulassen.
>
> Der Kondensator vom Tiefpass sollte allerdings nach Gnd gehen. Seine
> Aufgabe ist es NICHT, Störungen von der Versorgung auf den Eingang zu
> koppeln ;-)

Das hat aber den Nachteil, daß beim Einschalten der Eingang bis zur 
Aufladung nach unten gezogen wird und nicht vorhandene 
Kontaktschließungen vortäuschen könnte. Ich mache das deswegen bei nach 
Masse schaltenden Einhängen meist so.

Allerdings könnte man aber gegenteilig behaupten, daß die Startup Zeit 
des uC größer wie die Aufladezeit ist. Kann man also machen wie man 
will. Nach Masse hin ist der Schutz natürlich besser, weil in meinen 
Fall diese Cs in Serie mit dem (hoffentlich) vorhandenen uC Abblock-C 
sind. Störungen von der Versorgung her sehe ich wegen der ohnehin 
vorhandenen Abblockung allerdings als weniger gefährlich.

: Bearbeitet durch User
von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Gerhard O. schrieb:
> Ganz vorsichtige Leute verwenden sogar optische Isolatoren, speziell in
> industriellen Umgebungen.
Dann nehmen solche Leute konsequenterweise aber auch 2 galvanisch 
getrennte Versorgungen mit 2 nicht verbundenen Massepotentialen.

Gerhard O. schrieb:
> Das hat aber den Nachteil, daß beim Einschalten der Eingang bis zur
> Aufladung nach unten gezogen wird
Im Allgemeinen dauert aber schon die Initialisierung des uC weit länger 
als die Zeit, die der Kondensator zum Aufladen braucht...

von Le O. (osral)


Lesenswert?

Danke euch für die guten Ratschläge und der Hilfe! Das reicht mir als 
Input zur weiteren Entwicklung.

Osral

von Wolfgang (Gast)


Lesenswert?

Gerhard O. schrieb:
> Das hat aber den Nachteil, daß beim Einschalten der Eingang bis zur
> Aufladung nach unten gezogen wird und nicht vorhandene
> Kontaktschließungen vortäuschen könnte. Ich mache das deswegen bei nach
> Masse schaltenden Einhängen meist so.

Beim Einschalten passiert überhaupt nichts, wenn sich der Arduino erst 
mit einer gewissen Verzögerung der Auswertung der Eingänge hingibt.

von Gerhard O. (gerhard_)


Lesenswert?

Wolfgang schrieb:
> Gerhard O. schrieb:
>> Das hat aber den Nachteil, daß beim Einschalten der Eingang bis zur
>> Aufladung nach unten gezogen wird und nicht vorhandene
>> Kontaktschließungen vortäuschen könnte. Ich mache das deswegen bei nach
>> Masse schaltenden Einhängen meist so.
>
> Beim Einschalten passiert überhaupt nichts, wenn sich der Arduino erst
> mit einer gewissen Verzögerung der Auswertung der Eingänge hingibt.

Naja,

Nicht jeder verwendet BL und Arduino. Viele meiner anderen uC ohne BL 
starten beträchtlich schneller. Du hast natürlich im Zusammenhang 
vollkommen recht und in der Praxis funktioniert es auch erwartungsgemäß. 
Nur weil es beim uC wegen seinem Einschaltverhalten nichts ausmacht, 
bedeutet es aber nicht unbedingt, daß es eine technisch einwandfreie 
Design Methode ist.

Ich vergaß übrigens vorher zu bemerken, daß es mit dem 10K 
Serienwiderstand zweckmäßig ist, aufzupassen, daß die internen Pullups 
nicht aktiviert sind um einen Spannungsteiler Effekt mit den internen 
Wert von 60kOhm zu vermeiden.

Was mich betrifft mache ich es schon seit vielen Jahren anders, weil es 
mir besser erschien. Zusätzlich kommt dazu, daß ich vor dem uC Zeitalter 
viel mit diskreter CMOS Logik konstruierte, wo auf Masse gelegte 
Siebglieder beim Einschalten ohne vorherige Abhilfemaßnahmen fast immer 
ein funktionelles Fehlverhalten verursachen würden.

Ist halt meine Ansicht:-)

von DIcklally (Gast)


Lesenswert?

Hello everyone I recommend it to everyone who is interested  dollar 
exchange rate watch video about how how to correctly determine price 
levels
https://images.google.com.ua/url?q=https://zen.yandex.ru/id/624de090017055216cee8179
https://www.google.com.sa/url?q=https://zen.yandex.ru/id/624de090017055216cee8179
http://google.com.tn/url?q=https://zen.yandex.ru/id/624de090017055216cee8179

I hope  it will be useful to you information   and you can always earn a 
lot of money . Thanks a lot to all our users and team! I hope we will 
develop together.

von Wolfgang (Gast)


Lesenswert?

Gerhard O. schrieb:
> Naja,
> Nicht jeder verwendet BL und Arduino.

Worum geht es denn hier sonst?

Le O. schrieb:
> ich versuche zur Zeit meine 10 Reedkontakte mit Hilfe eines Arduinos
> auszulesen.

von Manfred (Gast)


Lesenswert?

Gerhard O. schrieb:
> Nicht jeder verwendet BL und Arduino. Viele meiner anderen uC ohne BL
> starten beträchtlich schneller.

Meine Akküberwachung habe ich vor ein paar Jahren ans Netz gesteckt, 
seitdem läuft der Arduino durch. Da ist es mir vollkommen egal, dass der 
damals vielleicht 2 Sekunden für den Start benötigt hat.

In der Ursprungsfrage fehlt eine Beschreibung der Anwendung, Häufigkeit 
und Länge der Schaltersignale.

Generell ist es eine gute Idee, den Stromkreis niederohmig zu gestalten 
und zusätzlich einen Kondensator vorzusehen. Wenn der Ablauf langsam 
ist, Tür- oder Fensterkontakte, würde ich auf jeden Fall zusätzlich eine 
Filterung per Software machen. Ähnlich einer Tastenentprellung noch 
langsamer, da stören 500ms Schaltverzug niemanden.

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.