Veröffentlicht 2026-04-29
Verwenden Sie ein Arduino-Entwicklungsboard, um den Drehwinkel des Servos mithilfe einer Taste zu steuern. Dies ist eine der praktischsten Grundfunktionen in der Elektronikproduktion. Dieser Artikel bietet direkt eine vollständige Lösung. Verwenden Sie einen gewöhnlichen Knopf. Beim Drücken dreht sich das Servo um 90 Grad, beim Loslassen kehrt es auf 0 Grad zurück. Sie benötigen lediglich ein Arduino-Entwicklungsboard, ein 9-g-Servo, einen Knopf, ein paar Dupont-Drähte und ein Steckbrett. Gemäß dem Schaltplan und Code unten kann dies in 30 Minuten abgeschlossen werden.
Liste der benötigten Hardware:
Arduino-Entwicklungsboard (jedes Modell ist akzeptabel, in diesem Artikel wird das gängigste Modell als Beispiel genommen)
SG90 9g Servo (Servo mit geringer Leistung, geeignet für Einsteiger)
Touch-Taste (6x6x5mm vierpolig)
10kΩ-Widerstand (für Pull-Down-Widerstand)
Steckbrett und etwas Dupont-Draht
Verdrahtungsschritte (müssen präzise sein):
1. Verbinden Sie die Servosignalleitung (normalerweise orange oder gelb) mit Pin 9 des Arduino
2. Schließen Sie das Servostromkabel (rot) an den 5-V-Pin an
3. Verbinden Sie das Servo-Erdungskabel (braun oder schwarz) mit dem GND-Pin

4. Ein Pin der Taste ist mit 5 V verbunden und der andere Pin ist mit Pin 2 verbunden.
5. Schließen Sie einen 10-kΩ-Pulldown-Widerstand parallel zwischen Pin 2 und GND an, um sicherzustellen, dass der Eingang LOW ist, wenn er nicht gedrückt wird.
Ein häufiger Fehler besteht darin, dass das Weglassen des Pulldown-Widerstands dazu führt, dass der Tastenzustand unregelmäßig springt. Ein Ende des Widerstands ist mit Pin 2 verbunden und das andere Ende ist mit GND verbunden.
#enthaltenServoMeinServo; //Servoobjekt erstellen int buttonPin = 2; //Button-Verbindungspin int buttonState = 0; //Status der Speicherschaltfläche intServoPos = 0; // Aktueller Servowinkel void setup() { myServo.attach(9); // Servosignalleitung an Pin 9 anschließen pinMode(buttonPin, INPUT); // Button-Pin als Eingang festlegen myServo.write(0); // Servowinkel auf 0 Grad initialisieren } void loop() { buttonState = digitalRead(buttonPin); // Den Zustand der Schaltfläche lesen if (buttonState == HIGH) { // Beim Drücken myServo.write(90); // Das Servo dreht sich um 90 Grad. Verzögerung (15); // Warten, bis das Servo die Position erreicht } else { // Wenn nicht gedrückt, myServo.write(0); // Das Servo kehrt auf 0 Grad zurück Verzögerung (15); } }
Die Kerncodelogik besteht darin, digitalRead() zu verwenden, um den Pegel von Pin 2 kontinuierlich zu erkennen。Sobald die Taste gedrückt wird, d. h. wenn sich der Pin im HIGH-Zustand befindet, führt der Servo den Schreibvorgang (90) aus.。Wenn die Taste losgelassen wird, kehrt der Servo zum Schreibbetrieb (0) zurück.. Durch strukturiertes Schreiben unterteilen wir das Programm in vier klar organisierte Module: Initialisierung, Lesen, Beurteilung und Ausführung, sodass Sie es in den folgenden Phasen in einen Multi-Key- oder Multi-Angle-Steuerungsmodus erweitern können.
F: Das Servo bewegt sich überhaupt nicht. Was könnte der Grund sein?
Unzureichende Stromquelle. Das Servo muss separat mit Strom versorgt werden. Das 9-g-Servo kann direkt die 5 V von Arduino nutzen, und das größere Servo muss über eine externe Stromversorgung mit Strom versorgt werden.
F: Drücken Sie die Taste einmal und das Servo dreht sich einmal. Wird es nach der Veröffentlichung auf Null zurückgehen?
A: Es liegt ein logischer Fehler im Code vor. Stellen Sie sicher, dass Sie die oben angegebene if-else-Struktur verwenden, anstatt die Bedingungen erst nach dem Drücken festzulegen.
F: Was soll ich tun, wenn das Lenkgetriebe wackelt oder die Lenkung falsch ist?

1. Prüfen Sie, ob die Signalleitung locker ist. 2. Fügen Sie nach write() eine Verzögerung (15) hinzu. 3. Dadurch erhält das Servo ausreichend Aktionszeit.
F: Wie kann ich die Drehung um 90 Grad ändern, indem ich einmal drücke, und auf Null zurückstellen, indem ich noch einmal drücke?
Um den Status aufzuzeichnen, müssen Variablen hinzugefügt werden. Immer wenn erkannt wird, dass die Taste gedrückt wird, wird das Flag-Bit geändert und der entsprechende Winkel geschrieben.
F: Die Tasten reagieren langsam und manchmal erfolgt keine Reaktion?
Aufgrund des mechanischen Jitters der Tasten können Sie nach dem Erkennen der Pegeländerung eine Verzögerung (10) hinzufügen, um den Jitter zu beseitigen, oder die Bounce2-Bibliothek verwenden。
Nachdem Sie die grundlegende Ein-Knopf-Steuerung beherrschen, können Sie die folgenden erweiterten Funktionen problemlos implementieren:
1. Zwei Tasten steuern jeweils den Vorwärts- und den Rückwärtsgang.
Taste A: Drücken Sie, um auf 180 Grad zu wechseln, und lassen Sie sie los, um auf 0 Grad zurückzukehren
Taste B: Drücken Sie, um auf 45 Grad zu wechseln, und lassen Sie sie los, um auf 0 Grad zurückzukehren
Ändern Sie den Code: Fügen Sie einen zweiten Button-Pin hinzu und beurteilen Sie ihn separat
2. Einzelne Taste zum Durchlaufen dreier Winkel
// Der Winkel wird bei jedem Drücken akkumuliert, 0→60→120→0 loop int angles[] = {0, 60, 120}; int index = 0; if (buttonState == HIGH && !flag) { // Anti-Doppelklick index = (index+1) % 3; myServo.write(angles[index]); Flag = wahr; }
3. Lange drücken, um kontinuierlich zu drehen
Erkennen Sie die Tastendauer und erhöhen Sie den Winkel weiter, nachdem er 500 ms überschritten hat, bis er losgelassen wird.
Im Folgenden finden Sie vollständige Codebeispiele mit erweiterten Funktionen. Die Prinzipien basieren alle auf der strukturierten Schreiblogik dieses Artikels, also einer klaren Eingabe. Diese Eingabe besteht aus Schlüsselzuständen, gefolgt von der Verarbeitung, also der Winkelberechnung, und schließlich der Ausgabe, die als Servobefehl verwendet wird.
Betonung des Kernpunkts: Die Essenz der Arduino-Tastensteuerung des Servos ist die Umwandlung von „digitalen Signalen in PWM-Signale“. Die Tasten geben hohe und niedrige Pegel an und das Servo dreht sich entsprechend dem Pegelwert in den voreingestellten Winkel.Solange die Verdrahtung korrekt ist (der Pulldown-Widerstand darf nicht weggelassen werden) und die Codelogik if-else oder eine Zustandsmaschine verwendet, kann eine stabile Steuerung erreicht werden.。
Hier sind drei Handlungsvorschläge, die Sie sofort umsetzen können:
1. Heute Abend werde ich eine Basisversion erstellen: Basierend auf dem Schaltplan und dem Code in diesem Artikel baue ich mit dem Steckbrett eine komplette Schaltung und erlebe persönlich die Szene, in der sich das Servo dreht, wenn der Knopf gedrückt wird.
2. Erkunden Sie das Experiment durch Ändern des Winkelwerts: Ändern Sie den Zustand von 90 Grad in zufällige numerische Formen wie 45 Grad, 135 Grad, 180 Grad usw., achten Sie sorgfältig auf die durch die Beobachtung verursachten Änderungen der Lenkposition und verstehen Sie dann, dass der Parameterbereich der Funktion write () von null bis 180 Grad reicht.
3. Fügen Sie eine zweite Schaltfläche hinzu und kopieren Sie das Schaltflächenlesemodul anhand des aktuellen Codes, um einen Produktprototyp mit echten interaktiven Eigenschaften zu erhalten, der über verschiedene Schaltflächen aus unterschiedlichen Winkeln gesteuert werden kann.
Sie verfügen bereits über alle wichtigen Kenntnisse, um knopfgesteuerte Servos von Grund auf zu entwickeln. Öffnen Sie nun bitte die Arduino IDE, schließen Sie die Hardware an und überprüfen Sie jeden Schritt selbst.
Aktualisierungszeit: 29.04.2026
Wenden Sie sich an den Produktspezialisten von Kpower, um einen geeigneten Motor oder ein geeignetes Getriebe für Ihr Produkt zu empfehlen.