Magnetischen Schalter ans Arduino hängen

Liebes Forum

Ich habe diesen magnetischen Schalter von MEDER.

Wie muss ich das Ding an das Arduino-Board hängen, um zu wissen, ob der Schalter zu / bzw. ein Magnetfeld in der Nähe ist? Brauche ich noch weitere Bauteile? Einen Widerstand? Wie sieht der Aufbau aus?

Tausend Dank und Gruss – p

p3141: Wie muss ich das Ding an das Arduino-Board hängen, um zu wissen, ob der Schalter zu / bzw. ein Magnetfeld in der Nähe ist? Brauche ich noch weitere Bauteile? Einen Widerstand? Wie sieht der Aufbau aus?

Hänge den Schalter zwischen einen digitalen Pin, z. B. D2, und GND. In setup() des Sketches musst Du den Pin als Eingang definieren:

pinMode(D2, INPUT_PULLUP);

dann kannst Du mit

if(digitalRead(D2)==LOW)
  { digitalWrite(LED_BUILTIN, HIGH); }
else
  { digitalWrite(LED_BUILTIN, LOW); }

gucken, ob der Schalter geschlossen ist.

Weitere Bauteile brauchst Du nicht.

Gruß

Gregor

Aber dazu musst du im setup auch noch folgendes hinzufügen:

pinMode(LED_BUILTIN, OUTPUT);

Sonst geht die LED weder an, noch aus.

Bei deinem Sensor handelt es sich um einen einfachen Reedkontakt. Der detektiert kein Magnetfeld „in der Nähe“, sondern schliesst nur den Kontakt, wenn ein Magnet in passender Ausrichtung und Abstand an der richtigen Seite des Sensors gehalten wird.

Kommt auf die konkrete Anwendung an.

Vielen Dank für euere Antworten bzw. Hilfe.

Der passende Magnet wurde mir beim Kauf des «Reedkontakts» auch gerade verkauft.

Auf meinem Arduino UNO hat es mit folgendem Sketch bestens geklappt:

#include <Arduino.h>

void setup() {
  pinMode(2, INPUT_PULLUP);
  pinMode(LED_BUILTIN, OUTPUT);
}

void loop() {
  if (digitalRead(2) == LOW) {
    digitalWrite(LED_BUILTIN, HIGH);
  } else {
    digitalWrite(LED_BUILTIN, LOW);
  }
}

Nochmals vielen Dank und einen guten Start in die Woche – p

Kleine Info am Rande Reed Kontakte prellen sehr gerne. Evtl die Debounce Lib nutzen oder den Kontakt zu fuss entprellen also signal länger als 50ms da bzw weg dann erst zustandänderung. Oder per Hardware am Eingang.

Gruß
DerDani

volvodani:
Kleine Info am Rande Reed Kontakte prellen sehr gerne. Evtl die Debounce Lib nutzen oder den Kontakt zu fuss entprellen also signal länger als 50ms da bzw weg dann erst zustandänderung. Oder per Hardware am Eingang.

Gruß
DerDani

Danke für deinen Input.
Wie darf ich das genau verstehen? Einfach noch #include <Debounce.h> oben rein?

Ein Reedkontakt ist ein Schalter der magnetisch betätigt wird. Die möglichen Ströme uns Spannungen sind sehr begrenzt.

Reed Kontakte sind 2 ferromagnetische Metallzungen in einem Glasgefäß, die, wenn ein Magnet paralell hingehalten wird, sodaß eine Zunge durch den magnetischen Nordpol magnetisiert wird und die andere Zunge durch den magnetischen Südpol magnetisiert wird, sich anziehen und darum den Kontakt schließen. Durch Hilfsmagnete kann auch ein Öffner realisiert werden bzw die zum schalten notwendige Position des Schaltmagneten verändert werden. Dies alles ist relativ kritisch.

Ein Reedkontakt funktioniert nicht sicher und wiederholbar wenn man einen x-beliebigen Magneten irgendwie hinhält.

Grüße Uwe

p3141:
Wie darf ich das genau verstehen? Einfach noch #include <Debounce.h> oben rein?

Das wird nicht reichen.

Was genau soll der Reedkontakt machen ?
Evtl. benötigst du das Entprellen des Kontaktes ja nicht.

Wenn doch, dann sieh dir doch die Beispiele in der Library an. Da wirst du sicher was passendes finden.