Servo wird nicht angesprochen

Hallo euch allen!

Ich komm mir gerade ziemlich doof vor, weil ich nicht mal das einfachste Ansteuern eines Servos via ArduinoOne Board hinzubekommen scheine...
Ich könnte schwören, dass es funktionierte, als ich es mal ausprobierte, als ich das Board neu hatte.
Jetzt wollte ich ein Projekt mittels Servo aufwerten und tada....

folgendes Problem:

der Servo tut nichts, obwohl er richtig angeschlossen ist.

verwendet wurde folgender Sketch:

 #include <Servo.h>   

Servo servoblau; 

void setup() 
{ 
servoblau.attach(8);
}  

void loop() 
{ 
servoblau.write(0);
delay(3000);
servoblau.write(90);
delay(3000);
servoblau.write(180);
delay(3000);
servoblau.write(20);
delay(3000);
}

Ich hatte dann mal gesucht und folgenden Sketch gefunden, der ohne die Library arbeitet und dann wurde der Servo auch korrekt angesprochen:

// Festlegen des Servo Pins
int servo = 7;

// Weitere Variablen für PWM und Drehwinkel (Position)
int pwm;
int pos;

/* Funktion um das Servo zu bewegen. Hier wird die Position
berechnet und der Wert der neuen Position an das Servo
übergeben. */

void servoMove(int servo, int pos){
  //Winkel in Mikrosekunden umrechnen
  pwm = (pos * 11) + 500;
  // Servo Pin auf HIGH zum aktivieren des Servos
  digitalWrite(servo, HIGH);
  // Kurze Zeit warten
  delayMicroseconds(pwm);
  // Servo Pin auf LOW zum deaktivieren des servos
  digitalWrite(servo, LOW);
  // 20 ms warten
  delay(20);
}

// Initialisieren des Servo Pins
void setup() {
   pinMode(servo, OUTPUT);
}

// Hauptprogramm
void loop() {
  for(pos=0; pos<180; pos++) {
    servoMove(servo, pos);
  }
}

Allerdings bin ich über den zweiten Weg nicht auf einen grünen Zweig gelangt, das zu erreichen, was ich eigentlich möchte:

Auf Knopfdruck soll sich der Servo um X grad bewegen, kurz (5s) verharren und dann wieder in die Ausgangsstellung zurück gehen.

Ich bin für jede Info dankbar, sowohl für Ansätze, die meine Idee direkt umsetzen als auch für Ideen warum der erstgenannte Skech keinerlei Wirkung zeigt.

{

servoblau.attach(smiley-cool;

}

Was soll das denn sein? Da sollte eigentlich die Pin Nummer des Servo stehen.

Gruß

tut es auch, keine Angst

nur wird aus
( 8 ) -> ( 8)

Wenn es mit der testweisen Ansteuerung der Extremwerte 0° und 180° nicht funktioniert:

servoblau.write(0);

delay(3000);

servoblau.write(90);

delay(3000);

servoblau.write(180);

versuche es mit weniger extremen Steuerwinkeln:

servoblau.write(45);

delay(3000);

servoblau.write(90);

delay(3000);

servoblau.write(135);

Wenn es dann damit funktioniert, passen die Standard-Impulszeiten der Library nicht zu Deinem Servo und Du müßtest den Servo mit besser passenden Impulszeiten für den 0° und 180° Drehwinkel initialisieren.

Lynax:
tut es auch, keine Angst

nur wird aus
( 8 ) -> ( 8)

Ja, das passiert wenn man statt CODE-TAGS QUOTE-TAGS verwendet.

Wie versorgst Du das Servo mit Strom? Sind die Massen verbunden?
Grüße Uwe

der Servo hat drein Anschlüsse, die ich direkt mit dem Arudino verbinde

Anschluss Servo // Arduino

gelb - pin8 o.a.
rot - 5v
braun - gnd

Damit wir OK sagen können, brauchen wir noch das Model des Servos.
Grüße Uwe

Hier rumliegen und ausprobiert habe ich

TowerPro MicroServo9g - SG90

Modelcraft Y-3009

Modelcraft MC-410

Probleme habe ich mit allen genannten

laut Datei:Steckerbelegung.jpg – RC-Network Wiki ja
laut http://www.mfg-blender.de/Tipps/Steckerbelegung/stecker.htm Typ Conrad: ja und Typ JR nein

Das beste wird sein Du fragst bei Conrad mal nach.

Grüße Uwe

Lynax:
Hier rumliegen und ausprobiert habe ich

TowerPro MicroServo9g - SG90
Modelcraft Y-3009
Modelcraft MC-410

Probleme habe ich mit allen genannten

Bei einer 5V Stromversorgung über das Arduino-Board sollte zumindest ein kleines "Micro-Servo" laufen, wenn das Board an einer normalen PC USB-Schnittstelle hängt.

Falls Du das Board aber nur über einen Laptop/Notebook verbunden hast, kann es sein, dass Laptop oder Notebook zu wenig Strom hergeben, um damit über ein Arduino-Board auch noch einen Servo zu betreiben. Manche USB-Schnittstellen mobiler Rechner vertragen nur 200 oder sogar nur 100mA statt normal mindestens 500 mA, und das reicht ggf. nicht mal für einen einzigen Micro-Servo aus.

hab Arduino neu installiert und jetzt klappt wieder alles :slight_smile:

Hatte irgendwie schon so das Gefühl, dass was mit der Lib nicht stimmt, wobei ein neu aufsetzen dieser allein das Problem nicht gelöst hat.

Das hätte ich nicht gedacht.
Wieder was dazugelernt.
Grüße Uwe

Die Servo-Bibliothek benutzt Timer des Controllers. Könnte sein daß die ATmega328 Timer-Ansteuerung nicht kompatibel mit der des ATMEGA8535 ist.
Grüße Uwe