Das programm ist eigentlich simple( Ich hab heute um 2 uhr morgen gemacht für eine Ausführung in der TUHH, und hab daran noch nicht weiter gearbeitet).
und, die schaltung? hmm, ich weis nicht wie ich es machen soll, einfach ne pnp-transistor: base zu frontled-kabel, current zu vcc, emiter zu die Sensoren und ir-led (bei Sensoren die kurzere beine und bei led die längere), und die längere beine der Sensoren verbindest du mit ADC-eingang der linienverfolgung und die kurzere bein der LED mit ground.Code:#include "lib/essential.c" #include "lib/analog.c" #define FSPEED 0xFF #define LSPEED 0x99 #define MDIST 15 #define DIST 100 #define FILTER 15 unsigned short data[2]; signed short diff; int main(void) { Init(); FrontLED(OFF); // Infrarot einschalten while(1) { Analog(data); if(data[LEFT] > MDIST && data[RIGHT] > MDIST) { diff = data[LEFT] - data[RIGHT]; if(abs(diff) < FILTER) { MotorSpeed(FSPEED, FSPEED); if(data[LEFT] > DIST + FILTER) MotorState(RWD, RWD); else if(data[LEFT] < DIST) MotorState(FWD, FWD); else MotorState(BREAK, BREAK); } else { MotorSpeed(FSPEED, FSPEED); if(diff > 0) MotorState(RWD, FWD); else MotorState(FWD, RWD); } } else { MotorState(BREAK, BREAK); } } return 0; }
die verbindungskabel soll ambesten so aussehen:
http://schule.tu-harburg.de/wettbewe...nkelsensor.pdf
PS: widerstände nicht vergessen, und die library ist nicht standard, aber es soll auch mit normales asuro.h gehen (LineData)





Zitieren


Lesezeichen