Sensoren auslesen/umwandeln/codieren und State Maschine

Dependencies:   mbed

Fork of StateMachine_1 by Roboshark

Revision:
4:91a9737e4821
Parent:
2:a227732e1412
--- a/main.cpp	Thu Apr 19 12:04:49 2018 +0000
+++ b/main.cpp	Fri Apr 20 17:49:36 2018 +0000
@@ -1,75 +1,54 @@
-#include <mbed.h>
 
-#include "EncoderCounter.h"
-#include "Controller.h"
-#include "IRSensor.h"
+// Main zum Testen der IR Sensoren
+//V04.18
+// V. Ahlers
 
-// DigitalOut myled(LED1);
+#include <mbed.h>
+#include "IRSensor.h"
+#include"StateMachine.h"
 
-//DigitalOut led0(PC_8);
-//DigitalOut led1(PC_6);
-//DigitalOut led2(PB_12);
-//DigitalOut led3(PA_7);
-//DigitalOut led4(PC_0);
-//DigitalOut led5(PC_9);
 
-//AnalogIn distance(PB_1);
-//DigitalOut enable(PC_1);
-//DigitalOut bit0(PH_1);
-//DigitalOut bit1(PC_2);
-//DigitalOut bit2(PC_3);
-
-IRSensor irSensorF(PC_2);
-IRSensor irSensorR(PC_3);
-IRSensor irSensorL(PC_5);
+AnalogIn IrRight(PC_3);
+AnalogIn IrLeft (PC_5);
+AnalogIn IrFront(PC_2);
+float disR = 0;
+float disL = 0;
+float disF = 0;
 
-BottomSensor lineDetector(RX/D0);
-
-DigitalOut enableMotorDriver(PB_2);
-DigitalIn motorDriverFault(PB_14);
-DigitalIn motorDriverWarning(PB_15);
-
-PwmOut pwmLeft(PA_9);
-PwmOut pwmRight(PA_8);
-
-EncoderCounter counterLeft(PB_6, PB_7);
-EncoderCounter counterRight(PA_6, PC_7);
+float dis2R = 0;
+float dis2L = 0;
+float dis2F = 0;
+int IrR = 0;
+int IrL = 0;
+int IrF = 0;
+int caseDrive = 0;
 
-Controller controller(pwmLeft, pwmRight, counterLeft, counterRight);
+IRSensor iRSensor(IrRight, IrLeft, IrFront, dis2R, dis2L, dis2F);
+StateMachine stateMachine(IrR, IrL, IrF);
 
-int main()
-{
+
 
-    controller.setDesiredSpeedLeft(150.0f); // Drehzahl in [rpm]
-    controller.setDesiredSpeedRight(-150.0f);
-    enable = 1;
-    enableMotorDriver = 1; // Schaltet den Leistungstreiber ein
-
+int main() {
+ 
+    
+    printf("\n die Distanzen sind\n");
     while(1) {
-
-        myled =! myled;
-
-        if (irSensorf.read() < 0.2f) led0 = 1;
-        else led0 = 0;
+        float disR = iRSensor.readR(); // Distanz in mm
+        float disL = iRSensor.readL();
+        float disF = iRSensor.readF();
+        dis2R = disR;
+        dis2L = disL;
+        dis2F = disF;
+        int IrR = iRSensor.codeR();     // min Distanz unterschritten = 1
+        int IrL = iRSensor.codeL();
+        int IrF = iRSensor.codeF();
+        int caseDrive = stateMachine.drive(); //entscheidung welcher Drive Case
         
-        if (irSensorR.read() < 0.2f) led1 = 1;
-        else led1 = 0;
         
-        if (irSensorL.read() < 0.2f) led2 = 1;
-        else led2 = 0;
-        
-        //if (irSensor3.read() < 0.2f) led3 = 1;
-        //else led3 = 0;
-        
-        //if (irSensor4.read() < 0.2f) led4 = 1;
-        //else led4 = 0;
-        
-        //if (irSensor5.read() < 0.2f) led5 = 1;
-        //else led0 = 5;
-        
-        printf("iSumLeft: %f, iSumRight: %f, counterDiff; %d \n\r", controller.getIntegralLeft(), controller.getIntegralRight(), (counterLeft.read()+counterRight.read()));
-                
-        wait(0.2f); // 100 ms
-        
+        printf ("IR Right = %f \n", disR);
+        printf("IR Left = %f \n",disL);
+        printf("IR Front = %f\n",disF);
+
+        wait (1.0);
     }
-}
+}
\ No newline at end of file