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,2mm x 11,8mm x 31mm (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 Microcontroller 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. Desweiteren 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


 

Download

4 Gedanken zu „Arduino, Lektion 16: Servo ansteuern

Schreibe einen Kommentar

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