BERTL library, Kevin Heinrich

Dependents:   BertlPingPong_UEbung3_EB

Committer:
heinrich_kevin
Date:
Mon Jan 18 09:44:28 2016 +0000
Revision:
0:f40ab7184c3f
Child:
1:01bc0c86f111
BERTL Library, Kevin Heinrich

Who changed what in which revision?

UserRevisionLine numberNew contents of line
heinrich_kevin 0:f40ab7184c3f 1 #include <mbed.h>
heinrich_kevin 0:f40ab7184c3f 2 #include "bertl14.h"
heinrich_kevin 0:f40ab7184c3f 3
heinrich_kevin 0:f40ab7184c3f 4 DigitalOut engineLR(P1_0); //IN1, EP10, MG1A => MG1 engine-Pin 2, left_Reverse
heinrich_kevin 0:f40ab7184c3f 5 DigitalOut engineLF(P1_1); //IN2, EP11, MG1B => MG1 engine-Pin 1, left_Forward
heinrich_kevin 0:f40ab7184c3f 6 PwmOut engineLEN(p34); //EN1, P34, left_ENABLE
heinrich_kevin 0:f40ab7184c3f 7 DigitalOut engineRR(P1_4); //IN4, EP13, MG2A => MG2 engine-Pin 2, right_Reverse
heinrich_kevin 0:f40ab7184c3f 8 DigitalOut engineRF(P1_3); //IN3, EP14, MG2B => MG2 engine-Pin 1, right_Forward
heinrich_kevin 0:f40ab7184c3f 9 PwmOut engineREN(p36); //EN2, P36, right_ENABLE
heinrich_kevin 0:f40ab7184c3f 10
heinrich_kevin 0:f40ab7184c3f 11 void bertl_engine(int left, int right)
heinrich_kevin 0:f40ab7184c3f 12 {
heinrich_kevin 0:f40ab7184c3f 13 // If the left engines-value is greater than 0, the left engine turn FORWARD
heinrich_kevin 0:f40ab7184c3f 14 if(left > 0)
heinrich_kevin 0:f40ab7184c3f 15 {
heinrich_kevin 0:f40ab7184c3f 16 engineLF=1;
heinrich_kevin 0:f40ab7184c3f 17 engineLR=0;
heinrich_kevin 0:f40ab7184c3f 18 }
heinrich_kevin 0:f40ab7184c3f 19 // Or if the left engines-value is less than 0, the left engine turn REVERSE
heinrich_kevin 0:f40ab7184c3f 20 else if(left < 0)
heinrich_kevin 0:f40ab7184c3f 21 {
heinrich_kevin 0:f40ab7184c3f 22 engineLF=0;
heinrich_kevin 0:f40ab7184c3f 23 engineLR=1;
heinrich_kevin 0:f40ab7184c3f 24 left = left * (-1); // For PWM the Value have to be positive
heinrich_kevin 0:f40ab7184c3f 25 }
heinrich_kevin 0:f40ab7184c3f 26 // If the right engines-value is greater than 0, the right engine turn FORWARD
heinrich_kevin 0:f40ab7184c3f 27 if(right > 0)
heinrich_kevin 0:f40ab7184c3f 28 {
heinrich_kevin 0:f40ab7184c3f 29 engineRF=1;
heinrich_kevin 0:f40ab7184c3f 30 engineRR=0;
heinrich_kevin 0:f40ab7184c3f 31 }
heinrich_kevin 0:f40ab7184c3f 32 // Or if the right engines-value is less than 0, the right engine turn REVERSE
heinrich_kevin 0:f40ab7184c3f 33 else if(right < 0)
heinrich_kevin 0:f40ab7184c3f 34 {
heinrich_kevin 0:f40ab7184c3f 35 engineRF=0;
heinrich_kevin 0:f40ab7184c3f 36 engineRR=1;
heinrich_kevin 0:f40ab7184c3f 37 right = right * (-1); // For PWM the Value have to be positive
heinrich_kevin 0:f40ab7184c3f 38 }
heinrich_kevin 0:f40ab7184c3f 39 //pc.printf("left: %4d\r\n", left);
heinrich_kevin 0:f40ab7184c3f 40 //pc.printf("right: %4d\r\n", right);
heinrich_kevin 0:f40ab7184c3f 41 // Or if the right- or/and the left engines value equals 0, the ENABLE-Pin turn off (ENABLE Pin equals 0)
heinrich_kevin 0:f40ab7184c3f 42 engineLEN=(left/255.0); // PWM Value : 0 ... 1
heinrich_kevin 0:f40ab7184c3f 43 engineREN=(right/255.0); // PWM Value : 0 ... 1
heinrich_kevin 0:f40ab7184c3f 44 }
heinrich_kevin 0:f40ab7184c3f 45 //Begin Testing bertl-engines
heinrich_kevin 0:f40ab7184c3f 46 void bertl_engine_test()
heinrich_kevin 0:f40ab7184c3f 47 {
heinrich_kevin 0:f40ab7184c3f 48 bertl_engine(100, 0); //The left engine must turn FORWARD for 2 seconds
heinrich_kevin 0:f40ab7184c3f 49 wait(2);
heinrich_kevin 0:f40ab7184c3f 50 bertl_engine(0, 100); //The right engine must turn FORWARD for 2 seconds
heinrich_kevin 0:f40ab7184c3f 51 wait(2);
heinrich_kevin 0:f40ab7184c3f 52 bertl_engine(-100, 0); //The left engine must turn REVERSE for 2 seconds
heinrich_kevin 0:f40ab7184c3f 53 wait(2);
heinrich_kevin 0:f40ab7184c3f 54 bertl_engine(0, -100); //The right engine must turn REVERSE for 2 seconds
heinrich_kevin 0:f40ab7184c3f 55 wait(2);
heinrich_kevin 0:f40ab7184c3f 56 }
heinrich_kevin 0:f40ab7184c3f 57 //End Testing bertl-engines