![](/media/cache/group/default_image.jpg.50x50_q85.jpg)
PIDs and fun
Dependencies: btbee m3pi_ng mbed FatFileSystemCpp
Diff: main.cpp
- Revision:
- 6:75a6f6b50188
- Parent:
- 5:3f29267b18e3
- Child:
- 7:74c9a0fbf2b1
--- a/main.cpp Wed May 27 12:24:22 2015 +0000 +++ b/main.cpp Thu May 28 11:01:48 2015 +0000 @@ -15,9 +15,11 @@ #define MIN 0 // PID terms -#define P_TERM 1.5 -#define I_TERM 0 -#define D_TERM 25 +double P_TERM = 1.5; +double I_TERM = 0; +double D_TERM = 25; +char arr_read[30]; +int chars_read; int main() { @@ -67,7 +69,7 @@ m3pi.printf("Line PID"); wait(2.0); - + btbee.printf("Now calibrating \n"); m3pi.sensor_auto_calibrate(); @@ -150,9 +152,6 @@ m3pi.calibrated_sensor(LapTest); s1 = LapTest[0]; - s2 = LapTest[1]; - s3 = LapTest[2]; - s4 = LapTest[3]; s5 = LapTest[4]; if (s1 > 500 and s5 > 500) { @@ -160,6 +159,7 @@ } if (s1 < 500 and s5 < 500 and checkvar == 1 and counter == -1) { + LapTimer.reset(); LapTimer.start(); } @@ -217,23 +217,87 @@ TimeAve = (Time1 + Time2 + Time3 + Time4 + Time5)/5.0; m3pi.locate(0,1); m3pi.printf("%f", TimeAve); - btbee.printf("Average time per lap: %f ", TimeAve); - exit(1); + btbee.printf("Average time per lap: %f \n", TimeAve); + btbee.printf("\n"); + btbee.printf("Enter P value, I value, and D value separately \n"); + + while(1) { + + + if (btbee.readable()) { + + btbee.printf("Enter P valure: \n"); + + + btbee.read_all(arr_read, 30, &chars_read); + P_TERM = atof(arr_read); + + btbee.printf("P term is %f \n", P_TERM); + + wait(1.0); + + break; + + } + + } + + while(1) { + + if(btbee.readable()) { + + btbee.printf("Enter I value: \n"); + + btbee.read_all(arr_read, 30, &chars_read); + I_TERM = atof(arr_read); + + btbee.printf("I term is %f \n", I_TERM); + + wait(1.0); + + break; + + } + + } + + while(1) { + + if(btbee.readable()) { + + btbee.printf("Enter D value: \n"); + + btbee.read_all(arr_read, 30, &chars_read); + D_TERM = atof(arr_read); + + btbee.printf("D term is %f \n", D_TERM); + + wait(1); + + btbee.printf("Starting again with new parameters"); + + counter = -1; + + + break; + + } + + } + } + + - timer = LoopTime.read(); - btbee.printf("%f", timer); - btbee.printf("\n"); - if(timer < 0.005) { - wait(0.005 - timer); - } - timer = 0; - LoopTime.reset(); + + //if(timer < 0.005) { +// wait(0.005 - timer); +// } +// timer = 0; +// LoopTime.reset(); } - -} - +}