---
Dependencies: mbed
Fork of MicroMouse_MASTER_FIVE by
Diff: main.cpp
- Revision:
- 0:a9fe4ef404bf
- Child:
- 1:d9e840c48b1e
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Wed Mar 07 14:06:19 2018 +0000 @@ -0,0 +1,136 @@ +#include "mbed.h" + +#include "IRSensor.h" +#include "EncoderCounter.h" +#include "LowpassFilter.h" +#include "Controller.h" + +DigitalIn button(USER_BUTTON); +DigitalOut myled(LED1); +DigitalOut led0(PC_8); +DigitalOut led1(PC_6); +DigitalOut led2(PB_12); +DigitalOut led3(PA_7); +DigitalOut led4(PC_0); +DigitalOut led5(PC_9); + +DigitalOut enableMotorDriver(PB_2); +DigitalIn motorDriverFault(PB_14); +DigitalIn motorDriverWarning(PB_15); + +PwmOut pwmLeft(PA_8); +PwmOut pwmRight(PA_9); + +EncoderCounter controllerLeft(PB_6, PB_7); +EncoderCounter controllerRight(PA_6, PC_7); + +Controller controller(pwmLeft, pwmRight, controllerLeft, controllerRight); + + +//AnalogIn analog_value(A0); + +DigitalOut enable(PC_1); + + +AnalogIn distance(PB_1); //Kreieren der Ein - und Ausgangsobjekte +DigitalOut bit0(PH_1); +DigitalOut bit1(PC_2); +DigitalOut bit2(PC_3); + + + +IRSensor irSensor0(distance, bit0, bit1, bit2, 0); +IRSensor irSensor1(distance, bit0, bit1, bit2, 1); +IRSensor irSensor2(distance, bit0, bit1, bit2, 2); +IRSensor irSensor3(distance, bit0, bit1, bit2, 3); +IRSensor irSensor4(distance, bit0, bit1, bit2, 4); +IRSensor irSensor5(distance, bit0, bit1, bit2, 5); + +int main() { + + + enableMotorDriver = 1; // Schaltet den Leistungstreiber ein + + enable = 1; + + while(1) { + + + + float distance0 = irSensor0.read(); + float distance1 = irSensor1.read(); + float distance2 = irSensor2.read(); + float distance3 = irSensor3.read(); + float distance4 = irSensor4.read(); + float distance5 = irSensor5.read(); + + + if ( distance0 < 0.1f){ + led0 = 1; + controller.setDesiredSpeedLeft(0.0f); //Drehzahl in (rpm) + controller.setDesiredSpeedRight(0.0f); //Drehzahl in (rpm) + } + else{ + led0 = 0; + controller.setDesiredSpeedLeft(50.0f); + controller.setDesiredSpeedRight(-50.0f); + } + + if ( distance1 < 0.1f){ + led1 = 1; + controller.setDesiredSpeedLeft(-50.0f); + // controller.setDesiredSpeedRight(0.0f); + } + else{ + led1 = 0; + // controller.setDesiredSpeedLeft(0.0f); + // controller.setDesiredSpeedRight(0.0f); + } + if ( distance2 < 0.1f){ + led2 = 1; + //pwmLeft = 0.6; + //pwmRight = 0.4; + } + else{ + led2 = 0; + //pwmLeft = 0.5; + //pwmRight = 0.5; + } + if ( distance3 < 0.1f){ + led3 = 1; + //pwmLeft = 0.6; + //pwmRight = 0.4; + } + else{ + led3 = 0; + //pwmLeft = 0.5; + //pwmRight = 0.5; + } + if ( distance4 < 0.1f){ + led4 = 1; + //pwmLeft = 0.6; + //pwmRight = 0.4; + } + else{ + led4 = 0; + //pwmLeft = 0.5; + //pwmRight = 0.5; + } + + if ( distance5 < 0.1f){ + led5 = 1; + controller.setDesiredSpeedRight(50.0f); + //pwmRight = 0.4; + } + else{ + led5 = 0; + //pwmLeft = 0.5; + //pwmRight = 0.5; + } + + myled =! myled; // LED is ON + wait(0.1f); // 100 ms + + + } +}