Reedschalter an AVR

OP #4215165
Lesenswert?

Hallo,

ich habe mit Reedkontakten noch nie gearbeitet. Nun habe ich folgende 
Frage:

Kann ich einen Reedschalter(Schließer) direkt an einen MCU schalten wie 
einen ganz normalen Taster?

Ich möchte mit dem Reedschalter überprüfen, ob der Deckel meines 
Belichters geschlossen oder offen ist, damit ich bei Bedarf die 
UV-Röhren abschalten kann. Dazu wollte ich einen kleinen Magneten an den 
Deckel anbringen. Ist der Deckel geschlossen, so ist auch der 
Reedschalter geschlossen, sodass der Pin am MCU auf Low gezogen wird. 
Der Reedschalter soll mit dem internen Pullup des AVR gegen GND 
betrieben werden.

Wenn dies so funktionieren würde, dann muss ich mir nur noch Gedanken 
wegen des Prellens machen. Ich denke ein einfaches RC-Glied solte für 
meine Anwendung reichen. Ich weiß nur nicht, wie lange so ein 
Reedschlater prellt. Weiß da jemand was?

Falls ich den Redschalter nicht direkt am MCU betreiben kann, wäre dann 
sowas(http://www.ebay.de/itm/Schilf-Sensormodul-Magnetron-Modul-Reed-Schalter-Magnet-Schalter-/351332503916?var=&hash=item51cd0c916c) 
eine Alternative?

Grüße Julian
#4215169
Lesenswert?

Julian V. schrieb:
> Kann ich einen Reedschalter(Schließer) direkt an einen MCU schalten wie
> einen ganz normalen Taster?

Ja, kannst Du machen.

Julian V. schrieb:
> Wenn dies so funktionieren würde, dann muss ich mir nur noch Gedanken
> wegen des Prellens machen. Ich denke ein einfaches RC-Glied solte für
> meine Anwendung reichen. Ich weiß nur nicht, wie lange so ein
> Reedschlater prellt. Weiß da jemand was?

Entprelle es per Software, sondt kommst Du hier in Teufels Küche...
;-)

MfG Paul
Gast #4215174
Lesenswert?

Reedschalter prellen nur sehr wenig, typischerweise weniger als eine 
Millisekunde.

Eine Entprellung brauchst du nur, wenn du die Anzahl der Impulse zählen 
willst. Da reicht ganz sicher ein kleiner 10nF Kondensator parallel zum 
Kontakt.

Das mit der Teufels Küche bedarf einer Begründung.
Gast #4215181
Lesenswert?

Paul B. schrieb:
> Entprelle es per Software, sondt kommst Du hier in Teufels Küche...
> ;-)
>
> MfG Paul

Da es hier nur um Zustaende geht (offen=aus geschlossen=ein) wird es 
keine Entprellung brauchen.

Wenn allerdings mitgezaehlt werden soll, wie oft der Deckel geoeffnet 
wurde, schon.

wendelsberg
Gast #4215206
Lesenswert?

> Kann ich trotzdem auf das Entprellen verzichten?

Ja, wenn die Prellzeit kürzer ist, als die Ansprechzeit des Relais. Was 
ganz sicher der Fall ist. Es sei denn, dein Reedkontakt ist 
außergwöhnlich groß - riesig groß.

> Habe nur 47n und 100n Kondis zur Hand.

Zu groß sollte man die Kondensatoren aber auch nciht wählen, denn wenn 
der Kontakt schließt, fließt kurzzeitig ein hoher Strom durch den 
Kontakt. Je größer der Kondensator, umso stärker wird der Kontakt 
belastet. Ich weiss jetzt nciht, wo die Grenzen sind, aber für normale 
Taster verwende ich immer 100nF.

Wenn du sicher gehen willst, schalte noch einen 100 Ohm Widerstand in 
Reihe zum Kondensator, um den Strom zu begrenzen.
1
               Kontakt
2
GND |----+--------/-------+-----o µC Eingang mit Pull-Up
3
         |                |
4
         +---||---[===]---+
5
           47nF   100 Ohm
Gast #4215213
Lesenswert?

... auf der unsicheren Seite.
Reedschalter mögen Ströme überhalb der Nennwerte gar nicht (bleiben dann 
z. B. kleben). Bei uns reichte schon die kapazitive Impulsbelastung 
durch 15m Leitung (allerdings bei 24V) für Ausfälle aus.
#4216364
Lesenswert?

m.n. schrieb:

>> Sparst du auch bei Abblock Kondensatoren?
>
> Er spart bei der Eingangsschutzschaltung. Ein typischer Fehler für
> "Löter". "Denker" sparen an dieser Stelle nicht.

Für "Privatschaltungen" lohnt sich die Einsparung von Bauteilen,
die wenige Cent kosten, praktisch nie. Die Zeit, die man dann
möglicherweise zur Fehlersuche aufwendet, ist wesentlich wertvoller.
Gast #4216366
Lesenswert?

Harald W. schrieb:
> Für "Privatschaltungen" lohnt sich die Einsparung von Bauteilen,
> die wenige Cent kosten, praktisch nie.

... und erst recht nicht im industiellen Bereich, wo jeder ungeschützte 
Eingang den ganzen µC 'wegpusten' kann.
Für Löter ist es aber wohl wichtiger, die richtige Seite des Kolbens zu 
greifen ;-)
#4216767
Lesenswert?

@ Stefan Us (stefanus)

>Der Kondensator parallel zum Reedkontakt dient nicht nur der
>Entprellung. Er blockt auch Störungen durch elektromagnetische Wellen
>ab.

Nicht wirklich. Da hat mal wieder jemand das Thema Entprellung mit 
Snubber verwechselt.

>So viel zum Thema "unnötig".

Ist es in der Form auch. Eine Entprellung bzw. HF-Abblockung von Tastern 
macht man nämlich SO!

https://www.mikrocontroller.net/articles/Entprellung#Einfacher_Taster
#4216791
Lesenswert?

Falk B. schrieb:
>>So viel zum Thema "unnötig".
>
> Ist es in der Form auch. Eine Entprellung bzw. HF-Abblockung von Tastern
> macht man nämlich SO!
>
> https://www.mikrocontroller.net/articles/Entprellung#Einfacher_Taster

Beziehungsweise für die konkrete Anwendung in diesem Thread: gar nicht. 
Denn es interessiert ja für die Notabschaltung bei offenem Deckel gar 
nicht, ob der Kontakt prellt. Wenn der Nutzer die Start-Taste drückt, 
hat der Deckel zu zu sein (der Kontakt also geschlossen) - sonst wird 
der Befehl zum Start der Belichtung schlicht ignoriert. Und wenn bei 
laufender Belichtung der Kontakt bei auch nur einer Abfrage offen ist, 
dann wird der Belichtungsvorgang abgebrochen. Sofort. Vollkommen egal ob 
der Kontakt danach noch prellt oder nicht.

In der Praxis wird man aber sowieso alle Kontakte, Taster, Drehgeber 
und was weiß ich noch in einem zetralen Timerinterrupt abfragen und 
entprellen wollen. Da spielt es dann überhaupt keine Rolle, ob der 
Kontakt für Notabschaltung auch noch mit entprellt wird oder nicht.
Und die paar ms Verzögerung durch die Entprellung dürften auch kein 
Problem darstellen.
#4216802
Lesenswert?

Löter schrieb:
> Mir würde es schon bei einer einzigen Patine nicht gefallen unnötige
> Bauteile aufzulöten...

sehe ich auch so, Reedkontakt, dem sollte doch der interne pullup 
reichen und eine Entprellroutine (PeDa) die man für Tasten eh will.

sollte wirklich der interne pullup zu hochohmig sein weil die Leitung 
lang ist oder die Umgebung versifft lötet man halt einen externen pullup 
ein.
#4216959
Lesenswert?

Axel S. schrieb:

> Denn es interessiert ja für die Notabschaltung bei offenem Deckel gar
> nicht, ob der Kontakt prellt.


Genau so ist es.

Wobei ich an dieser Stelle überhaupt diesen Kontakt gar nicht unbedingt 
über den µC laufen lassen würde. Die Versorgung der Röhren über einen 
entsprechenden Kontakt führen, so dass die Notabschaltung mechanisch bei 
Deckelöffnung erzwungen wird, selbst wenn der unwahrscheinliche Fall 
eintritt, dass der µC abschmiert.
OP #4217555
Lesenswert?

Karl H. schrieb:
> Wobei ich an dieser Stelle überhaupt diesen Kontakt gar nicht unbedingt
> über den µC laufen lassen würde. Die Versorgung der Röhren über einen
> entsprechenden Kontakt führen, so dass die Notabschaltung mechanisch bei
> Deckelöffnung erzwungen wird, selbst wenn der unwahrscheinliche Fall
> eintritt, dass der µC abschmiert.

Ich könnte den Reedschalter als Notabschaltung nutzen. Der müsste doch 
dann nur entprechend ausgelegt sein. Gibt es günstige Reedschalter als 
Öffner, die ich in einen 230V AC Stromkreis einbauen kann?

Da es sich nur um ein Hobbyprojekt handelt und nur ich das Gerät 
bedienen werde, hat das Gerät nicht solche hohen 
Sicherungsaanforderungen.

Mechanisch ist leider aufgrund der Bauweise nicht mehr möglich.
Gast #4217820
Lesenswert?

Route 6. schrieb:
> Karl H. schrieb:
>> selbst wenn der unwahrscheinliche Fall
>> eintritt, dass der µC abschmiert.
>
> Wenn man die Probleme und Fragen der User hier im Forum liest, ist Dein
> genannter Fall der sicher, ständig und immer eintretende Zustand!
>
> Nicht nur deshalb sollte jeder, der irgend etwas mit Sicherheit
> entwirft, auf sowas
>> dass der µC abschmiert.
> vorbereitet sein.

Genau. Man kann froh sein, wenn der überhaupt läuft.
#4217963
Lesenswert?

Julian V. schrieb:
> Ich könnte den Reedschalter als Notabschaltung nutzen. Der müsste doch
> dann nur entprechend ausgelegt sein. Gibt es günstige Reedschalter als
> Öffner, die ich in einen 230V AC Stromkreis einbauen kann?

Ich würde den Reedkontakt eher nicht in den 230V Stromkreis legen. 
Verwendest du nicht sowieso ein Relais, um den 230V Kreis zu schalten? 
Dann pack den Reedkontakt doch auf die Niederspannungsseite.
(Firma: Q3) #4218055
Lesenswert?

Ich betreibe seit ca. 6 Monaten einen Arduino als "Sniffer" an einer 
fremden SPS (Steuerung Autowaschanlage), die mit 24V läuft. Dazu habe 
ich 12 St. 24-V-Reedrelais verwendet, die jeweils einen Arduino-Eingang 
auf Masse ziehen. Nach Plus (auf Arduino-Seite) habe ich zusätzlich je 
eine LED mit interner Strombegrenzung (spart den extra Widerstand) 
geschaltet, so dass man auch sieht, wenn geschaltet wird.

Zur SOftware-Entprellung benutze ich die Zählschleifen-Methode: Wird 
beim Abfragen ein High festgestellt, wird eine Variable inkrementiert 
bis max. zum Wert 20, wird Low festgestellt bis min. zur Null 
dekrementiert. Ist die Variable größer 10 werte ich den Eingang als 
High, sonst als Low. Die Zählschleife selber läuft ca. 10 mal schneller 
als das Setzen und Auslesen der Variablen, damit tritt auch kein 
Flattern um die 10 herum auf ...

Damit kann ich auch den Taktimpuls der Transportkette (ca. 5 Hz) noch 
problemlos erfassen. Die anderen Signale sind in meinem Falle 
unkritisch.
#4218061
Lesenswert?

Für alle die, die es noch nicht bemerkt haben:


In seinem Fall wird dieser EIngang nicht entprellt. Man braucht es 
schlicht und ergreifend nicht. Denn über diesen Pin muss keine Flanke 
festgestellt werden (na ja), sondern das ist eine reiner 
Zustandseingang.

Drückt der Benutzer auf 'Start' dann wird der Engang abgefragt, ob der 
Deckel geschlossen ist. Ist er nicht geschlossen (=Zustand) dann gehen 
die Lampen erst gar nicht an.
Während die Belichtung läuft wird laufend der Eingang erneut abgefragt, 
ob der Deckel immer noch geschlossen ist. Ist er nicht geschlossen, dann 
werden die Lampen abgeschaltet und werden auch nicht wieder erneut 
gestartet. Dazu muss der Benutzer erneut auf "Start" drücken.
An keiner Stelle spielt Prellen eine Rolle. Denn wenn die Lampen erst 
mal über den Deckelschalter aus sind, dann bleiben sie auch aus.
1
  while(1) {
2

3
    if( LampOn ) {
4
      if( DeckelOpen ) {
5
        TurnLampOff;
6
        LampOn = false;
7
        ErrorLedOn;
8
      }
9
    }
10

11
    else {
12
      if( Start_Pressed ) {
13
        if( !DeckelOpen ) {
14
          TurnLampOn;
15
          LampOn = true;
16
          ErrorLedOn;
17
        }
18
        else
19
          ErrorLedOff;
20
      }
21

22
....
23
    }
24
  }
25
}

eine andere Baustelle sind die Bedienertasten. Aber um die gehts ja 
nicht.
#4218063
Lesenswert?

Frank E. schrieb:
> Wird beim Abfragen ein High festgestellt, wird eine Variable
> inkrementiert bis max. zum Wert 20, wird Low festgestellt bis min. zur
> Null dekrementiert. Ist die Variable größer 10 werte ich den Eingang als
> High, sonst als Low.

Hmm. Klingt funktionsfähig, aber ich glaube besser wäre high bei >15 und 
Low bei <5, dazwischen den Wert halten? Dann sparst du dir das da:

Frank E. schrieb:
> Die Zählschleife selber läuft ca. 10 mal schneller als das Setzen und
> Auslesen der Variablen,

Sollte schneller sein. Gut, ist bei 5 Hz jetzt echt egal.

Zum Reedkontakt des TE:

Karl H. schrieb:
> In seinem Fall wird dieser EIngang nicht entprellt

Sehe ich auch so. Selbst den Startknopf muss er nicht umbedingt 
entprellen.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren