» » X1 – 02.1 Center

X1 – 02.1 Center

eingetragen in: X1 | 0

 

Servo Center

Im letzten Kapitel hast du den Servo kennen gelernt. Jetzt willst du das gelernte in ein erstes wichtiges Programm für den Roboter schreiben. Außerdem lernst du den #define Befehl kennen. Du verwendest ihn um einer bestimmten Zahl einen Namen zu geben. Dies ist nützlich für dich, da du dir dadurch ein wenig mehr Überblick verschaffen kannst.

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

 
 
 

Step 1

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

 

 

 

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

 

 

 
 
 

Step 2

Wie auch schon in der vorherigen Lektion, musst du nun die Namen der Servos erstellen.

 

 

 

Servo linkerServo;
Servo mittelServo;
Servo rechterServo;

 

 

 

 
 
 

Step 3

Im void setup() musst du 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. Du wirst diese Herangehensweise in Zukunft beibehalten. Ein schöner Nebeneffekt ist dass du direkt am Anfang des Programms eine Auflistung von allen verwendeten Pins hast.

 

 

 

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

 

 

 

 
 
 

Step 4

Nun kannst du im void loop() die Servos wieder auf Position bringen. Speziell hier möchtest du die Servos auf ca. Mittlere Position bringen um die Servoköpfe aufstecken zu können. Da du zwischen den Befehlen kein delay hast bewegen sich alle Servos sozusagen gleichzeitig auf ihre Position.

 

 

 

void loop() {

linkerServo.write(72);
rechterServo.write(72);
mittelServo.write(60);
}

 

 

 

 

Fazit

In dieser Lektion hast du ein Programm geschrieben, mit dem du die Servos in zentrale Position bringen kannst.

Wenn du die Servos aktivieren und Ihnen keinen Wert gibst, könnte es sein dass sie sich an eine zufällige Position bewegen. Andererseits bewegen sie sich natürlich nicht wenn sie vorher nicht aktiviert werden.
Es ist 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 wir an anderer Stelle noch demonstrieren werden.
 
 
 

Bitte hinterlasse eine Antwort