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