Ihre Browserversion ist veraltet. Wir empfehlen, Ihren Browser auf die neueste Version zu aktualisieren.

Einen Servomotor ansteuern

Aufgabe

Der Winkel des Ausschlags eines Servomotors soll mit einem Potentiometer genau eingestellt werden

Aufbau der Schaltung

Material

  • Arduino
  • Servomotor
  • Potentiometer
  • Breadboard
  • Leitungen

 

Beschreibung

In einem Servomotor ist ein Motor, ein Getriebe und Elektronik verbaut.

Die Elektronik sorgt dafür, dass sich der Motor nicht dauernd dreht, sondern nur um eine bestimmte Gradzahl. In diesem Beispiel hat der Motor einen Drehwinkel von 180°. Bei einem ferngesteuerten Auto wird zum Beispiel der Lenkeinschlag mit einem Servomotor eingestellt und gehalten.

Der Servomotor hat drei Anschlüsse:

braun:             GND

rot:                   VCC, 5 Volt

orange:            Steuerungssignal

Das orangene Kabel wird mit einem digitalen Ausgang (hier Pin7) des Arduino angeschlossen. Der mittlere Anschluss des Potis wird an den analogen Eingang A0 angeschlossen.

Die Ansteuerung des Servomotors übernimmt ein Programm, das bereits installiert ist. Das Programm ist in der sogenannten Bibliothek. Von dort aus muss es in das Hauptprogramm integriert werden. Dadurch erspart man sich viel Programmierarbeit.

Es genügt, wenn man angibt, um wie viel Grad der Motor sich drehen soll.

Das ArduBlock-Programm

 

 

Bedeutung der einzelnen Blöcke

(Steht unter dem Block keine Erklärung, dann wurde er bereits in einem Tutorial erklärt)

Eine Variable mit dem Namen „Gradzahl“ wird erstellt.

Die Spannung am analogen Eingang A0 wird gemessen (0 – 5V) und in einen Wert von 0 bis 1023 umgewandelt.

Diese Zahl wird in einen Wert umgewandelt zwischen 0 und 180 – Die Gradzahl für den Servomotor.

 

 

Das ist der eigentliche Befehl, für den Servomotor: Der Servomotor an Pin 7 wird so angesteuert, dass er sich um den Wert der Gradzahl dreht.

 

Zur Kontrolle werden am seriellen Monitor die Buchstaben „Winkel“ und der Wert der Variablen „Gradzahl“ ausgegeben.

Der Arduino-Sketch

(Steht keine Erklärung, dann wurde der Befehl bereits in einem Tutorial erklärt)

1 #include <Servo.h>

// Das Programm „Servo.h“ wird aus der Bibliothek geladen. Es übernimmt die Ansteuerung des Servos. Man muss dann nur noch den Pin und die Gradzahl eingeben...

2 int _ABVAR_1_Gradzahl; // Die Variable mit dem Namen „_ABVAR_1_Gradzahl“ wird erstellt
3 Servo servo_pin_7; Das Programm „Servo“ wird gestartet.
4 void setup()  
5      {  
6           Serial.begin(9600);  
7           _ABVAR_1_Gradzahl = 0;  
8           servo_pin_7.attach(7);  // Der Servo ist an Pin 7 angeschlossen
9      }  
10 void loop()  
11      {  
12           _ABVAR_1_Gradzahl = map ( analogRead(A0) , 0 , 1023 , 0 , 180 )  ;

// Der Variablen wird folgender Wert zugeordnet:

Zuerst wird die Spannung am analogen Eingang A0 eingelesen. Dieser Wert wird in eine Zahl zwischen 0 und 1023 umgewandelt.

Aus diesem Wert wird die Gradzahl zwischen 0° und 180° berechnet.
13               servo_pin_7.write( _ABVAR_1_Gradzahl ); // An den Servo am Pin 7 wird die Gradzahl gesendet.
14           Serial.print( _ABVAR_1_Gradzahl ); // An den seriellen Monitor wird der Wert der Variablen gesendet.
15           Serial.println("");                                                 
16      }  
17 }  

Cookie-Regelung

Diese Website verwendet Cookies, zum Speichern von Informationen auf Ihrem Computer.

Stimmen Sie dem zu?