BERTL library, Kevin Heinrich
Dependents: BertlPingPong_UEbung3_EB
bertl14.cpp@0:f40ab7184c3f, 2016-01-18 (annotated)
- 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?
User | Revision | Line number | New 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 |