PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Asuro-Motoren-Programme funktionieren nicht



mize03
05.02.2010, 15:54
hallo leute,

ich bin echt total am verzweifeln.](*,)
immer wenn ich ein programm mit der funktion MotorDir() oder MotorSpeed() verwende funktioniert das ganze 1 oder 2 mal in einer schleife dann aber macht mein asuro was er will. das einemal läuft ein oder beide motoren durch ohne zu stoppen


#include "asuro.h"

int Zleep(int d)
{
int a = 0;
while (a < d)
{
Sleep(100);
a++;
}
}

int main(void)

{
Init();
int w = 720;
while(0 < 1)
{
FrontLED(ON);
Zleep(w);
FrontLED(OFF);

MotorDir(FWD,RWD);
MotorSpeed(180,180);
Zleep(w);

MotorDir(RWD,FWD);
Zleep(w);

}
while(1)
return 0;

}




ich brauch echt dringend eure hilfe

schonmal vielen dank für eure antworten ;)


grüße mize03

josua
06.02.2010, 14:53
sorry, kann ich dir leider nicht viel helfen.
hast du schon probiert, ein ganz einfaches motorenprogramm zu flashen

#include "asuro.h"

int main(void)
{
Init();
MotorDir(FWD,FWD);
MotorSpeed(150,150);
while(1);
return 0;
}

dann sieht man obs am asuro oder am programm liegt!

gruß josua

mize03
07.02.2010, 13:35
hey danke für den vorschlag,

funktioniert soweit alles solange kein richtungswechsel oder stop eingebaut ist.
dann fängt er nach 4 - 5 mal an zu spinnen und die statusled fakelt orange auf :(
echt blöd.
sonst klappt aber alles.
kann es sonst ein fehler in der hardware sein?

grüße mize03

josua
07.02.2010, 13:46
sorry, da hab ich leider keine ahnung was des sein kann.

gruß josua

Valen
07.02.2010, 14:00
Mit dein (erste) program werden die motoren gleich von vorwärts auf ruckwärts umgeschaltet. Dadurch wird der H-brucke wommit der motoren angesteuert werden sehr schwer belasted. Möglich hat das auch ein betriebspannungsfall verursacht wonach den bootloader wieder von neue anfangt. (deshalb die orangen statusled)

Man macht das mit einer normalen Pkw auch nicht. Ich wurde empfeheln erst ein brems moment einzubauen, danach die motoren im gegenständige richtung drehen lassen.

mize03
07.02.2010, 14:06
Achso okay ;)

sollte ich dann auch noch eine kurzes Sleep() einbauen oder reicht einfach nur MotorDir(BREAK,BREAK)?

ach und natürlich vielen dank euch beiden ;)

grüße mize03

Valen
07.02.2010, 14:14
Ja, gerade nach MotorDir(BREAK,BREAK) söllte er noch ein bisschen warten damit der geschwindigkeit ablauft zu nul.

mize03
07.02.2010, 14:25
Hey super vielen dank ;)

funktioniert jetzt alles fehlerfrei:)

vielen dank mize03

josua
07.02.2010, 17:12
cool, dann is ja alles in ordnung!!!!!!!!!!!!!!!
:)
Gruß josua