Servo

Hallo, ich habe ein Servo, den ich am Arduino UNO testen möchte. Dazu habe ihc von Arduino das Programmbeispiel auf das Board gemacht. Den Servo habe ich wie folgt angeschlossen Braunes Kabel - GND Rotes KAbel - 5V Orangenes KAbel - PIN9 (PWM)

Allerdings höre ich den Servo in regelmäßigen Abständen nur etwas ratschen oder so ähnlich. Desweiteren fängt in regelmäßigen Abständen die LED von PIN13 an zu flackern. Ist der Servo nicht am Board angeschlossen, leuchtet die LED vom PIN13 dauerhaft.

Habe ihc etwas falsch gemacht (Ich hoffe, ich habe es genau genug erklärt). Gruß

Welcher Servo? Typenbezeichnung? Link? Servodaten?

Dein Servo zieht vermutlich viel zu viel Strom als dass Du diesen hohen Strom überhaupt am 5V Pin des Boards entnehmen darfst.

Nur sehr kleine und schwache Mini- oder Microservos darfst Du am Arduino-Board am 5V Pin anschließen.

Ansonsten brauchen Servos im allgemeinen eine eigenständige und ausreichend kräftige Stromversorgung, die genug Strom für den Servo abgibt.

Hallo Chandler_B,

ich habe eben auch das Beispiel aus der Arduino Software, Version 1.05 geladen. Pin 13, und damit auch die zugehörige LED wird darin nicht benutzt? Das Beispiel heißt Sweep? Du willst den Servo testen weil er eventuell defekt ist? Ich tippe darauf das die Spannung zusammenbricht. Wie wird der Uno mit Spannung versorgt? USB? Evtl von einem Notebook? Poste bitte Deine Softwareversion, den Sketch (bitte oben den Knopf # drücken und dann zwischen die beiden Klammern den Code rein). Die Verkabelung sollte stimmen, klingt nach JR System. Ist es ein großer Servo, oder ist er schwergängig?

wird schon werden Servus!

Gerhard

Nabend,
den Servo habe ich von Conrad (darf man so etwas hier sagen? sonst muss ich beim nächsten mal aufpassen)(http://www.conrad.de/ce/de/product/404753/Modelcraft-Standard-Servo-410-Getriebe-Kunststoff-JR?ref=searchDetail).
Ja, das Beispiel heisst Sweep. Dort soll er sich ja einfach nur ein wenig hin und her drehen. Die LED vom PIN13 kommt auch nciht in diesem Programm vor, trotzdem kommt es zu dem vom mir beschriebenen verhalten. Und auch mit der Spannungsversorgung liegst du genau richtig. Der Arduino wird vom Laptop über USB versorgt. von dort nehme ich dann den GND, 5V und die PWM.
Heute habe ich mir die neuste Version geladen, also 1.0.5.
Meintest du mit Sketch den Code?

// Sweep
// by BARRAGAN <http://barraganstudio.com> 
// This example code is in the public domain.


#include <Servo.h> 
 
Servo myservo;  // create servo object to control a servo 
                // a maximum of eight servo objects can be created 
 
int pos = 0;    // variable to store the servo position 
 
void setup() 
{ 
  myservo.attach(9);  // attaches the servo on pin 9 to the servo object 
} 
 
 
void loop() 
{ 
  for(pos = 0; pos < 180; pos += 1)  // goes from 0 degrees to 180 degrees 
  {                                  // in steps of 1 degree 
    myservo.write(pos);              // tell servo to go to position in variable 'pos' 
    delay(15);                       // waits 15ms for the servo to reach the position 
  } 
  for(pos = 180; pos>=1; pos-=1)     // goes from 180 degrees to 0 degrees 
  {                                
    myservo.write(pos);              // tell servo to go to position in variable 'pos' 
    delay(15);                       // waits 15ms for the servo to reach the position 
  } 
}

Groß ist der SErvo nicht. Da es mein erster ist, kann ich nicht sagen, ob er schwergängig ist. Ich würde aber eher auf nein tippen.

Schon einmal besten dank für die Antworten.
Falls noch mehr Informationen Fehlen, bitte einfach sagen.
Gruß

Oh doch! Der Servo ist "groß". Die vom UNO gelieferte Leistung am 5V Pin reicht nicht aus um den Servo im Anlaufmoment ausreichend zu versorgen. Der UNO startet dann immer wieder neu. Was macht die Power LED währenddessen? Wird dunkel, geht aus? Hast Du eine alternative Spannungsquelle da? Alter Handylader mit 5V und min. 1A? Oder paar Batterien oder Akkus? 4,8V bis 6V will er, der Servo. Dann von der Spannungsquelle den Plus nur an den roten Servodraht, den Minus an den braunen und an GND vom UNO. Der orange bleibt am bisherigen Pin. Mit dieser Schaltung sollte der UNO sich nicht mehr ständig neu starten.

Und die IDE zeigt wirklich Upload abgeschlossen? Das mit LED 13 kann ich immer nocht nicht so recht nachvollziehen. Hab hier aber auch nur einen älteren Diecimila, vielleicht hat sich da was geändert. Ja, Sketch ist der Code.

AHH, ja, jetzt funktioniert es. Ich habe eine Flachbatterie mit 4,5V am Servo angeschlossen den GND vom Arduino mit der Batterie und dem Servo verbunden und das PWM Signal vom Arduino genommen. JEtzt läuft er. Ganz verstehe ich das aber nicht. Ihr habt gesagt, dass die 5V vom arduino nicht ausreichen (was ich euch ja auch glaube) , aber mit 4,5 Volt funktioniert es. Besten dank für die Antworten.

Chandler_B: Ganz verstehe ich das aber nicht. Ihr habt gesagt, dass die 5V vom arduino nicht ausreichen (was ich euch ja auch glaube) , aber mit 4,5 Volt funktioniert es.

Jurs hat es in der ersten Antwort bereits auf den Punkt gebracht:

jurs: Dein Servo zieht vermutlich viel zu viel Strom als dass Du diesen hohen Strom überhaupt am 5V Pin des Boards entnehmen darfst.

Servos brauchen ein Einschalten oder Anlaufen sehr kurz einen sehr grossen Strom. Die USB-Schnittstelle deines Laptops kann diesen hohen Strompuls nicht liefern => die 5V brechen zusammen => der Arduino bekommt einen Reset und startet neu. Nach dem Neustart wird wieder das Servo angesteuert, die 5V brechen zusammen, und so weiter und so weiter.

Das hast du mit der 4,5V Batterie umgangen. Es mag sein, dass die auch kurz zusammenbricht beim Anlaufen, aber der Arduino ist davon unberührt. Drum funktionierts jetzt.

Chandler_B: AHH, ja, jetzt funktioniert es. Ich habe eine Flachbatterie mit 4,5V am Servo angeschlossen den GND vom Arduino mit der Batterie und dem Servo verbunden und das PWM Signal vom Arduino genommen. JEtzt läuft er. Ganz verstehe ich das aber nicht. Ihr habt gesagt, dass die 5V vom arduino nicht ausreichen (was ich euch ja auch glaube) , aber mit 4,5 Volt funktioniert es. Besten dank für die Antworten.

Die Servo weden nicht mit PWM angesteuert sondern mit einem PPM Signal. Das ist ein Impuls von 1mS bis 2mS Länge, der alle 20mS wiederholt wird (50Hz). Die Servo.h Standard-Bibliothek macht das und kann bis zu 12 Servo (Arduino UNO mit ATmega328) oder 48 Servo (Arduino MEGA 2560 mit ATmega2560) ansteuern.

Das Problem ist nicht die Spannung sondern der Strom. Die USB Schnittstelle kann per Definition 500mA liefern. Wenn Du mehr verlangst greift die Schutzschaltung im PC ein und schaltet (meist) die Spannungsversorgung des USB- Schnittstelle ab. Arduino hat auch eine selbstresetierende Sicherung von 500mA um die USB-Schnittstelle des PC zu schützen.

Eine Flachbatterie kann sehr viel mehr Strom liefern und so dem Servo den nötigen Strom für die Bewegung geben.

Grüße Uwe