» » X1 – 02.1 Center

X1 – 02.1 Center

eingetragen in: X1 | 0

 

Servo Center

Im letzten Kapitel haben wir den Servo kennen gelernt. Jetzt wollen wir das gelernte in ein erstes Wichtiges Programm für den Roboter schreiben. Außerdem lernen wir den #define Befehl kennen. Wir verwenden ihn um einer bestimmten Zahl einen Namen zu geben. Dies ist nützlich für uns, da wir uns ein wenig mehr Überblick verschaffen können.

Viceo-Beispiel:

 

Code-Beispiel:

#include <Servo.h>
//Pinbelegung benennen
#define servoLPin 9
#define servoMPin 10
#define servoRPin 11
//Servos benennen
Servo linkerServo;
Servo mittelServo;
Servo rechterServo;

void setup() {
 linkerServo.attach(servoLPin);
 rechterServo.attach(servoRPin);
 mittelServo.attach(servoMPin);
}

void loop() {
 //Alle Servos sollen auf Mittelposition
 linkerServo.write(72);
 rechterServo.write(72);
 mittelServo.write(60);
}

 

 

 

#define servoLPin 9
#define servoMPin 10
#define servoRPin 11

 

 

 
 
 

Step 1

Hier sehen wir den schon erwähnte #define Befehl. Wichtiges Merkmal hier ist dass #define nicht mit ";" abgeschlossen wird.
Nach dem Befehl #define kommt der Name, den wir gerne für die gewünschte Zahl ernennen wollen. In unserem Fall möchten wir die 3 Servos des Roboters nach der Position benennen. Also: servoLPin, servoMPin und servoRPin.

 

 

 

Servo linkerServo;
Servo mittelServo;
Servo rechterServo;

 

 

 

 
 
 

Step 2

Wie auch schon vorher müssen wir nun die Namen der Servos erstellen. Untereinander benennen wir nun die Servos von links nach rechts.

Hier benennen wir jetzt die Servos.

 

 

 

void setup() {
linkerServo.attach(servoLPin);
rechterServo.attach(servoRPin);
mittelServo.attach(servoMPin);
}

 

 

 

 
 
 

Step 3

Im void setup() müssen wir nun die 3 Servos einschalten. Wie du siehst schreiben wir nun anstatt die Zahl, den definierten Namen in die Klammer, was uns wiederum viel mehr Übersicht gibt. Wir werden diese Herangehensweise in Zukunft beibehalten. Ein schöner Nebeneffekt ist dass wir direkt am Anfang des Programms eine Auflistung von allen verwendeten Pins haben.

 

 

 

void loop() {
//Alle Servos sollen auf Mittelposition
linkerServo.write(72);
rechterServo.write(72);
mittelServo.write(60);
}

 

 

 

 
 
 

Step 4

Nun können wir im void loop() die Servos wieder auf Position bringen. Speziell hier möchten wir die Servos auf ca. Mittlere Position bringen um die Servoköpfe aufstecken zu können. Da wir zwischen den befehlen kein delay haben bewegen sich alle Servos sozusagen gleichzeitig auf ihre Stellung.

 

Fazit

In dieser Lektion haben wir das erste wichtige Programm geschrieben, mit dem wir die Servos in zentrale Position bringen können.

Wenn wir die Servos aktivieren und Ihnen keinen Wert geben könnte es sein dass sie sich Bewegen wie sie wollen. Anders herum bewegen sie sich natürlich nicht wenn sie vorher nicht aktiviert werden.
Außerdem ist es interessant zu wissen dass die Servos sich nachdem sie Aktiviert sind nicht mehr durch äußere Kraft bewegen lassen. Es ist auch möglich sie wieder zu deaktivieren, was in naher Zukunft noch sehr wichtig für X1 wird.
 
 
 

Bitte hinterlasse eine Antwort