Einen Servo mit Drucktastern mit einem Arduino steuern

Einen Servo mit Drucktastern mit einem Arduino steuern

In diesem Tutorial lernen wir, wie man einen Servomotor mit zwei Drucktastern steuert, einen zum Bewegen des Servos nach links und einen zum Bewegen nach rechts. Wenn Sie den rechten Taster drücken, bewegt sich das Servo um 10 Grad nach rechts, und wenn Sie den linken Taster drücken, bewegt es sich um denselben Betrag nach links. Wenn Sie einen Taster gedrückt halten, bewegt sich das Servo weiterhin in diese Richtung, bis Sie ihn loslassen.

Dieses Projekt ist eine hervorragende Möglichkeit zu verstehen, wie man Tasten mit einem Servomotor mithilfe von Arduino verbindet. Wir behandeln die notwendigen Hardwarekomponenten, die Verkabelungsanleitung und den Code, der erforderlich ist, damit alles funktioniert. Für ein klareres Verständnis können Sie sich das Video ansehen, das dieses Tutorial begleitet (im Video bei 01:00).

Hardware erklärt

Für dieses Projekt benötigen Sie ein Arduino-Board, einen Servomotor und zwei Drucktaster. Der Servomotor ist für die Bewegung verantwortlich, während die Drucktaster als Eingaben dienen, um die Richtung dieser Bewegung zu steuern. Das Arduino-Board verarbeitet diese Eingaben und sendet die entsprechenden Signale an den Servomotor.

Der Servomotor arbeitet auf Basis von Pulsweitenmodulation (PWM)-Signalen. Durch das Senden unterschiedlicher Pulsbreiten können Sie den Winkel des Servos steuern. Die Drucktasten werden an digitale Eingangspins des Arduino angeschlossen, und wir verwenden interne Pull-up-Widerstände, um die Verkabelung zu vereinfachen.

Datenblattdetails

HerstellerVerschiedenes
TeilenummerSG90
Logik-/I/O-Spannung5 V
Versorgungsspannung4.8-6 V
Ausgangsstrom (pro Kanal)1,5 A max
Spitzenstrom (pro Kanal)max. 2,5 A
Leitfaden zur PWM-Frequenz50 Hz
Schwellenwerte der Eingangslogik0.3VCCbis zu 0.7VCC
Spannungsabfall / RDS(on)/ Sättigung0,4 V
Thermische Grenzwerte85 °C
PaketPlastik
Notizen / VariantenStandardmäßige 180°-Drehung

  • Stellen Sie sicher, dass das Servo für Ihre Versorgungsspannung ausgelegt ist.
  • Sorgen Sie bei hohen Strömen für eine geeignete Wärmeableitung.
  • Schließen Sie die Taster in einer Pull-up-Konfiguration an Masse an.
  • Entprellen Sie Ihre Tasten, wenn sie unregelmäßig reagieren.
  • Überwachen Sie die serielle Ausgabe zur Fehlersuche.

Verdrahtungsanleitung

Arduino wriing for Sevo motor with 2 push buttons
Arduino wriing for Sevo motor with 2 push buttons

Zum Verdrahten der Komponenten beginnen Sie damit, den Servomotor anzuschließen. Verbinden Sie das rote Kabel des Servos mit dem 5V-Pin am Arduino, das schwarze Kabel mit dem GND-Pin und das gelbe oder weiße Signalkabel mit Pin 9 am Arduino. Dieser Pin steuert die Position des Servos.

Als Nächstes verkabeln Sie die Drucktaster. Verbinden Sie einen Anschluss des rechten Tasters mit Pin 2 und den anderen Anschluss mit Masse. Für den linken Taster verbinden Sie einen Anschluss mit Pin 12 und den anderen Anschluss ebenfalls mit Masse. Diese Konfiguration ermöglicht es den internen Pull-up-Widerständen, die Pins hoch zu halten, wenn die Taster nicht gedrückt sind.

Codebeispiele & Schritt-für-Schritt-Anleitung

Beginnen wir mit dem Code zur Steuerung des Servos mit einem einzelnen Druckknopf. Der Code initialisiert das Servoobjekt und setzt einen Anfangswinkel. Hier ist ein kurzer Auszug:

int angle = 90;    // initial angle for servo
int angleStep = 10; // step size for movement

In diesem Ausschnitt,anglestellt die aktuelle Position des Servos dar, währendangleStepDefiniert, wie weit sich der Servo bei jedem Tastendruck bewegt. Dieser Code ist unerlässlich, um die Position des Servos nachzuverfolgen.

Als Nächstes haben wir die Setup-Funktion, in der wir den Servo anschließen und die Eingangspins konfigurieren:

void setup() {
  Serial.begin(9600);          // setup serial
  myservo.attach(9);  // attaches the servo on pin 9
  pinMode(2, INPUT_PULLUP); // configure button pin
}

Im Setup initialisieren wir den seriellen Monitor und schließen den Servo an Pin 9 an. Der Taster an Pin 2 wird als Eingang mit einem Pull-up-Widerstand konfiguriert, was die Verdrahtung vereinfacht und den Einsatz externer Widerstände überflüssig macht.

Abschließend betrachten wir die Loop-Funktion, die den Tastendruck behandelt:

while(digitalRead(2) == LOW) {
  angle = angle + angleStep; // increment angle
  myservo.write(angle); // move servo
}

Diese Schleife überprüft kontinuierlich, ob die Taste gedrückt ist. Wenn sie gedrückt ist, erhöht sich der Winkel um den definierten Schritt und der Servo bewegt sich entsprechend. Es ist wichtig sicherzustellen, dass der Winkel innerhalb der Grenzen (0 bis 180 Grad) bleibt, um Schäden am Servo zu verhindern.

Demonstration / Was Sie erwartet

Wenn Sie die rechte Taste drücken, soll sich der Servo in Schritten von 10 Grad nach rechts bewegen, bis er das Maximum von 180 Grad erreicht. Ebenso bewegt sich der Servo nach links, wenn Sie die linke Taste drücken. Wenn Sie eine Taste gedrückt halten, bewegt sich der Servo weiterhin in diese Richtung, bis Sie die Taste loslassen (im Video bei 01:00).

Zu den häufigen Fallstricken gehören Verdrahtungsprobleme, wie falsche Verbindungen oder schwebende Eingänge. Stellen Sie stets sicher, dass Ihre Verbindungen fest sitzen und dass Sie die im Code angegebenen Pins verwenden.

Bilder

Steuere Servo mit einem einzigen Druckknopf mit Arduino
Steuere Servo mit einem einzigen Druckknopf mit Arduino
SG90_servo_motor-1
SG90_servo_motor-1
SG90_servo_motor-0
SG90_servo_motor-0
Arduino wriing for Sevo motor with 2 push buttons
Arduino wriing for Sevo motor with 2 push buttons
98-Control a servo with a single push button using Arduino
Sprache: C++
99-Control a servo with two push buttons using Arduino
Sprache: C++
Kopiert!

Dinge, die Sie vielleicht brauchen

Ressourcen & Referenzen

Noch keine Ressourcen vorhanden.

Dateien📁

Keine Dateien verfügbar.