so, jetzt ist mein programm fertig. funktioniert einwandfrei. der rp6 findet nun jede lichtquelle zuverlässig.
die werte sind auf einen schwach beleuchteten raum ausgelegt, nur für den fall, dass es jemand ausprobieren will.Code:#include "RP6RobotBaseLib.h" #define BATRANGE 500 #define RANGE 1005 void task_LDRinfo(void) {writeString_P("LDR_L: "); writeIntegerLength(adcLSL,DEC,4); writeString_P(" ; LDR_R: "); writeIntegerLength(adcLSR,DEC,4); writeChar('\n'); int16_t dif = ((int16_t)(adcLSL - adcLSR)); if(dif > 50) dif = 50; if(dif < -50) dif = -50; if(dif==50 && adcLSL<1005 & adcLSR<1005) {setLEDs(0b000001); moveAtSpeed(20,50);} else if(dif==-50 && adcLSL<1005 & adcLSR<1005) {setLEDs(0b000010); moveAtSpeed(50,20);} else if(adcLSL>1005 || adcLSR>1005) {moveAtSpeed(0,0); setLEDs(0b111111); writeString_P("Lichtquelle gefunden");} else{setLEDs(0b000000); moveAtSpeed(50,50);} } void bumpersStateChanged(void) {if(bumper_left) {move(60,BWD,DIST_MM(150),true); rotate(50,RIGHT,90,true); changeDirection(FWD); } if(bumper_right) {move(60,BWD,DIST_MM(150),true); rotate(50,LEFT,90,true); changeDirection(FWD);} } int main(void) {initRobotBase(); powerON(); BUMPERS_setStateChangedHandler(bumpersStateChanged); while(true) {task_LDRinfo(); task_RP6System(); task_ADC(); } return 0; }
mfg







Zitieren

Lesezeichen