Arduino Nano - Knopfsteuerung für elektromagnetisches Schloss

Die Anleitung zeigt dir, wie man einen Arduino Nano und einen Knopf verwendet, um das Türschloss durch ein elektromagnetisches Schloss zu steuern. Wenn der Knopf gedrückt wird, wird die Tür für eine bestimmte Zeit (z. B. 10 Sekunden) entsperrt. Danach wird sie wieder verriegelt.

Wir gehen in zwei Schritten vom Leichten zum Schweren vor:

Erforderliche Hardware

1×Official Arduino Nano
1×Alternativ: DIYables ATMEGA328P Nano Development Board
1×USB-A-zu-Mini-B-Kabel
1×Elektromagnetisches Schloss
1×Relais
1×12V Netzteil
1×DC-Stromanschluss
1×Breadboard-Taster mit Kappe
1×Breadboard-Taster-Kit
1×Panel-Drucktaster
1×Taster-Modul
1×Breadboard
1×Verbindungskabel
1×(Empfohlen) Schraubklemmen-Erweiterungsboard für Arduino Nano
1×(Empfohlen) Breakout-Erweiterungsboard für Arduino Nano
1×(Empfohlen) Stromverteiler für Arduino Nano

Oder Sie können die folgenden Kits kaufen:

1×DIYables Sensor-Kit (30 Sensoren/Displays)
1×DIYables Sensor-Kit (18 Sensoren/Displays)
Offenlegung: Einige der in diesem Abschnitt bereitgestellten Links sind Amazon-Affiliate-Links. Wir können eine Provision für Käufe erhalten, die über diese Links getätigt werden, ohne zusätzliche Kosten für Sie. Wir schätzen Ihre Unterstützung.

Über Schaltfläche und elektromagnetische Verriegelung

Wenn Sie mit elektromagnetischen Schlössern und Tastern nicht vertraut sind (einschließlich Pinbelegung, Funktionsweise und Programmierung), können Ihnen die folgenden Tutorials helfen:

Verdrahtungsdiagramm

Arduino Nano-Taste Verdrahtungsdiagramm für elektromagnetische Türverriegelung

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.

Siehe Der beste Weg, den Arduino Nano und andere Komponenten mit Strom zu versorgen.

Arduino Nano Code - Taste steuert elektromagnetische Türverriegelung ohne Entprellung

/* * Dieser Arduino Nano Code wurde von newbiely.de entwickelt * Dieser Arduino Nano Code wird der Öffentlichkeit ohne jegliche Einschränkung zur Verfügung gestellt. * Für vollständige Anleitungen und Schaltpläne besuchen Sie bitte: * https://newbiely.de/tutorials/arduino-nano/arduino-nano-button-control-electromagnetic-lock */ #define BUTTON_PIN 8 // The Arduino Nano pin connected to button's pin #define RELAY_PIN 2 // The Arduino Nano pin connected to relay's pin int prev_button_state; // The previous state of button int button_state; // The current state of button void setup() { Serial.begin(9600); // Initialize the Serial to communicate with the Serial Monitor. pinMode(BUTTON_PIN, INPUT_PULLUP); // set arduino pin to input pull-up mode pinMode(RELAY_PIN, OUTPUT); // set arduino pin to output mode digitalWrite(RELAY_PIN, HIGH); // lock the door button_state = digitalRead(BUTTON_PIN); } void loop() { prev_button_state = button_state; // save the last state button_state = digitalRead(BUTTON_PIN); // read new state if(prev_button_state == HIGH && button_state == LOW) { Serial.println("The button is pressed"); digitalWrite(RELAY_PIN, LOW); // unlock the door in 10 seconds delay(10000); // 10 seconds digitalWrite(RELAY_PIN, HIGH); // lock the door again } }

Schnelle Schritte

  • Schließen Sie einen Arduino Nano über ein USB-Kabel an einen PC an.
  • Öffnen Sie die Arduino IDE, wählen Sie das passende Board und den Port aus.
  • Kopieren Sie den obigen Code und öffnen Sie ihn in der Arduino IDE.
  • Klicken Sie auf die Hochladen-Schaltfläche in der Arduino IDE, um den Code auf den Arduino Nano hochzuladen.
  • Platzieren Sie die Ankerplatte nahe dem Elektromagneten.
  • Drücken Sie den Knopf einmal.
  • Beobachten Sie die Anziehung zwischen der Ankerplatte und dem Elektromagneten 10 Sekunden lang.

Code-Erklärung

Schau dir die Zeile-für-Zeile-Erklärung an, die in den Kommentaren des Quellcodes enthalten ist!

※ Notiz:

In der Praxis funktioniert der oben erwähnte Code möglicherweise nicht immer korrekt. Um seine ordnungsgemäße Funktion zu gewährleisten, müssen wir die Entprellung des Tasters durchführen. Die Entprellung des Tasters ist für Anfänger keine einfache Aufgabe. Allerdings lässt sich dies dank der ezButton-Bibliothek einfach bewerkstelligen.

Arduino Nano Code - Taster steuert elektromagnetisches Schloss mit Entprellung

Warum ist das Entprellen notwendig? Siehe das Arduino Nano - Button Debounce Tutorial für weitere Informationen.

/* * Dieser Arduino Nano Code wurde von newbiely.de entwickelt * Dieser Arduino Nano Code wird der Öffentlichkeit ohne jegliche Einschränkung zur Verfügung gestellt. * Für vollständige Anleitungen und Schaltpläne besuchen Sie bitte: * https://newbiely.de/tutorials/arduino-nano/arduino-nano-button-control-electromagnetic-lock */ #include <ezButton.h> #define BUTTON_PIN 8 // The Arduino Nano pin connected to button's pin #define RELAY_PIN 2 // The Arduino Nano pin connected to relay's pin ezButton button(BUTTON_PIN); // create ezButton object for pin 7; void setup() { Serial.begin(9600); // Initialize the Serial to communicate with the Serial Monitor. pinMode(RELAY_PIN, OUTPUT); // set arduino pin to output mode button.setDebounceTime(50); // set debounce time to 50 milliseconds digitalWrite(RELAY_PIN, HIGH); // lock the door } void loop() { button.loop(); // MUST call the loop() function first if(button.isPressed()) { Serial.println("The button is pressed"); digitalWrite(RELAY_PIN, LOW); // unlock the door in 10 seconds delay(10000); // 10 seconds digitalWrite(RELAY_PIN, HIGH); // lock the door again } }

Schnelle Schritte

  • Installieren Sie die ezButton-Bibliothek. Siehe How To für Anleitungen.
  • Öffnen Sie den Code in der Arduino-IDE und klicken Sie auf die Upload-Schaltfläche, um ihn auf den Arduino Nano hochzuladen.
  • Bringen Sie die Ankerplatte nahe an den Elektromagneten heran und drücken Sie einmal den Knopf.
  • Beobachten Sie die Anziehung zwischen der Ankerplatte und dem Elektromagneten für 10 Sekunden.

※ Notiz:

Im obigen Code haben wir die Delay-Funktion verwendet. Folglich müssen wir kein Debouncing für den Knopf implementieren. Trotzdem bieten wir den Code mit Entprellung weiterhin an, falls Sie zusätzliche Aufgaben ausführen möchten, ohne die Delay-Funktion zu verwenden. Weitere Informationen finden Sie unter Wie man millis() statt delay() verwendet.

Video Tutorial

Wir erwägen die Erstellung von Video-Tutorials. Wenn Sie Video-Tutorials für wichtig halten, abonnieren Sie bitte unseren YouTube-Kanal , um uns zu motivieren, die Videos zu erstellen.

※ UNSERE NACHRICHTEN

  • Sie können gerne den Link zu diesem Tutorial teilen. Bitte verwenden Sie jedoch unsere Inhalte nicht auf anderen Websites. Wir haben viel Mühe und Zeit in die Erstellung der Inhalte investiert, bitte respektieren Sie unsere Arbeit!