Dependencies: Farbsensor IRSensorLib PID_Control Servo mbed PixyLib
Diff: Fahren.cpp
- Revision:
- 1:5c44e2462a8b
- Parent:
- 0:422088ad7fc5
- Child:
- 2:dea0bab5e45c
--- a/Fahren.cpp Wed May 10 08:59:22 2017 +0000 +++ b/Fahren.cpp Wed May 10 14:48:50 2017 +0000 @@ -59,75 +59,81 @@ if(sensors[0]<=0.1 && sensors[1]<=0.12 && sensors[5]<=0.12) { //wenn hinten rechts => leichte linkskurve if(sensors[2]<=0.25) { - pwmLeft=0.35; - pwmRight=0.55; - printf("zurueck-linkskurve\n"); + pwmLeft->write(0.35); + pwmRight->write(0.55); + pc->printf("zurueck-linkskurve\n"); state=zurueck_l; } if(sensors[4]<=0.25) { - pwmLeft=0.35; - pwmRight=0.55; - printf("zurueck-rechtskurve\n"); + pwmLeft->write(0.35); + pwmRight->write(0.55); + pc->printf("zurueck-rechtskurve\n"); state=zurueck_r; } if(sensors[4]>=0.25 && sensors[2]>=0.25) { - pwmLeft=0.4; - pwmRight=0.6; + pwmLeft->write(0.4); + pwmRight->write(0.6); state=zurueck; - printf("zurueck-gerade\n"); + pc->printf("zurueck-gerade\n"); } } // Wenn Front etwas sehen => drehen*********************************** else if(sensors[1] <= wand || sensors[5]<=wand){ - pwmLeft=0.35; - pwmRight=0.65; + pwmLeft->write(0.35); + pwmRight->write(0.65); } else if(sensors[0]<0.25 && sensors [1]<=wenden) { - pwmLeft=0.4; - pwmRight=0.4; - printf("drehen links\n\n\n"); + pwmLeft->write(0.4); + pwmRight->write(0.4); + pc->printf("drehen links\n\n\n"); } else if (sensors[0]<0.25 && sensors [5]<=wenden){ - pwmLeft=0.6; - pwmRight=0.6; - printf("drehen\n\n\n"); + pwmLeft->write(0.6); + pwmRight->write(0.6); + pc->printf("drehen\n\n\n"); } else if(sensors[0]<0.25) { if (rand()%2==0 && state != drehen) { - pwmLeft=0.4; - pwmRight=0.4; + pwmLeft->write(0.4); + pwmRight->write(0.4); } else if (rand()%2 != 0 && state != drehen) { - pwmLeft=0.6; - pwmRight=0.6; + pwmLeft->write(0.6); + pwmRight->write(0.6); } state=drehen; } //Wenn Front-Left etwas sehen => nach Rechts************************** else if(sensors[5]<=wenden) { - printf("rechts\n"); - pwmLeft=0.65; - pwmRight=0.45; + pc->printf("rechts\n"); + pwmLeft->write(0.65); + pwmRight->write(0.45); state=rechts; } // Wenn Front-Right etwas sehen => Links******************************* else if(sensors[1]<=wenden) { - printf("Links\n"); - pwmLeft=0.55; - pwmRight=0.35; + if(pc) + pc->printf("Links\n"); + pwmLeft->write(0.55); + pwmRight->write(0.35); state=links; } //Wenn kein Sensor anspricht => gerade aus***************************** else if(sensors[0]>=0.26) { - printf("gerade\n"); - pwmLeft=0.65; - pwmRight=0.35; + if(pc) + pc->printf("gerade\n"); + pwmLeft->write(0.65); + pwmRight->write(0.35); state=gerade; } + else { + if(pc) + pc->printf("gerade2\n\r"); + } } \ No newline at end of file