Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
brakes.cpp@6:d0ba4c659e9c, 2022-04-13 (annotated)
- 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?
| User | Revision | Line number | New 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 | } |