ich stell mal das fertige programm rein
bei mir funktioniert es auf meiner selbstgebauten strecke mit einer Linienbreite von ca. 1,5 cm
Code:
#include "asuro.h"
#include <stdlib.h>
#include <stdio.h>
#define OFF_LEFT -1
#define ON_LINE 0
#define OFF_RIGHT +1
#define SPEED 170
unsigned int data[2];
int Offset;
int SLOWSPEED=SPEED;
int main(void)
{
int inlines;
int i=0;
int j=0;
int position;
Init();
FrontLED(ON);
StatusLED(GREEN);
LineData(data);
Offset = data[0] - data[1];
MotorDir(FWD,FWD);
MotorSpeed(SPEED,SPEED);
while(1){
LineData(data);
inlines = (data[0] - data[1]) - Offset;
if (inlines > 4)
{
StatusLED(GREEN);
BackLED(OFF,ON);
position=0;
}
else if (inlines < -4)
{
StatusLED(GREEN);
BackLED(ON,OFF);
position=1;
}
else {
StatusLED(RED);
BackLED(OFF,OFF);
position=3;
}
if(position==0){MotorSpeed(SLOWSPEED-84,SPEED);}
else if(position==1){MotorSpeed(SLOWSPEED+84,SPEED);}
else{ MotorSpeed(SPEED,SPEED);}
}
return 0;
}
Wenn ihr Verbesserungsvorschläge habt wäre ich euch sehr dankbar wenn ihr sie reinpostet. (Dann verbessert sich meine Note in Prozessregelung)
Lesezeichen