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.
main.cpp@0:ec10125e8317, 2014-06-30 (annotated)
- Committer:
- prime
- Date:
- Mon Jun 30 23:05:26 2014 +0000
- Revision:
- 0:ec10125e8317
Bi polar motor pwm control by transistor & FET.
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| prime | 0:ec10125e8317 | 1 | #include "mbed.h" |
| prime | 0:ec10125e8317 | 2 | |
| prime | 0:ec10125e8317 | 3 | #if defined(TARGET_LPC1114) |
| prime | 0:ec10125e8317 | 4 | Serial sr(dp16, dp15); |
| prime | 0:ec10125e8317 | 5 | |
| prime | 0:ec10125e8317 | 6 | PwmOut BMotorCCW(dp18); |
| prime | 0:ec10125e8317 | 7 | PwmOut BMotorCW(dp24); |
| prime | 0:ec10125e8317 | 8 | DigitalOut BMotorCCWSW(dp9); |
| prime | 0:ec10125e8317 | 9 | DigitalOut BMotorCWSW(dp10); |
| prime | 0:ec10125e8317 | 10 | #elif defined(TARGET_STM32F401RE) |
| prime | 0:ec10125e8317 | 11 | Serial sr(D1, D0); |
| prime | 0:ec10125e8317 | 12 | |
| prime | 0:ec10125e8317 | 13 | PwmOut BMotorCCW(D6); |
| prime | 0:ec10125e8317 | 14 | PwmOut BMotorCW(D5); |
| prime | 0:ec10125e8317 | 15 | DigitalOut BMotorCCWSW(D4); |
| prime | 0:ec10125e8317 | 16 | DigitalOut BMotorCWSW(D3); |
| prime | 0:ec10125e8317 | 17 | #endif |
| prime | 0:ec10125e8317 | 18 | |
| prime | 0:ec10125e8317 | 19 | int main() { |
| prime | 0:ec10125e8317 | 20 | |
| prime | 0:ec10125e8317 | 21 | sr.baud(19200); |
| prime | 0:ec10125e8317 | 22 | |
| prime | 0:ec10125e8317 | 23 | wait(5); |
| prime | 0:ec10125e8317 | 24 | |
| prime | 0:ec10125e8317 | 25 | while(1) { |
| prime | 0:ec10125e8317 | 26 | for (int i = 38; i < 40; i++) { |
| prime | 0:ec10125e8317 | 27 | #if defined(TARGET_LPC1114) |
| prime | 0:ec10125e8317 | 28 | BMotorCCW = (float)i / 100.0; |
| prime | 0:ec10125e8317 | 29 | #elif defined(TARGET_STM32F401RE) |
| prime | 0:ec10125e8317 | 30 | BMotorCCW = (double)i / 100.0; |
| prime | 0:ec10125e8317 | 31 | #endif |
| prime | 0:ec10125e8317 | 32 | BMotorCW = 0.0; |
| prime | 0:ec10125e8317 | 33 | BMotorCCWSW = 1; |
| prime | 0:ec10125e8317 | 34 | BMotorCWSW = 0; |
| prime | 0:ec10125e8317 | 35 | sr.printf("BCCW = %d/100 BCW = %d/100 BCCWSW = %d BCWSW = %d\r\n", i, i, 1, 0); |
| prime | 0:ec10125e8317 | 36 | wait(3); |
| prime | 0:ec10125e8317 | 37 | BMotorCCW = 0.0; |
| prime | 0:ec10125e8317 | 38 | BMotorCW = 0.0; |
| prime | 0:ec10125e8317 | 39 | BMotorCCWSW = 0; |
| prime | 0:ec10125e8317 | 40 | BMotorCWSW = 0; |
| prime | 0:ec10125e8317 | 41 | sr.printf("BCCW = %d/100 BCW = %d/100 BCCWSW = %d BCWSW = %d\r\n", i, i, 0, 0); |
| prime | 0:ec10125e8317 | 42 | wait(1); |
| prime | 0:ec10125e8317 | 43 | BMotorCCW = 0.0; |
| prime | 0:ec10125e8317 | 44 | #if defined(TARGET_LPC1114) |
| prime | 0:ec10125e8317 | 45 | BMotorCW = (float)i / 100.0; |
| prime | 0:ec10125e8317 | 46 | #elif defined(TARGET_STM32F401RE) |
| prime | 0:ec10125e8317 | 47 | BMotorCW = (double)i / 100.0; |
| prime | 0:ec10125e8317 | 48 | #endif |
| prime | 0:ec10125e8317 | 49 | BMotorCCWSW = 0; |
| prime | 0:ec10125e8317 | 50 | BMotorCWSW = 1; |
| prime | 0:ec10125e8317 | 51 | sr.printf("BCCW = %d/100 BCW = %d/100 BCCWSW = %d BCWSW = %d\r\n", i, i, 0, 1); |
| prime | 0:ec10125e8317 | 52 | wait(3); |
| prime | 0:ec10125e8317 | 53 | BMotorCCW = 0.0; |
| prime | 0:ec10125e8317 | 54 | BMotorCW = 0.0; |
| prime | 0:ec10125e8317 | 55 | BMotorCCWSW = 0; |
| prime | 0:ec10125e8317 | 56 | BMotorCWSW = 0; |
| prime | 0:ec10125e8317 | 57 | sr.printf("BCCW = %d/100 BCW = %d/100 BCCWSW = %d BCWSW = %d\r\n", i, i, 0, 0); |
| prime | 0:ec10125e8317 | 58 | wait(1); |
| prime | 0:ec10125e8317 | 59 | } |
| prime | 0:ec10125e8317 | 60 | for (int i = 40; i <= 100; i += 10) { |
| prime | 0:ec10125e8317 | 61 | #if defined(TARGET_LPC1114) |
| prime | 0:ec10125e8317 | 62 | BMotorCCW = (float)i / 100.0; |
| prime | 0:ec10125e8317 | 63 | #elif defined(TARGET_STM32F401RE) |
| prime | 0:ec10125e8317 | 64 | BMotorCCW = (double)i / 100.0; |
| prime | 0:ec10125e8317 | 65 | #endif |
| prime | 0:ec10125e8317 | 66 | BMotorCW = 0.0; |
| prime | 0:ec10125e8317 | 67 | BMotorCCWSW = 1; |
| prime | 0:ec10125e8317 | 68 | BMotorCWSW = 0; |
| prime | 0:ec10125e8317 | 69 | sr.printf("BCCW = %d/100 BCW = %d/100 BCCWSW = %d BCWSW = %d\r\n", i, i, 1, 0); |
| prime | 0:ec10125e8317 | 70 | wait(3); |
| prime | 0:ec10125e8317 | 71 | BMotorCCW = 0.0; |
| prime | 0:ec10125e8317 | 72 | BMotorCW = 0.0; |
| prime | 0:ec10125e8317 | 73 | BMotorCCWSW = 0; |
| prime | 0:ec10125e8317 | 74 | BMotorCWSW = 0; |
| prime | 0:ec10125e8317 | 75 | sr.printf("BCCW = %d/100 BCW = %d/100 BCCWSW = %d BCWSW = %d\r\n", i, i, 0, 0); |
| prime | 0:ec10125e8317 | 76 | wait(2); |
| prime | 0:ec10125e8317 | 77 | BMotorCCW = 0.0; |
| prime | 0:ec10125e8317 | 78 | #if defined(TARGET_LPC1114) |
| prime | 0:ec10125e8317 | 79 | BMotorCW = (float)i / 100.0; |
| prime | 0:ec10125e8317 | 80 | #elif defined(TARGET_STM32F401RE) |
| prime | 0:ec10125e8317 | 81 | BMotorCW = (double)i / 100.0; |
| prime | 0:ec10125e8317 | 82 | #endif |
| prime | 0:ec10125e8317 | 83 | BMotorCCWSW = 0; |
| prime | 0:ec10125e8317 | 84 | BMotorCWSW = 1; |
| prime | 0:ec10125e8317 | 85 | sr.printf("BCCW = %d/100 BCW = %d/100 BCCWSW = %d BCWSW = %d\r\n", i, i, 0, 1); |
| prime | 0:ec10125e8317 | 86 | wait(3); |
| prime | 0:ec10125e8317 | 87 | BMotorCCW = 0.0; |
| prime | 0:ec10125e8317 | 88 | BMotorCW = 0.0; |
| prime | 0:ec10125e8317 | 89 | BMotorCCWSW = 0; |
| prime | 0:ec10125e8317 | 90 | BMotorCWSW = 0; |
| prime | 0:ec10125e8317 | 91 | sr.printf("BCCW = %d/100 BCW = %d/100 BCCWSW = %d BCWSW = %d\r\n", i, i, 0, 0); |
| prime | 0:ec10125e8317 | 92 | wait(2); |
| prime | 0:ec10125e8317 | 93 | } |
| prime | 0:ec10125e8317 | 94 | } |
| prime | 0:ec10125e8317 | 95 | } |