Nr.13 Servo ansteuern

Inhaltsverzeichnis

Wie funktioniert ein Servomotor?

Ein Servomotor ist ein Elektromotor, der über einen Sensor die aktuelle Position bestimmen und zielgenau anfahren kann. Der hier verwendete Sensormotor kann in 1-Grad-Schritten alle Positionen zwischen 0 und 180 Grad ansteuern.

Einen Servo Motor mit einem Mikrocontroller ansteuern

Beispiel: TowerPro SG90 am Funduino UNO R3 Mikrocontrolller

Aufgabe: Ein Servomotor soll von einem Mikrocontroller angesteuert werden. Der Servo soll dazu in diesem Beispiel vier verschiedene Positionen ansteuern und zwischen den Positionen eine kurze Zeit warten.

Schaltpläne

Der Programmcode

Arduino UNO

// die Bibliothek Servo.h wird eingebunden, sie steuert den Motor
#include "Servo.h"  

// der Servomotor erhält den Namen Servomotor
Servo Servomotor; 

void setup()
{
  // dem Servomotor wird der Pin 8 zugeordnet
  Servomotor.attach(8);  
}

void loop()
{ 
  // der write-Befehl steuert den Servomotor
  // Zwischen den einzelnen Positionen gibt es eine Pause
  // Position 1 ansteuern mit dem Winkel 0°
  Servomotor.write(0);  // Position 1 ansteuern mit dem Winkel 0°

  // 3 Sekunden Pause
  delay(3000);  

  // Position 2 mit dem Winkel 90° ansteuern
  Servomotor.write(90);  

  // 3 Sekunden Pause
  delay(3000);  

  // Position 3 mit dem Winkel 180° ansteuern
  Servomotor.write(180);

  // 3 Sekunden Pause
  delay(3000); 

  // Position 4 mit dem Winkel 20° ansteuern
  Servomotor.write(20);  

  // 3 Sekunden Pause
  delay(3000);  
}

Wemos D1

// die Bibliothek Servo.h wird eingebunden, sie steuert den Motor
#include "Servo.h"  

// der Servomotor erhält den Namen Servomotor
Servo Servomotor; 

void setup()
{
  // dem Servomotor wird der Pin D1 zugeordnet
  Servomotor.attach(D1);  
}

void loop()
{ 
  // der write-Befehl steuert den Servomotor
  // Zwischen den einzelnen Positionen gibt es eine Pause
  // Position 1 ansteuern mit dem Winkel 0°
  Servomotor.write(0);  // Position 1 ansteuern mit dem Winkel 0°

  // 3 Sekunden Pause
  delay(3000);  

  // Position 2 mit dem Winkel 90° ansteuern
  Servomotor.write(90);  

  // 3 Sekunden Pause
  delay(3000);  

  // Position 3 mit dem Winkel 180° ansteuern
  Servomotor.write(180);

  // 3 Sekunden Pause
  delay(3000); 

  // Position 4 mit dem Winkel 20° ansteuern
  Servomotor.write(20);  

  // 3 Sekunden Pause
  delay(3000);  
}

NodeMCU

// die Bibliothek Servo.h wird eingebunden, sie steuert den Motor
#include "Servo.h"  

// der Servomotor erhält den Namen Servomotor
Servo Servomotor; 

void setup()
{
  // dem Servomotor wird der Pin D1 zugeordnet
  Servomotor.attach(D1);  
}

void loop()
{ 
  // der write-Befehl steuert den Servomotor
  // Zwischen den einzelnen Positionen gibt es eine Pause
  // Position 1 ansteuern mit dem Winkel 0°
  Servomotor.write(0);  // Position 1 ansteuern mit dem Winkel 0°

  // 3 Sekunden Pause
  delay(3000);  

  // Position 2 mit dem Winkel 90° ansteuern
  Servomotor.write(90);  

  // 3 Sekunden Pause
  delay(3000);  

  // Position 3 mit dem Winkel 180° ansteuern
  Servomotor.write(180);

  // 3 Sekunden Pause
  delay(3000); 

  // Position 4 mit dem Winkel 20° ansteuern
  Servomotor.write(20);  

  // 3 Sekunden Pause
  delay(3000);  
}

Funduino - Dein Onlineshop für Mikroelektronik

  • Dauerhaft 10% Rabatt für Schüler, Studenten und Lehrkräfte
  • Mehr als 3.500 Artikel sofort verfügbar!
  • Über 8 Jahre Erfahrung mit Arduino, 3D-Druck und co.
SALE