Servus, hab mich mal an der Linienverfolgung des Asuros ausgelassen, aber irgenwie spackt der voll ab und zappelt rum, als ob er behindert wäre ...
Welche Werte schreibt denn die Linienverfolgungsfunktion in das Integerarray ?? Wie groß ist die Werte differenz Zwischen den 2 Fototransistoren, wenn der eine eine Schwarz "sieht" und der andere Weiß ?? Wenn ich die Integerwerte mit dem terminalprogramm an den Computer sende wird mir auch nur Mist angezeigt, werden die Ingerwerte in AscII-Zeichen umgewandelt oder was passiert da ??
Wäre cool, wenn sich jemand die Zeit nimmt und mich aufklärt....
P.S.:Unten is der Code von dem Programmfrag das ich zur Linienverfolgung geschrieben haben.
Code:
#include "asuro.h"
unsigned int fototransistor[2];
int i;
void LinieLinks(void)
{
for(i=0;i<=20;i++)
{
MotorDir(RWD,RWD);
MotorSpeed(100,120);
Sleep(255);
}
for(i=0;i<=20;i++)
{
MotorDir(BREAK,RWD);
MotorSpeed(100,120);
Sleep(255);
}
}
void LinieRechts(void)
{
for(i=0;i<=50;i++)
{
MotorDir(RWD,RWD);
MotorSpeed(100,120);
Sleep(255);
}
for(i=0;i<=50;i++)
{
MotorDir(BREAK,RWD);
MotorSpeed(100,120);
Sleep(255);
}
}
int main(void)
{
FrontLED(ON);
do
{
FrontLED(ON);
SerWrite(fototransistor[0],3);
SerWrite("-",1);
SerWrite(fototransistor[1],3);
Init();
LineData(fototransistor);
for(i=0;i<=50;i++)
{
MotorDir(FWD,FWD);
MotorSpeed(100,120);
Sleep(255);
}
if((fototransistor[0]-fototransistor[1])<(-100)) //Linie links
{
BackLED(ON,OFF);
LinieLinks();
}
if((fototransistor[0]-fototransistor[1])>100) //Linie rechts
{
BackLED(OFF,ON);
LinieRechts();
}
}
while(1);
return 0;
}
Lesezeichen