Überspringen zu Hauptinhalt

Reed-Kontakt

Funktion

Ein Reed-Kontakt ist ein Schalter. Im Ruhezustand fließt kein Strom. Kommt eine Magnet in die Nähe des Reed-Kontaktes, schließt der Kontakt und Strom kann durchfließen. Ein Reed-Kontakt wird überall dort eingesetzt, wo es es um ein schnelles und kontaktloses Schalten geht.

Damit der Zustand der Schaltung (offen oder geschlossenen) vom Arduino erkannt wird, muss hinter der Schaltung ein hochohmiger Widerstand (10 kΩ) zur Masse eingebaut werden. Die Schaltung kann als digitale Eingabe (Input) an jedem Pin am Arduino erkannt werden (0…13 sowie A0…A5).

Ideen

  • An dem kleinen Spielzeug-Auto ist ein kleiner Magnet angeklebt, der den Reed-Kontakt im Boden schaltet kann.
    • Fährt ein Auto über eine rote Ampel, wird ein Blitzer ausgelöst.
    • Es wird die Geschwindigkeit eines Fahrzeugs über zwei Reed-Kontakten gemessen.
    • Bei einem Haus wird das Ankommen oder Wegfahren eines Autos registriert. Dadurch öffnet sich die Garage automatisch und die Lampen/Heizungen gehen an bzw. aus.

Bauteile

Eingabe

1x Reed-Kontakt
1x Festwiderstand 10 kΩ

Ausgabe
Für das Beispiel:

  • 1x LED
  • 1x Festwiderstand 330 Ω

Schaltung

Der Reed-Kontakt ist an 5V und einem Pin (z.B. 4) angeschlossen.
Der Festwiderstand (10 kΩ) liegt hinter dem Reed-Kontakt und an GND.

Die LED ist an der Anode mit einem Widerstand (z.B. 330 Ohm) an einem digitalen Pin (z.B. 7) angeschlossen. Die Kathode ist mit GND verbunden.

Block-Programmierung

Schrift-Programmierung

//Erstelle Variablen mit der Pinbelegung.
int _led_Gelb = 7;
int _input_LDR = A0;

//Lege fest, ob die Pins Ein- oder Ausgänge sind.
void setup()
{
    pinMode(_led_Gelb, OUTPUT);
    pinMode(_input_LDR, INPUT);
    Serial.begin(9600);
}

//Führe das Programm aus.
void loop()
{
    //Eine Wenn-Dann-Ansonsten-Abfrage.
    if ( analogRead(_input_LDR) <= 512 ) {
        digitalWrite(_led_Gelb, HIGH);
    } else {
        digitalWrite(_led_Gelb, LOW);
    }
    
    //Übertrag das Eingangssignals an den Computer.
    Serial.println(analogRead(_input_LDR));
    delay(50);
}

Debug

An den Anfang scrollen