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 | } |