PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Servos ES-05 am Asuro



frieMo
07.08.2010, 18:29
Hallo

ich versuche grade zwei Servos vom oben genannten Typ an meinem Asuro zum Laufen zu bringen.

Ich hab die beide mit der Stroversorgung an Out+ und Out- angeschlossen und das PWM Kabel jeweils an eine BackLED.

Nach einigem Suchen hab ich rausgefunden, dass der linke Anschlag bei 1mS liegt und der rechte Anschlag bei 2mS.

Ich habs mit folgendem Code versucht (nur um mal zu sehen obs funktioniert):

#include "asuro.h"

int main(void)
{
Init();
BackLED(ON,OFF);
Sleep(104);
BackLED(OFF,OFF);
Sleep(255);Sleep(255);Sleep(255);Sleep(255);
BackLED(ON,OFF);
Sleep(104);
BackLED(OFF,OFF);
Sleep(255);Sleep(255);Sleep(255);Sleep(255);

while(1);
return 0;
}

Allerdings funktioniert das nicht.

Beim Einschalten zucken die Servos (ja beide, obwohl ich den einen gar nicht ansteuern will) nur einmal und dann passiert garnichts mehr.

Der Servoarm ist dann ein Stückchen weiter, und beim erneuten Ansteuern zucken wieder beide.

Was ist da los?

Ich hab bis jetzt keine Erfahrung mit Servos.
Ich hab mich vorher ein bisschen schlau gemacht und eigentlich klang das ziemlich einfach. Was es jetzt leider nicht ist.

radbruch
07.08.2010, 19:15
Hallo

Deine Schleife wird nur einmal ausgeführt:


#include "asuro.h"

int main(void)
{
Init();
while(1)
{
BackLED(ON,OFF);
Sleep(108);
BackLED(OFF,ON);
Sleep(108);
BackLED(OFF,OFF);
Sleep(255);Sleep(255);Sleep(255);
}
return 0;
}

Beim Einschalten zucken alle Servos ;)

Gruß

mic

[Edit]
Ich möchte dir noch ein Lob aussprechen. Dein erster Beitrag ist wirklich vorbildlich. Du beschreibst deine die Hardware, zeigst dein Programm und schilderst das, was das Programm bewirkt. Außerdem läßt dein Beitrag erkennen, dass du dich selbst bemüht hast Infos zum Problem zu finden. Echt klasse, weiter so.

frieMo
07.08.2010, 19:46
Danke.

Ich hab meinen Asuro schon länger.

Allerdings stand er, nachdem ich ihn aufgebaut hatte und ein bisschen mit dem programmieren warm geworden bin, nur in der Ecke.

Jetzt hab ich ihn mal wieder raus geholt und habe mir vorgenommen mich ein bisschen mehr mit ihm zu beschäftigen (Asuro war sooo einsam).

Ich hab deine vorgeschlagene Änderung ausprobiert, aber es tur sich immernoch nichts.
Nur die StatusLED leuchtet grün.

Sowas hatte ich schonmal (ich weis allerdings nicht mehr was ich damals gemacht hab).

Ich bin außerdem noch nicht warm genug mit C, sodass ich z.B. immernoch meine Programme "test" nennen muss.

Bin grad auf der Suche nach Information was ich ändern muss, damit ich das ändern kann.

radbruch
07.08.2010, 19:58
Hallo


Nur die StatusLED leuchtet grün.Hast du das Programm gespeichert vor dem Kompilieren? Ich habe es nicht selbst getestet, bin aber davon ausgegangen, dass es funktioniert.

Gruß

mic

frieMo
07.08.2010, 20:01
Ja ich habs vorher gespeichert.

Stimmt, das wars was ich damals mal vergessen hatte, aber diesmal hab ichs vorher gespeichert.

radbruch
07.08.2010, 20:04
Leuchten die BackLEDs? Funktioniert ein StatusLED(RED); nach dem Init();?

frieMo
07.08.2010, 20:32
Ja funktioniert.

Aber das mit den Servos funktioniert immernoch nicht
:(