» » X1 – 02.0 Servo

X1 – 02.0 Servo

eingetragen in: X1-lernkurs | 0

 

Servo Basics

Natürlich soll der X1 nicht nur auf der Stelle stehen und nachdem wir nun die grundlegenden Funktionen erlernt haben, können wir dem X1 auch laufen beibringen. Auf den ersten Blick sieht der Code komplexer aus, als in der vorherigen Lektion. Keine Sorge, während wir die einzelnen Schritte zusammen durch gehen wirst du schnell ein Gefühl dafür entwickeln. Die hier gelernten Techniken wirst du in Zukunft immer wieder anwenden.

 

Video-Beispiel:

 

Code-Beispiel:

#include <Servo.h>     //Füge die Bibiliotek Servo hinzu

Servo meinServo; //Servo(aus ServoBibiliotek) wird benannt "meinServo"

void setup() {
meinServo.attach(10); //Pin 10 soll ein Servo sein
}

void loop() {
meinServo.write(80); //meinServo soll auf Position 80
delay(100); //Warte 100ms
}

 

Schritt 1

Mit #include fügst du eine neue Libary (Bibliothek) ein. Du kannst dir das so vorstellen, der X1 hat bereits eine Bibliothek gefüllt mit Büchern über verschiedene Themen. Da diese Bibliothek nicht allwissend ist musst du sie mit weiteren Bibliotheken ergänzen, damit der X1 auch versteht, was du ihm beibringen möchtest.
Die Servo-Library fügt zum Beispiel den Befehl Servo zur Auswahl der möglichen Befehle hinzu. In Arduino verwenden wir im Zusammenhang mit #include eckige Klammern "<>". Der Name der Library endet auf .h, weil Libraries sogenannte Headerdatein sind.

 

 

 

#include <Servo.h>

 

 

 

 
 
 

Schritt 2

Hier siehst du einen Befehl den du durch die hinzugefügte Libary verwenden kannst. Der Befehl Servo erstellt einen neuen Servo (Programm-Intern). Der Name für unseren Servo ist hier „meinServo“.

Diese Schreibweise nennt sich „Camel-Case“ und wir nutzen sie, da sie sehr übersichtlich ist und keine Leerzeichen in einem Namen verwendet werden dürfen. Vor allem in Windows nutzte man früher "mein_Servo". Diese Schreibweise ist immer noch weit verbreitet, wir finden sie jedoch veraltet und im Gegensatz zu Camel-Case auch nicht schön.

 

 

 

Servo meinServo;

 

 

 

 
 
 

Schritt 3

Da dein X1 noch nicht weiß wo der Servo angeschlossen ist, müssen wir ihm in void setup() die Information geben, an welchem Pin er angeschlossen ist. Eine kleine Besonderheit gilt es jedoch zu beachten, da es sich hier um einen Servo handelt. Um einen Servo einem Pin zuzuweisen kannst du nicht wie in der letzten Lektion pinMode benutzen, denn Servos haben einen eigenen Befehl welcher attach heißt.
Um einen Servo zuzuweisen beginnst du mit dem Namen, also meinServo, danach setzt du einen Punkt und gibst mit attach die Nummer des Pins an.

Übersetzt heißt der Code also, dass meinServo aktiviert werden soll und zwar an Pin 10.

 

 

 

void setup() {
meinServo.attach(10);
}

 

 

 

 
 
 

Schritt 4

Nachdem der Servo zugewiesen ist, kannst du eine Position angeben in die er gestellt werden soll. Das ganze funktioniert folgendermaßen: Erst schreibst du den Namen des Servos, setzt einen Punkt und dahinter den write Befehl. Der Servo kann Positionen zwischen 0 und 180 einnehmen. In die Klammern hinter write schreibst du die Position in der du den Servo haben möchtest.

Damit der Servo Zeit hat sich zu bewegen, bevor die nächste Anweisung kommt, setzen wir einen kurzen delay.

Wichtig: Zeile abschließen nicht vergessen.

 

 

 

void loop() {
meinServo.write(80);
delay(100);
}

 

 

 

 

Fazit

Mit Libraries kannst du das Repertoire der Befehle die der X1 versteht erweitern. Gleichzeitig haben wir gelernt, dass sich die Schreibweise des Code für einen Servo sich aufgrund der zusätzlichen Library von der Schreibweise eines Code für LEDs, Schalter und Co. unterscheidet. Die zusätzliche Schreibweise sorgt für ein bisschen mehr Aufwand, welcher sich allerdings schnell bezahlt macht, sobald dein X1 die ersten Schritte von alleine macht.
 
 
 

Bitte hinterlasse eine Antwort