Ein Modellbau Servo kann direkt vom Arduino Pin angesteuert werden.
Der Servo reagiert auf Pulslängenänderungen. Ein 5V Puls ist 1-2 Millisekunden lang und dann folgt eine Pause mit 0V von ca. 20 ms bis zum nächsten Puls.
Ein Puls mit 1 ms bedeutet linker Anschlag.
Ein Puls mit 1,5 ms bedeutet Mittelstellung.
Ein Puls mit 2 ms bedeutet rechter Anschlag.
Wird die Pulsdauer von 1 ms zu 2 ms kontinuierlich verändert, dreht der Servo langsam zum Vollausschlag.
Zur Stromversorgung bekommt der Servo noch Strom vom Arduino
+5V > Servoleitung rot
GND > Servoleitung schwarz
Und die Signalleitung
A2 > Servoleitung orange oder gelb
Hier das Programm
// Servo Ansteuerung direkt vom Arduino Pin
//
// Matthias Busse 18.07.2015 Version 1.0
int pin=2; // Servo Steuerleitung gelb / orange
void setup() {
pinMode(pin, OUTPUT);
}
void loop() {
for(int i=0; i <= 100; i++)
servo(pin, i);
for(int i=100; i >= 0; i--)
servo(pin, i);
}
void servo(int pin, int pos) {
// pos 0-100% > 1000-2000 Micro Sekunden
digitalWrite(pin, 1);
delayMicroseconds(map(pos,0,100,1000,2000));
digitalWrite(pin, 0);
delay(20); // 20ms warten - ergibt ca. 50 Hz Signale
}
Die map() Funktion nimmt den Wert pos, der im Bereich von 0-100 (%) liegt und rechnet ihn in die Pulslänge von 1000 bis 2000 Mikrosekunden (1-2ms) um.
Wenn die Servos etwas weiter aussteuern sollen sind häufig auch Werte 900 – 2100 möglich. Das kann man mit dem vorliegenden Servo einfach ausprobieren. Wenn er sich gut an hört, ist das noch in Ordnung
Software: Arduino 1.6.1
Hardware: Arduino Nano, Modellbauservo mit 3 Anschlussleitungen
Es gibt auch eine Servo Library in der Arduino Software mit 2 Beispielen.
von Matthias Busse


Pingback: Servosteuerung mit einem Poti und dem Arduino | Shelvin – Elektronik ausprobiert und erläutert