Arduino Nano - Tastenfeld - Servomotor

Dieses Tutorial zeigt Ihnen, wie Sie Arduino Nano und ein Keypad verwenden, um einen Servomotor zu steuern. Im Detail:

Der Arduino Nano-Code kann mehrere Passwörter akzeptieren.

Erforderliche Hardware

1×Official Arduino Nano
1×Alternativ: DIYables ATMEGA328P Nano Development Board
1×USB-A-zu-Mini-B-Kabel
1×Tastenfeld
1×Servo-Motor
1×5V Netzteil
1×Verbindungskabel
1×(Optional) DC-Stromanschluss
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 Tastenfeld und Servomotor

Wenn Sie mit dem Keypad und dem Servomotor (einschließlich Pin-Belegung, Funktionsweise und Programmierung) nicht vertraut sind, können Ihnen die folgenden Tutorials helfen:

Verdrahtungsdiagramm

Arduino Nano Keypad Servomotor Verdrahtungsdiagramm

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

Es ist zu beachten, dass das oben gezeigte Verdrahtungsdiagramm nur für einen Servomotor mit geringem Drehmoment geeignet ist. Falls der Motor statt zu drehen vibriert, muss eine externe Stromquelle zum Betrieb des Servomotors verwendet werden. Das folgende Verdrahtungsdiagramm zeigt, wie der Servomotor an eine externe Stromquelle angeschlossen wird.

Arduino Nano Tastenfeld-Servomotor-Verdrahtungsdiagramm

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.

Bitte vergessen Sie nicht, GND des externen Netzteils mit GND des Arduino zu verbinden.

Arduino Nano Code - dreht Servo-Motor, wenn das Passwort korrekt ist

Wenn das Passwort korrekt ist, wird der Servomotor für 5 Sekunden auf 90° eingestellt. Danach wird er auf 0° zurückgesetzt.

/* * 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-keypad-servo-motor */ #include <Keypad.h> #include <Servo.h> #define SERVO_PIN 10 // // The Arduino Nano pin connected to the servo motor Servo servo; // servo motor const int ROW_NUM = 4; // four rows const int COLUMN_NUM = 4; // four columns const byte pin_rows[ROW_NUM] = {9, 8, 7, 6}; // The Arduino Nano pin connected to the row pins of the keypad const byte pin_column[COLUMN_NUM] = {5, 4, 3, 2}; // The Arduino Nano pin connected to the column pins of the keypad char key_layout[ROW_NUM][COLUMN_NUM] = { {'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', '8', '9', 'C'}, {'*', '0', '#', 'D'} }; Keypad keypad = Keypad(makeKeymap(key_layout), pin_rows, pin_column, ROW_NUM, COLUMN_NUM); const String password_1 = "4321"; // change your password here const String password_2 = "09876"; // change your password here const String password_3 = "9765"; // change your password here String input_password; int angle = 0; // The current angle of servo motor unsigned long prev_time; void setup() { Serial.begin(9600); input_password.reserve(32); // maximum password size is 32, change if needed servo.attach(SERVO_PIN); servo.write(0); // rotate servo motor to 0° prev_time = millis(); } void loop() { char key = keypad.getKey(); if (key) { Serial.println(key); if (key == '*') { input_password = ""; // reset the input password } else if (key == '#') { if (input_password == password_1 || input_password == password_2 || input_password == password_3) { Serial.println("The correct password! Rotating Servo Motor to 90°"); angle = 90; servo.write(angle); prev_time = millis(); } else { Serial.println("The incorrect password! try again"); } input_password = ""; // reset the input password } else { input_password += key; // append new character to input password string } } if (angle == 90 && (millis() - prev_time) > 5000) { // 5 seconds angle = 0; servo.write(angle); Serial.println("Rotating Servo Motor to 0°"); } }

Schnelle Schritte

  • Verbinde ein USB-Kabel zwischen dem Arduino Nano und dem PC.
  • Öffne die Arduino IDE und wähle das richtige Board und den richtigen Port aus.
  • Klicke auf das Bibliotheken-Symbol in der linken Leiste der Arduino IDE.
  • Suche nach „keypad“ und finde die von Mark Stanley und Alexander Brevig erstellte keypad-Bibliothek.
  • Dann klicke auf die Installieren-Schaltfläche, um die Installation der keypad-Bibliothek abzuschließen.
Arduino Nano Keypad-Bibliothek
  • Kopieren Sie den Code und öffnen Sie ihn mit der Arduino-IDE.
  • Klicken Sie in der Arduino-IDE auf die Hochladen-Schaltfläche, um den Code an den Arduino Nano zu senden.
Arduino IDE Code hochladen
  • Geben Sie 12345# in das Tastenfeld ein, gefolgt von 09876#.
  • Überprüfen Sie den Seriellen Monitor und beobachten Sie den Zustand des Servomotors.
COM6
Send
The incorrect password! try again The correct password! Rotating Servo Motor to 90° Rotating Servo Motor to 0°
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Code-Erklärung

Die gültigen Passwörter sind im Arduino Nano-Code vordefiniert. Eine Zeichenkette, die als input_password bezeichnet wird, wird verwendet, um das von Benutzern eingegebene Passwort zu speichern. Auf dem Tastenfeld werden zwei Tasten (* und #) für spezielle Zwecke verwendet: das Löschen des Passworts und das Beenden des Passworts. Wenn eine Taste gedrückt wird:

  • Wenn der Schlüssel nicht zu den zwei speziellen Tasten gehört, wird er dem input_password hinzugefügt.
  • Wenn der Schlüssel * ist, wird das input_password gelöscht. Dies kann verwendet werden, um die Passworteingabe zu starten oder neu zu starten.
  • Wenn der Schlüssel #:
    • Der Arduino Nano vergleicht input_password mit den vordefinierten Passwörtern. Wenn es mit einem davon übereinstimmt, wird der Servomotor auf 90° gedreht.
    • Unabhängig davon, ob das Passwort korrekt ist oder nicht, wird input_password für die nächste Eingabe gelöscht.
    • Nach einem Timeout dreht der Arduino Nano den Servomotor auf 0°.

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!