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.
Dependencies: FXOS8700CQ SDFileSystem mbed
lib/motors.cpp@0:3a322aad8c88, 2014-10-16 (annotated)
- Committer:
- gerardo_carmona
- Date:
- Thu Oct 16 01:59:21 2014 +0000
- Revision:
- 0:3a322aad8c88
First release.
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| gerardo_carmona | 0:3a322aad8c88 | 1 | // ----- Libraries ------------------------------------------------------------------ |
| gerardo_carmona | 0:3a322aad8c88 | 2 | #include "mbed.h" |
| gerardo_carmona | 0:3a322aad8c88 | 3 | #include "motors.h" |
| gerardo_carmona | 0:3a322aad8c88 | 4 | |
| gerardo_carmona | 0:3a322aad8c88 | 5 | // ----- I/O Pins ------------------------------------------------------------------- |
| gerardo_carmona | 0:3a322aad8c88 | 6 | // MOTORS (Control) |
| gerardo_carmona | 0:3a322aad8c88 | 7 | DigitalOut dir_left(D7); |
| gerardo_carmona | 0:3a322aad8c88 | 8 | DigitalOut dir_right(D8); |
| gerardo_carmona | 0:3a322aad8c88 | 9 | PwmOut pwm_left(D9); |
| gerardo_carmona | 0:3a322aad8c88 | 10 | PwmOut pwm_right(D10); |
| gerardo_carmona | 0:3a322aad8c88 | 11 | |
| gerardo_carmona | 0:3a322aad8c88 | 12 | // ----- Functions ------------------------------------------------------------------ |
| gerardo_carmona | 0:3a322aad8c88 | 13 | void move_motors(char _move_command, int _power_left, int _power_right){ |
| gerardo_carmona | 0:3a322aad8c88 | 14 | switch (_move_command){ |
| gerardo_carmona | 0:3a322aad8c88 | 15 | case MOVE_FWD: |
| gerardo_carmona | 0:3a322aad8c88 | 16 | motor_fwd(_power_left, _power_right); |
| gerardo_carmona | 0:3a322aad8c88 | 17 | break; |
| gerardo_carmona | 0:3a322aad8c88 | 18 | case MOVE_REV: |
| gerardo_carmona | 0:3a322aad8c88 | 19 | motor_rev(_power_left, _power_right); |
| gerardo_carmona | 0:3a322aad8c88 | 20 | break; |
| gerardo_carmona | 0:3a322aad8c88 | 21 | case MOVE_LEF: |
| gerardo_carmona | 0:3a322aad8c88 | 22 | motor_left(_power_left, _power_right); |
| gerardo_carmona | 0:3a322aad8c88 | 23 | break; |
| gerardo_carmona | 0:3a322aad8c88 | 24 | case MOVE_RIG: |
| gerardo_carmona | 0:3a322aad8c88 | 25 | motor_right(_power_left, _power_right); |
| gerardo_carmona | 0:3a322aad8c88 | 26 | break; |
| gerardo_carmona | 0:3a322aad8c88 | 27 | case MOVE_STO: |
| gerardo_carmona | 0:3a322aad8c88 | 28 | motor_stop(); |
| gerardo_carmona | 0:3a322aad8c88 | 29 | break; |
| gerardo_carmona | 0:3a322aad8c88 | 30 | //case MOVE_90L: |
| gerardo_carmona | 0:3a322aad8c88 | 31 | // move_90(1); |
| gerardo_carmona | 0:3a322aad8c88 | 32 | // break; |
| gerardo_carmona | 0:3a322aad8c88 | 33 | //case MOVE_90R: |
| gerardo_carmona | 0:3a322aad8c88 | 34 | // move_90(2); |
| gerardo_carmona | 0:3a322aad8c88 | 35 | // break; |
| gerardo_carmona | 0:3a322aad8c88 | 36 | default: |
| gerardo_carmona | 0:3a322aad8c88 | 37 | // bt.printf("%f\r\n", get_mag_angle()); |
| gerardo_carmona | 0:3a322aad8c88 | 38 | break; |
| gerardo_carmona | 0:3a322aad8c88 | 39 | } |
| gerardo_carmona | 0:3a322aad8c88 | 40 | } |
| gerardo_carmona | 0:3a322aad8c88 | 41 | |
| gerardo_carmona | 0:3a322aad8c88 | 42 | void motor_fwd(int _power_left, int _power_right){ |
| gerardo_carmona | 0:3a322aad8c88 | 43 | dir_left = 1; |
| gerardo_carmona | 0:3a322aad8c88 | 44 | dir_right = 1; |
| gerardo_carmona | 0:3a322aad8c88 | 45 | pwm_left = (float)_power_left/100; |
| gerardo_carmona | 0:3a322aad8c88 | 46 | pwm_right = (float)_power_right/100; |
| gerardo_carmona | 0:3a322aad8c88 | 47 | //pc.printf("FWD\n"); |
| gerardo_carmona | 0:3a322aad8c88 | 48 | } |
| gerardo_carmona | 0:3a322aad8c88 | 49 | |
| gerardo_carmona | 0:3a322aad8c88 | 50 | void motor_rev(int _power_left, int _power_right){ |
| gerardo_carmona | 0:3a322aad8c88 | 51 | dir_left = 0; |
| gerardo_carmona | 0:3a322aad8c88 | 52 | dir_right = 0; |
| gerardo_carmona | 0:3a322aad8c88 | 53 | pwm_left = (float)_power_left/100; |
| gerardo_carmona | 0:3a322aad8c88 | 54 | pwm_right = (float)_power_right/100; |
| gerardo_carmona | 0:3a322aad8c88 | 55 | //pc.printf("REV\n"); |
| gerardo_carmona | 0:3a322aad8c88 | 56 | } |
| gerardo_carmona | 0:3a322aad8c88 | 57 | |
| gerardo_carmona | 0:3a322aad8c88 | 58 | void motor_left(int _power_left, int _power_right){ |
| gerardo_carmona | 0:3a322aad8c88 | 59 | dir_left = 0; |
| gerardo_carmona | 0:3a322aad8c88 | 60 | dir_right = 1; |
| gerardo_carmona | 0:3a322aad8c88 | 61 | pwm_left = (float)_power_left/100; |
| gerardo_carmona | 0:3a322aad8c88 | 62 | pwm_right = (float)_power_right/100; |
| gerardo_carmona | 0:3a322aad8c88 | 63 | //pc.printf("LEFT\n"); |
| gerardo_carmona | 0:3a322aad8c88 | 64 | } |
| gerardo_carmona | 0:3a322aad8c88 | 65 | |
| gerardo_carmona | 0:3a322aad8c88 | 66 | void motor_right(int _power_left, int _power_right){ |
| gerardo_carmona | 0:3a322aad8c88 | 67 | dir_left = 1; |
| gerardo_carmona | 0:3a322aad8c88 | 68 | dir_right = 0; |
| gerardo_carmona | 0:3a322aad8c88 | 69 | pwm_left = (float)_power_left/100; |
| gerardo_carmona | 0:3a322aad8c88 | 70 | pwm_right = (float)_power_right/100; |
| gerardo_carmona | 0:3a322aad8c88 | 71 | //pc.printf("RIGHT\n"); |
| gerardo_carmona | 0:3a322aad8c88 | 72 | } |
| gerardo_carmona | 0:3a322aad8c88 | 73 | |
| gerardo_carmona | 0:3a322aad8c88 | 74 | void motor_stop(){ |
| gerardo_carmona | 0:3a322aad8c88 | 75 | dir_left = 1; |
| gerardo_carmona | 0:3a322aad8c88 | 76 | dir_right = 1; |
| gerardo_carmona | 0:3a322aad8c88 | 77 | pwm_left = 0; |
| gerardo_carmona | 0:3a322aad8c88 | 78 | pwm_right = 0; |
| gerardo_carmona | 0:3a322aad8c88 | 79 | //pc.printf("STOP\n"); |
| gerardo_carmona | 0:3a322aad8c88 | 80 | } |