Arduino - Tastatur - Servomotor

In diesem Tutorial lernen wir, wie man ein Tastenfeld, einen Servomotor und Arduino zusammen verwendet:

Erforderliche Hardware

1×Arduino Uno R3
1×USB 2.0 Kabel Typ A/B (für USB-A PC)
1×USB 2.0 Kabel Typ C/B (für USB-C PC)
1×Tastenfeld 3x4 and 4x4 Kit
1×(Alternativ) Tastenfeld 3x4
1×(Alternativ) Tastenfeld 4x4
1×Servo-Motor
1×5V Netzteil
1×DC-Stromanschluss
1×Verbindungskabel
1×(Empfohlen) Schraubklemmenblock-Shield für Arduino Uno
1×(Empfohlen) Breadboard-Shield für Arduino Uno
1×(Empfohlen) Gehäuse für Arduino Uno
1×(Empfohlen) Prototyping-Grundplatte & Breadboard-Kit für Arduino Uno

Oder Sie können die folgenden Kits kaufen:

1×DIYables STEM V3 Starter-Kit (Arduino enthalten)
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 nichts über Tastenfeld und Servomotor (Pinbelegung, wie sie funktionieren, wie man sie programmiert ...) wissen, lernen Sie in den folgenden Tutorials darüber:

Verdrahtungsdiagramm

Arduino-Tastfeld-Servomotor-Verdrahtungsdiagramm

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

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

Der folgende Code dreht den Servomotor auf 90° für 5 Sekunden, wenn das Passwort korrekt ist. Nach 5 Sekunden dreht er den Servomotor auf 0°.

/* * Dieser Arduino Code wurde von newbiely.de entwickelt * Dieser Arduino 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/arduino-keypad-servo-motor */ #include <Keypad.h> #include <Servo.h> #define ROW_NUM 4 // four rows #define COLUMN_NUM 4 // four columns #define SERVO_PIN A0 // // the Arduino pin, which connects to the servo motor Servo servo; // servo motor char keys[ROW_NUM][COLUMN_NUM] = { {'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', '8', '9', 'C'}, {'*', '0', '#', 'D'} }; byte pin_rows[ROW_NUM] = {9, 8, 7, 6}; //connect to the row pinouts of the keypad byte pin_column[COLUMN_NUM] = {5, 4, 3, 2}; //connect to the column pinouts of the keypad Keypad keypad = Keypad( makeKeymap(keys), pin_rows, pin_column, ROW_NUM, COLUMN_NUM ); const String password_1 = "ABC1234"; // change your password here const String password_2 = "5642B"; // 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 lastTime; 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° lastTime = 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 password is correct, rotating Servo Motor to 90°"); angle = 90; servo.write(angle); lastTime = millis(); } else { Serial.println("The password is incorrect, try again"); } input_password = ""; // reset the input password } else { input_password += key; // append new character to input password string } } if (angle == 90 && (millis() - lastTime) > 5000) { // 5 seconds angle = 0; servo.write(angle); Serial.println("Rotating Servo Motor to 0°"); } }

Schnelle Schritte

  • Schließe Arduino über ein USB-Kabel an den PC an.
  • Öffne die Arduino-IDE, wähle das richtige Board und den richtigen Port.
  • Navigiere zum Bibliotheken-Symbol in der linken Leiste der Arduino-IDE.
  • Suche “keypad”, und finde dann die keypad-Bibliothek von Mark Stanley, Alexander Brevig.
  • Klicke auf die Schaltfläche Installieren, um die keypad-Bibliothek zu installieren.
Arduino-Tastaturbibliothek
  • Kopieren Sie den obigen Code und öffnen Sie ihn mit der Arduino IDE
  • Klicken Sie in der Arduino IDE auf die Schaltfläche Upload, um den Code auf den Arduino hochzuladen
Code in der Arduino-IDE hochladen
  • Drücken Sie 12345#
  • Drücken Sie 5642B#
  • Sehen Sie das Ergebnis im Serial Monitor und den Zustand des Servomotors
COM6
Send
The password is incorrect, try again The password is correct, rotating Servo Motor to 90° Rotating Servo Motor to 0°
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Code-Erklärung

Autorisierte Passwörter sind im Arduino-Code vordefiniert.

Eine Zeichenkette wird verwendet, um das von Benutzern eingegebene Passwort zu speichern, genannt input_password. Am Tastenfeld werden zwei Tasten (* und #) für spezielle Zwecke verwendet: Passwort löschen und Passwort beenden. Wenn eine Taste am Tastenfeld gedrückt wird:

  • Wenn die gedrückte Taste nicht zu zwei speziellen Tasten gehört, wird sie an input_password angehängt.
  • Wenn die gedrückte Taste * ist, input_password wird gelöscht. Sie können es verwenden, um die Eingabe des Passworts zu starten oder neu zu starten.
  • Wenn die gedrückte Taste #:
    • Das input_password wird mit den vordefinierten Passwörtern verglichen. Wenn es mit einem der vordefinierten Passwörter übereinstimmt, drehen Sie den Servomotor um 90°.
    • Unabhängig davon, ob das Passwort korrekt ist oder nicht, wird das input_password für die nächste Eingabe gelöscht.

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!