ich stell mal das fertige programm rein
bei mir funktioniert es auf meiner selbstgebauten strecke mit einer Linienbreite von ca. 1,5 cm
Wenn ihr Verbesserungsvorschläge habt wäre ich euch sehr dankbar wenn ihr sie reinpostet. (Dann verbessert sich meine Note in Prozessregelung)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; }







Zitieren
Lesezeichen