also bei meinem asuro is ziemlich sichtbar was kaputt ist :P in der mitte durchgeborchen...hat sich draufgesetzt..aber ich war schuld hab ihn aufem boden stehen lassen...haste getestet obs geht?
edit: hab wieder nen funktionstüchtigen asuro...
so ich habe das programm jetzt getestet und es funktioniert soweit ganz gut...
jetzt habe ich folgendes problem:
Code:
#include "asuro.h"
timewait(unsigned int t) // millisekundenwert als t eingeben
{
unsigned int pause;
for (pause=0; pause<t; pause++) // 1 millisekunde Pause
{ Sleep (72);
}
}
int main(void) {
unsigned int data[2];
char links,rechts;
int diffl,diffr,i,ledonl,ledonr,ledon,rab,x,rr,lr;
Init();
for (i = 0; i < 2; i++ ) {
FrontLED(ON);
LineData(data); // Messung mit LED ON
ledonl = data[0];
ledonr = data[1];
timewait(500);
ledon = (ledonl - ledonr); // Regelabweichung mit LED ON
rab = ledon; // Regelabweichung
timewait(500);
}
while(1) {
x=120; //maximalgeschwindigkeit
FrontLED(ON);
LineData(data);
diffl=data[0]-data[1]-rab; //diff links zu rechts
diffr=data[1]-data[0]-rab; //diff rechts zu links
links=x-(diffr*4);
rechts=x-(diffl*4);
if (links<=0)
{
BackLED(ON,OFF);
links = links*-1;
lr=RWD;
x=90;
}
if (rechts<=0)
{
BackLED(OFF,ON);
rechts = rechts*-1;
rr=RWD;
x=90;
}
if (x-diffl*6>0)
{
lr=FWD;
}
if (x-diffr*6>0)
{
rr=FWD;
}
if (links>x)
{
links=x;
}
if (rechts>x)
{
rechts=x;
}
MotorSpeed(links,rechts);
MotorDir(lr,rr);
}
return 0;
}
ich wollte einbauen , dass wenn die kurve zu scharf ist nicht nur die geschwindigkeit variiert wird sondern , dass ein motor sogar "RWD" dreht.
...das funktioniert nicht ... hat jmd nen lösungsvorschlag?? wäre sehr dankbar
Lesezeichen