Arduino Tutorial: Der Servo

 

 

Ein Servo ist meistens nichts anderes als ein Gleichstrommotor. Ein Servo kann sich aber nur bis zu einen Winkel von 180° drehen. In diesen Versuch wirst du einen Servo mittels eines Potentiometers ansteuern. Dazu werden wir eine Library in unseren Sketch mit einbauen. Die Library ist extra für Servoanwendungen erstellt worden. In diesen Tutorial wird der Tower Pro SG90 verwendet-

 

 

 

Was benötigst du?

  • 1 x Arduino Uno

 

  • 1 x USB Kabel

 

  • 1 x Steckbrett

  

  • 1 x Servo (Tower Pro SG90)

 

  • 1 x Potentiometer (10 Kiloohm)

 

  •  Jump Wire (Männlich)

 

Wie sieht der Schaltplan aus?

 

 

Eine Library einbinden

 

 

Um den Servo ansteuern zu können benötigst du die Servo- Library die extra für den Servo geschrieben worden ist.

Um die Library in dein Sketch einzubinden erstellst du einen neuen Sketch und klickst dann auf Sketch->Bibliothek einbinden ->Servo. Die Library ist nun eingebunden. 

 

 

 

 

Der Code

#include <Servo.h>                                          // Die eingebundene Library

 

Servo derServo;                                             // Das Servo- Objekt

int analogPin = 0;                                          // Dein analog Pin

int potiwert;                                               // Der berechnete Wert vom Poti

 

void setup() {

 

   derServo.attach(9);                                      // Der Servo wird an Pin 9

                                                            // angesteuert

 

}

 

void loop() {

 

   potiwert = map(analogRead(analogPin),0,1023,0,179);      // Berechnung des PWM- Signals 

                                                            // für die Servosteuerung

   derServo.write(potiwert);                                // der berechnete PWM- Wert wird

                                                            // an dein Servo gesendet

   delay(20);

 

}

 

 

Du kannst den Sketch auch hier herunterladen.

 

 

Code- Review

Wenn alles richtig ausgeführt wurde, kannst du nun deinen Servo mit den Potentiometer bewegen.

 

Schauen wir uns jetzt an was am Code neu ist.

 

#include <Servo.h>                                          // Die eingebundene Library

 

Nachdem du deine Library, wie oben beschrieben, eingebunden hast, wird dieser Code hier erstellt. Hiermit wird die Klasse Servo.h in dein Sketch importiert.

 

Servo derServo;                                             // Das Servo- Objekt

 

Um die Library nutzen zu können, müssen wir ein sogenanntes Objekt von der Klasse erzeugen. Hier erzeugen wir ein Objekt von der Klasse Servo und nennen dieses Objekt "derServo". Die Begriffe Klasse und Objekt werden in der "Objektorientierten Programmiersprache" (OOP) verwendet.

 

derServo.attach(9);                                         // Der Servo wird an Pin 9

                                                            // angesteuert

Hier führen wir eine Methode des Objekts "derServo" aus. Während du in den anderen Sketches die Methode direkt aufgerufen hast, musst du Methoden, die zu einem Objekt gehören mit dem .-Befehl (Punktbefehl) ansprechen. Also:

 

Objektname.Methode(Parameter); 

 

Die attach- Methode ( auf deutsch "anschließen") ist für das Verbinden mit dem Servo verantwortlich. Du möchtest den Servo über Pin 9 ansteuern. Deshalb wird der Parameter "9" der Methode übergeben.

 

potiwert = map(analogRead(analogPin),0,1023,0,179);         // Berechnung des PWM- Signals 

                                                            // für die Servosteuerung

 

Die gemessene Spannung die am analogen Pin ermittelt wird, kann einen Wert zwischen 0 und 1023 annehmen. Da wir aber eine Winkelangabe benötigen wird dieser Wertebereich mit der map- Methode ungeformt. Wir stellen einen Wertebereich von 0 (Grad) bis 179 (Grad) ein. Dieser umgeformte Wert wird dann in unsere Variable "potiwert" abgespeichert. Es sieht dann so aus.

 

 

derServo.write(potiwert);                                   // der berechnete PWM- Wert wird

                                                            // an dein Servo gesendet

 

Mit der write- Methode wird der ermittelte Wert an unser Servo gesendet. Der Servo dreht sich nun bis zum eingestellten Winkel.

 

delay(20);

 

Die delay- Methode muss sein, da der Servo eine Weile braucht bis er sich von der einen Position zur anderen Position bewegt.

 

Damit weißt du nun, wie du einen Servo ansteuerst

 

 

 

 

 

 

Wenn du hier irgendetwas vermisst, bessere Ansätze hast oder dir etwas nicht klar ist, zögere nicht einen Kommentar zu hinterlassen.

Kommentar schreiben

Kommentare: 0