An auto car with 3 IR sensors.

Dependencies:   Ping

Revision:
15:1d440beb24d3
Parent:
13:87cd0ae37e06
Child:
16:3202c73881a3
--- a/main.cpp	Sun Jul 01 13:12:37 2018 +0000
+++ b/main.cpp	Thu Jul 05 09:33:33 2018 +0000
@@ -2,12 +2,24 @@
 
 #include "autocar.h"
 
-// trigger button and triggered LED
-DigitalOut led1(LED1);
-DigitalIn pb(PC_13);
+DigitalOut led1(LED1); // LED indicating the car is running
+DigitalIn pb(PC_13); // triggter button
 int lastButtonState = 0;
 bool ledState = false;
 
+// output used for controlling motors
+DigitalOut M1_enable(D6);
+DigitalOut M2_enable(D5);
+DigitalOut M1_in1(D3); // connected to left wheel
+DigitalOut M1_in2(D2); // connected to left wheel
+DigitalOut M2_in3(D1); // connected to right wheel
+DigitalOut M2_in4(D0); // connected to right wheel
+
+// input used for IR sensors
+extern AnalogIn leftIR(A1); // left sensor
+extern AnalogIn middleIR(A3); // middle sensor
+extern AnalogIn rightIR(A5); // right sensor
+
 // PID control params
 int values = 0;
 float Kp = 0.2, Ki = 0.0001, Kd = 1;
@@ -15,9 +27,9 @@
 // main() runs in its own thread in the OS
 int main()
 {
-    /*bool left = false;
+    bool left = false;
     bool middle = false;
-    bool right = false;*/
+    bool right = false;
 
     // here I use 500 as threshold
     int threshold = 500;
@@ -47,11 +59,11 @@
         if(ledState) {
             // not on track: > 500
             // on track (black): < 500
-            //readIR(&left, &middle, &right, threshold);
-            values = readIRValues(); // read IR values
+            readIR(&left, &middle, &right, threshold);
+            //values = readIRValues(); // read IR values
 
-            //driveMotor(left, middle, right);
-            driveMotorPID(values, Kp, Ki, Kd);
+            driveMotor(left, middle, right);
+            //driveMotorPID(values, Kp, Ki, Kd);
         }
     }
 }