PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Ansteuerung von mehr als einem Servo schlägt fehl



Fabian E.
17.05.2009, 11:40
Hallo,

ich benutze zur Zeit diese Lib (https://www.roboternetz.de/phpBB2/viewtopic.php?t=45223) zum Ansteuern meiner Servos.
Allerdings klappt das nur bei einem Servo. Sobald ich einen zweiten anschließe, bewegt sich dieser nicht.
Moment, ich muss mich verbessern, es liegt nicht an der Anzahl, sondern am Pin, ich kann mit der Lib nur Servo 1 ansteuern... Alle anderen nicht.
Es kommt kein Fehler, es passiert einfach nichts.
Der Code sollte eigentlich soweit okay sein...

case CMD_SET_SERVO_POS:
switch(params[1])
{
case 1: servo1_position = params[2];
break;
case 2: servo2_position = params[2];
break;
case 3: servo3_position = params[2];
break;
case 4: servo4_position = params[2];
break;
case 5: servo5_position = params[2];
break;
case 6: servo6_position = params[2];
break;
case 7: servo7_position = params[2];
break;
case 8: servo8_position = params[2];
break;
}
break;
Joar, ich hab keine Ahnung woran das liegen könnte... Vielleicht kann mir ja jemand helfen =)

Liebe Grüße,
Fabi

Dirk
17.05.2009, 11:49
Hallo Fabi,

der Code-Schnipsel ist ok, aber das Problem kann im großen Rest des Progs liegen.

Gruß Dirk

Fabian E.
17.05.2009, 12:10
Inwiefern? Hast du ein Beispiel dafür was NICHT passieren darf?

radbruch
17.05.2009, 12:22
Hast du ein Beispiel dafür was NICHT passieren darf?
Sehr coole Anwort. Das gibt sicher 'ne lange Liste...

Gruß

mic

Fabian E.
17.05.2009, 12:29
Deswegen ein BEISPIEL... ;)
Mich wunderts halt, dass der eine klappt...

Gruß, Fabi

Dirk
17.05.2009, 12:46
Hast du ein Beispiel dafür was NICHT passieren darf?
Joar, ... also ein Beispiel ..., was fällt mir da ein ... :-k

Ok: Man sollte in sein Prog genauso viele linke ( "{" ) wie rechte ( "}" ) Klammern einbauen.

Gruß Dirk =P~

Fabian E.
17.05.2009, 12:50
Ich glaube nicht, dass sich im entgegegesetzten Fall überhaupt ein Servo bewegen würde.

Nein mal im Ernst, würde es helfen den Rest zu posten? Ist halt nicht wenig...
Das ganze ist ein Programm um den RP6 vom PC fernsteuern zu können.

Fabi

radbruch
17.05.2009, 12:51
Das Programm sollte natürlich Fehler- und Warnungsfrei übersetzbar sein. Das würde ich mal als Grundlage vorraussetzen. Ebenso wie der richtige Anschluß der Servos und eine stabile Spannungsversorgung.

Wäre es nicht besser eine Liste mehrerer Beispiele zu erstellen als für jedes Beispiel einen Beitrag zu erstellen?


Nein mal im Ernst, würde es helfen den Rest zu posten? Ist halt nicht wenig... Ja es würde helfen. Wenn es dir zuviel erscheint kannst du uns gerne eine Version deines Programms zeigen in der du dein Problem aufs nötigste reduziert hast. Denn genau das würden wir auch machen.

Gruß

mic

Fabian E.
17.05.2009, 13:38
Das war ja mal wieder klar...
Rechner machen immer das was man ihnen sagt.... Das war schon immer so...
Da ist dann wohl der Mensch der Dumme... Und so ist es auch hier... :-#
Ist natürlich schon blöd wenn man die InitServo-Methode zweimal mit unterschiedlichen Parametern aufruft...

Naja, jetzt klappen alle Pins... Allerdings schafft er keine zwei Servos zu betreiben. Ich denke es liegt am Spannungseinbruch, er resettet sich nämlich sofort,
wenn ich mein Programm mit 2 angeschlossenen Servos starten will.
Wie muss ich denn genau vorgehen, wenn ich eine externe Stromversorgung für meine Servos haben will?
Sagen wir ich habe ein Vierer-Akkupack. Das sind ja dann 4.8V. Da dann einfach die Plus der Servos an das Pack und die Masse natürlich auch und dann noch Masse vom RP6 und dem Akkupack verbinden?
Reicht das? Oder muss da noch mehr verkabelt werden?

Liebe Grüße,
Fabi

radbruch
17.05.2009, 13:45
Ja, das reicht.

Fabian E.
17.05.2009, 14:03
Gut, vielen Dank =)

Fabian E.
17.05.2009, 14:34
Na, das klappt ja richtig perfekt und auf Anhieb! =)

Vielen, vielen Dank! =)