PIDs and fun

Dependencies:   btbee m3pi_ng mbed FatFileSystemCpp

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();
 
     }
-    
-}
 
 
 
-
+}