Einfaches Arduino-Projekt: Steuere einen Servo mit einem Taster 180 Grad auf 0 und zurück
Einführung
Dieser Artikel erklärt ein einfaches Arduino-Projekt, das einen Taster verwendet, um einen Servomotor zu steuern. Ein Servomotor ist ein präziser Motor, der sich in eine bestimmte Position drehen kann, was ihn ideal für Anwendungen wie Robotik und Automatisierung macht. Dieses Projekt lässt einen Servo von 0 auf 180 Grad drehen, wenn eine Taste gedrückt wird, und auf 0 zurückkehren, wenn sie losgelassen wird.
Projektkomponenten und Verdrahtung
Sie benötigen ein Arduino-Board, einen Servomotor und einen Taster.
Verdrahtungsanweisungen:
- Servomotor: Verbinden Sie das Signalkabel (normalerweise gelb/orange) mit Pin 3 des Arduino, das Stromkabel (rot) mit 5V und das Massekabel (schwarz/braun) mit GND.
- Taster: Verbinden Sie ein Bein mit Digitalpin 2 und das andere Bein mit einem GND-Pin. Das ist alles! Durch die Verwendung des internen Pull-up-Widerstands des Arduino benötigen Sie keinen externen Widerstand.
Der Code erklärt
Das Programm ist in drei Hauptteile gegliedert: die Pin-Definitionen, die setup()-Funktion und die loop()-Funktion.
Pin-Definitionen
Dieser Abschnitt richtet die erforderlichen Bibliotheken ein und weist den verwendeten Pins aussagekräftige Namen zu.
#include <Servo.h>
const int servoPin = 3;
const int buttonPin = 2;
Servo myServo;
Die setup()-Funktion
Die setup()-Funktion enthält Code, der nur einmal ausgeführt wird, wenn das Arduino-Board eingeschaltet oder zurückgesetzt wird. Sie wird für die anfängliche Konfiguration verwendet.
void setup() {
myServo.attach(servoPin);
pinMode(buttonPin, INPUT_PULLUP);
myServo.write(0);
}
Die entscheidende Änderung ist pinMode(buttonPin, INPUT_PULLUP);. Dies aktiviert einen internen Widerstand, der die Spannung des Pins auf HIGH zieht. Wenn Sie die Taste drücken, verbindet sie den Pin mit Masse, und die Spannung fällt auf LOW.
Die loop()-Funktion
Die loop()-Funktion enthält die Hauptprogrammlogik und läuft wiederholt für immer, nachdem die setup()-Funktion abgeschlossen ist.
void loop() {
int buttonState = digitalRead(buttonPin);
if (buttonState == LOW) {
myServo.write(180);
} else {
myServo.write(0);
}
}
Die Logik hier ist nun umgekehrt. Da der Tastendruck ein LOW-Signal ergibt, wird die Bedingung if (buttonState == LOW) verwendet, um den Servo auf 180 Grad zu bewegen.
#include <Servo.h>
/*
* This is sketch for controlling servo motor. when push button is pressed, the servo moves to 180 degreees and stays there. when the push button is released, the servo motor returns back to 0 degree.
*/
// Define the pin for the servo motor
const int servoPin = 3;
// Define the pin for the push button
const int buttonPin = 2;
// Create a Servo object
Servo myServo;
void setup() {
// Attach the Servo object to the servo pin
myServo.attach(servoPin);
// Set the button pin as an input
pinMode(buttonPin, INPUT);
// Start the servo at 0 degrees
myServo.write(0);
}
void loop() {
// Read the state of the push button
int buttonState = digitalRead(buttonPin);
// If the button is pressed (HIGH)
if (buttonState == HIGH) {
// Move the servo to 180 degrees
myServo.write(180);
} else {
// If the button is released (LOW), move the servo back to 0 degrees
myServo.write(0);
}
}
Dinge, die Sie vielleicht brauchen
-
AmazonServomotor auf Amazonamzn.to
-
AliExpressKaufen Sie den SG90 Servomotor 180 oder 360 von AliExpresss.click.aliexpress.com
Ressourcen & Referenzen
Noch keine Ressourcen vorhanden.
Dateien📁
Keine Dateien verfügbar.