
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);
}
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