PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Servo funktioniert nicht



Nachbarino
16.03.2013, 18:03
Hallo,

Ich habe ein Problem mit einem Modelcraft RS-2-Servo. Wir haben ihn neulich in einem Robotik-Kurs (ja, ich bin unerfahrener Anfänger, also verzeihung, falls die folgenden Fragen allzu banal sind) an einen Arduino angeschlossen, dort hat es reibungslos funktioniert. Ich habe die Schaltung zu Hause nachgebaut, aber hier schaltet sich der Arduino ständig ab, anscheinend wird eine Sicherung aktiviert, weil der Servo am 5V-Pin zu viel Strom zieht. Hier meine erste Frage: Kann es sein, dass der Servo deshalb eine so hohe Stromstärke benötigt, weil er irgendwie beschädigt ist? Im Robotikkurs ließ er sich schließlich auch problemlos über einen Arduino steuern. Dann habe ich versucht, ihn an eine externe Stromquelle anzuschließen, unter anderem an 4 AA-Batterien und einen 9V-Block mit dahintergeschaltetem Spannungsteiler. In allen Fällen hat sich der Servo nicht bewegt, bzw. nur gezuckt. Ich hege die starke Vermutung, dass der Servo defekt ist. Könnt Ihr mir das bestätigen? Oder muss ich ihn irgendwie anders anschließen (mehr Batterien, Vorwiderstand, etc.)?

Bedanke mich schon im Voraus,
Nachbarino

ichbinsisyphos
16.03.2013, 18:10
Hast du im Kurs den selben Arduino benutzt wie zuhause? Mir ist keine solche Abschaltung bei zuviel Strom bekannt, sicher nicht nur ein schlechter Kontakt? Hast du das Programm im Kurs schon raufgespielt oder erst zuhause eingetippt?
Hast du den Servo bei diesem späteren Test nur an eine Quelle angeschlossen, oder auch an den Mikrocontroller, ohne Steuersignal wird er sich nämlich nicht bewegen. Da das nicht allzu groß sein wird, solltest auch ruhig das Programm posten. Und die Schaltung. Man kann hier sonst wirklich nur ins Blaue raten.

Nachbarino
16.03.2013, 18:20
Sowohl im Kurs, als auch zu Hause habe ich einen Arduino Uno benutzt. Das Programm ist ein Beispielprogramm namens "Knob", das bereits bei der Arduino-Software unter der Library "Servo" enthalten ist:

// Controlling a servo position using a potentiometer (variable resistor)
// by Michal Rinott <http://people.interaction-ivrea.it/m.rinott>

#include <Servo.h>

Servo myservo; // create servo object to control a servo

int potpin = 0; // analog pin used to connect the potentiometer
int val; // variable to read the value from the analog pin

void setup()
{
myservo.attach(9); // attaches the servo on pin 9 to the servo object
}

void loop()
{
val = analogRead(potpin); // reads the value of the potentiometer (value between 0 and 1023)
val = map(val, 0, 1023, 0, 179); // scale it to use it with the servo (value between 0 and 180)
myservo.write(val); // sets the servo position according to the scaled value
delay(15); // waits for the servo to get there
}

Die Schaltung:
http://fritzing.org/projects/analog-input-to-servo/
(Wobei ich als analogen Input A0 statt A2 benutzt habe, wie dem Programm zu entnehmen ist)

Als ich das Ganze mit Batterien ausprobiert habe, habe ich einfach den 5V und GND-Input des Servos an verschiedene Batterien (im ersten Beitrag zwei Beispiele) angeschlossen.

ichbinsisyphos
16.03.2013, 18:25
Doch, das Problem der Überlastung tritt offenbar gerne auf. Such mal im Forum nach Problemen mit dem Servotyp, ich hab jetzt einige threads dazu gelesen.
Ich hab auch ganz vergessen, dass es zwar kaum eine "Sicherung" gibt, aber der Spannungsregler bei Überlastung natürlich einbrechen kann. Seltsam ist, dass die scheinbar selbe Konfiguration im Kurs funktioniert hat?

edit: bei der Schaltung kann man wirklich nicht viel falsch machen. Hast du ein Multimeter irgendwo rumliegen, mit dem du schauen kannst, wie sich die Spannung verhält, was vom Potentiometer am Analog-Pin ankommt, etc etc ... ?

BMS
16.03.2013, 18:36
Als ich das Ganze mit Batterien ausprobiert habe, habe ich einfach den 5V und GND-Input des Servos an verschiedene Batterien (im ersten Beitrag zwei Beispiele) angeschlossen.
Hallo,
wenn du eine externe Spannungsversorgung für den Servo verwendest, musst du unbedingt GND vom Board mit dem Minus deines externen Akkus verbinden, da sonst der Bezugspunkt für die Steuerleitung fehlt. ;)
Grüße, Bernhard

Nachbarino
16.03.2013, 19:25
Danke für all die raschen Antworten! Endlich funktioniert es! :) Der Grund war, wie BMS es angesprochen war, die fehlende Verbindung zwischen GND dem Minus der externen Spannungsversorgung. Dass sich der Arduino bei zu hoher Stromstärke abschaltet, ist jetzt wohl auch nicht mehr von Belang, weil ich den Servo nun über die Batterien versorgen kann.