Arduino, Lektion 16: Servo ansteuern

Ein mini Servo kann mit wenig Zeilen Code am Arduino betrieben werden. Wie dieses gemacht wird, möchte ich nun in diesem kleinen Tutorial beschreiben.

Mini Servo SG90
Mini Servo SG90

Diesen Servo habe ich bei Amazon für kleines Geld gekauft.

Technische Daten

  • Gewicht – 9g
  • Betriebsspannung – 4.8V
  • Umgebungstemperatur – 0 °C bis 55 °C
  • Abmaße – 22,2 mm x 11,8 mm x 31 mm (LxBxH)
  • Stell-Zeit – 0,1 s (60°)
  • Stell-Moment – 1,8 kg cm (0,176 Nm)

Der Schaltplan

Von dem Servo gehen 3 Kabel ab welche wie folgt am Arduino Mikrocontroller angeschlossen werden.

  • Braun – GND
  • Rot – 5V
  • Orange – digitaler PIN 9
Arduino Nano mit Mini Servo SG90
Arduino Nano mit Mini Servo SG90

Der Quellcode

In meinem Beispiel möchte ich „nur“ den Servo jeweils um 180° nach links und nach rechts bewegen. In der Arduino IDE ist die benötigte Bibliothek bereits enthalten und muss nur mit dem Befehl „include“ eingebunden werden. Diese Bibliothek hat eine Begrenzung von 8 Servos, d.h. man kann nur 8 Servo Objekte gleichzeitig initialisieren. Des Weiteren kann dieser Mini Servo „nur“ um 180° nach rechts & links bewegt werden, größere und auch leistungsfähigere Servos können größere Radien erreichen.

#include <Servo.h>  //Bibliothek zum ansteuern von Servo
 
Servo servo; //Servo Objekt erstellen (noch nicht initialisiert)

int position = 0; //Variable zum speichern von der aktuellen Position
const int waitTime = 50; //Zeit zum pausieren zwischen den einzelnen Schritten des Servos

void setup() 
{ 
 servo.attach(9); //setzen des Servo Objektes auf den digitalen PIN 9
} 
 
void loop() 
{ 
  //For Schleife zum drehen des Servos um 180°
  for(position = 0; position < 180; position++) { 
    servo.write(position); //Schreiben des aktuellen Wertes der Variable 'position' (1...180)
    delay(waitTime); //Pause
  } 

  //For Schleife zum drehen des Servos um 180°  
  for(position = 180; position>=1; position--){ 
    servo.write(position); //Schreiben des aktuellen Wertes der Variable 'position' (180...1)
    delay(waitTime); //Pause
  } 
}

Das Video

Servo ansteuern

Download

11 Kommentare

Kommentar hinterlassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert