Railway Challenge / Mbed 2 deprecated challenge-ChaiUpdated

Dependencies:   mbed millis

Committer:
cdevarakonda
Date:
Wed Apr 13 12:39:00 2022 +0000
Revision:
6:d0ba4c659e9c
Added braking in emergency stop function and edited out redundancy in setPArk

Who changed what in which revision?

UserRevisionLine numberNew contents of line
cdevarakonda 6:d0ba4c659e9c 1 void brakeControl(int brakeRate) {
cdevarakonda 6:d0ba4c659e9c 2 if (driveMode == 2) { // PARK MODE
cdevarakonda 6:d0ba4c659e9c 3 // BREAK RATE LEVEL 1
cdevarakonda 6:d0ba4c659e9c 4 speedControl(0);
cdevarakonda 6:d0ba4c659e9c 5 brakeValve32 = 0;
cdevarakonda 6:d0ba4c659e9c 6 brakeValve22 = 1;
cdevarakonda 6:d0ba4c659e9c 7
cdevarakonda 6:d0ba4c659e9c 8 }
cdevarakonda 6:d0ba4c659e9c 9 else {
cdevarakonda 6:d0ba4c659e9c 10
cdevarakonda 6:d0ba4c659e9c 11 if (challenge.regenBrakingActive == true) { // REGEN BRAKING WITH OVERVOLTAGE SAFETY CHECK
cdevarakonda 6:d0ba4c659e9c 12 if (brakeRate > 0) {
cdevarakonda 6:d0ba4c659e9c 13 motor1.setPark();
cdevarakonda 6:d0ba4c659e9c 14 }
cdevarakonda 6:d0ba4c659e9c 15 else {
cdevarakonda 6:d0ba4c659e9c 16 motor1.setForward();
cdevarakonda 6:d0ba4c659e9c 17 }
cdevarakonda 6:d0ba4c659e9c 18
cdevarakonda 6:d0ba4c659e9c 19 // }
cdevarakonda 6:d0ba4c659e9c 20 }
cdevarakonda 6:d0ba4c659e9c 21 else { // MECHANICAL BRAKING
cdevarakonda 6:d0ba4c659e9c 22 switch (brakeRate) {
cdevarakonda 6:d0ba4c659e9c 23 //case 0: // NO BRAKING
cdevarakonda 6:d0ba4c659e9c 24 // brakeValve32 = 1;//(PF_2)
cdevarakonda 6:d0ba4c659e9c 25 //brakeValve22 = 1;//(PG_1)
cdevarakonda 6:d0ba4c659e9c 26 //break;
cdevarakonda 6:d0ba4c659e9c 27
cdevarakonda 6:d0ba4c659e9c 28 case 1: //One brake high
cdevarakonda 6:d0ba4c659e9c 29 motor1.throttle(0.0f);
cdevarakonda 6:d0ba4c659e9c 30 brakeValve32 = 0;//(PF_2)
cdevarakonda 6:d0ba4c659e9c 31 brakeValve22 = 1;//(PG_1)
cdevarakonda 6:d0ba4c659e9c 32 break;
cdevarakonda 6:d0ba4c659e9c 33 case 2 ... 4 : //Two brake high
cdevarakonda 6:d0ba4c659e9c 34 motor1.throttle(0.0f);
cdevarakonda 6:d0ba4c659e9c 35 brakeValve32 = 0;//(PF_2)
cdevarakonda 6:d0ba4c659e9c 36 brakeValve22 = 0;//(PG_1)
cdevarakonda 6:d0ba4c659e9c 37 break;
cdevarakonda 6:d0ba4c659e9c 38
cdevarakonda 6:d0ba4c659e9c 39
cdevarakonda 6:d0ba4c659e9c 40 // case 1:
cdevarakonda 6:d0ba4c659e9c 41 // motor1.throttle(0.0f);
cdevarakonda 6:d0ba4c659e9c 42 // brakeValve32 = 0;
cdevarakonda 6:d0ba4c659e9c 43 // if (pressureSwitch1.read() == 0) {
cdevarakonda 6:d0ba4c659e9c 44 // brakeValve22 = 0;
cdevarakonda 6:d0ba4c659e9c 45 // pc.printf("Pressure 1 Reached");
cdevarakonda 6:d0ba4c659e9c 46 // }
cdevarakonda 6:d0ba4c659e9c 47 // else {
cdevarakonda 6:d0ba4c659e9c 48 // brakeValve22 = 1;
cdevarakonda 6:d0ba4c659e9c 49 // pc.printf("Braking Level 1\r\n");
cdevarakonda 6:d0ba4c659e9c 50 // }
cdevarakonda 6:d0ba4c659e9c 51 // break;
cdevarakonda 6:d0ba4c659e9c 52
cdevarakonda 6:d0ba4c659e9c 53 // case 2:
cdevarakonda 6:d0ba4c659e9c 54 // motor1.throttle(0.0f);
cdevarakonda 6:d0ba4c659e9c 55 // brakeValve32 = 0;
cdevarakonda 6:d0ba4c659e9c 56 // if (pressureSwitch2.read() == 0) {
cdevarakonda 6:d0ba4c659e9c 57 // brakeValve22 = 0;
cdevarakonda 6:d0ba4c659e9c 58 // pc.printf("Pressure 2 Reached");
cdevarakonda 6:d0ba4c659e9c 59 // }
cdevarakonda 6:d0ba4c659e9c 60 // else {
cdevarakonda 6:d0ba4c659e9c 61 // brakeValve22 = 1;
cdevarakonda 6:d0ba4c659e9c 62 // pc.printf("Braking Level 2\r\n");
cdevarakonda 6:d0ba4c659e9c 63 // }
cdevarakonda 6:d0ba4c659e9c 64 //
cdevarakonda 6:d0ba4c659e9c 65 // break;
cdevarakonda 6:d0ba4c659e9c 66 //
cdevarakonda 6:d0ba4c659e9c 67 // case 2 ... 4:
cdevarakonda 6:d0ba4c659e9c 68 // motor1.throttle(0.0f);
cdevarakonda 6:d0ba4c659e9c 69 // brakeValve32 = 0;
cdevarakonda 6:d0ba4c659e9c 70 // brakeValve22 = 1;
cdevarakonda 6:d0ba4c659e9c 71
cdevarakonda 6:d0ba4c659e9c 72 // if (pressureSwitch3.read() == 0) {
cdevarakonda 6:d0ba4c659e9c 73 // brakeValve22 = 0;
cdevarakonda 6:d0ba4c659e9c 74 // pc.printf("Pressure 3 Reached");
cdevarakonda 6:d0ba4c659e9c 75 // }
cdevarakonda 6:d0ba4c659e9c 76 // else {
cdevarakonda 6:d0ba4c659e9c 77 // brakeValve22 = 1;
cdevarakonda 6:d0ba4c659e9c 78 // pc.printf("Braking Level 3\r\n");
cdevarakonda 6:d0ba4c659e9c 79 // }
cdevarakonda 6:d0ba4c659e9c 80 // break;
cdevarakonda 6:d0ba4c659e9c 81
cdevarakonda 6:d0ba4c659e9c 82
cdevarakonda 6:d0ba4c659e9c 83 default: // NO BRAKING
cdevarakonda 6:d0ba4c659e9c 84 brakeValve32 = 1;
cdevarakonda 6:d0ba4c659e9c 85 brakeValve22 = 1;
cdevarakonda 6:d0ba4c659e9c 86 break;
cdevarakonda 6:d0ba4c659e9c 87 }
cdevarakonda 6:d0ba4c659e9c 88 }
cdevarakonda 6:d0ba4c659e9c 89 }
cdevarakonda 6:d0ba4c659e9c 90 return;
cdevarakonda 6:d0ba4c659e9c 91 }