Routines to control a MD03 H-bridge module.
MD03.h@0:7efb3e6f7c7a, 2015-06-25 (annotated)
- Committer:
- jimherd
- Date:
- Thu Jun 25 19:55:40 2015 +0000
- Revision:
- 0:7efb3e6f7c7a
- Child:
- 1:0afd9f1a4e4f
First version of library to control an MD03 H-bridge unit.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
jimherd | 0:7efb3e6f7c7a | 1 | /* |
jimherd | 0:7efb3e6f7c7a | 2 | */ |
jimherd | 0:7efb3e6f7c7a | 3 | #include "mbed.h" |
jimherd | 0:7efb3e6f7c7a | 4 | |
jimherd | 0:7efb3e6f7c7a | 5 | #ifndef MD03_H |
jimherd | 0:7efb3e6f7c7a | 6 | #define MD03_H |
jimherd | 0:7efb3e6f7c7a | 7 | |
jimherd | 0:7efb3e6f7c7a | 8 | /* |
jimherd | 0:7efb3e6f7c7a | 9 | * list of registers |
jimherd | 0:7efb3e6f7c7a | 10 | */ |
jimherd | 0:7efb3e6f7c7a | 11 | #define MD03_COMMAND 0x00 |
jimherd | 0:7efb3e6f7c7a | 12 | #define MD03_STATUS 0x01 |
jimherd | 0:7efb3e6f7c7a | 13 | #define MD03_SPEED 0x02 |
jimherd | 0:7efb3e6f7c7a | 14 | #define MD03_ACCELERATION 0x03 |
jimherd | 0:7efb3e6f7c7a | 15 | #define MD03_TEMPERATURE 0x04 |
jimherd | 0:7efb3e6f7c7a | 16 | #define MD03_MOTOR_CURRENT 0x05 |
jimherd | 0:7efb3e6f7c7a | 17 | #define MD03_SOFTWARE_REV 0x07 |
jimherd | 0:7efb3e6f7c7a | 18 | /* |
jimherd | 0:7efb3e6f7c7a | 19 | * list of command that can be sent to command register |
jimherd | 0:7efb3e6f7c7a | 20 | */ |
jimherd | 0:7efb3e6f7c7a | 21 | #define MD03_CMD_STOP 0x00 |
jimherd | 0:7efb3e6f7c7a | 22 | #define MD03_CMD_FORWARD 0x01 |
jimherd | 0:7efb3e6f7c7a | 23 | #define MD03_CMD_REVERSE 0x02 |
jimherd | 0:7efb3e6f7c7a | 24 | |
jimherd | 0:7efb3e6f7c7a | 25 | class MD03 { |
jimherd | 0:7efb3e6f7c7a | 26 | public: |
jimherd | 0:7efb3e6f7c7a | 27 | MD03(PinName sda, PinName scl, int i2cAddress); |
jimherd | 0:7efb3e6f7c7a | 28 | |
jimherd | 0:7efb3e6f7c7a | 29 | void set_speed(int speed); |
jimherd | 0:7efb3e6f7c7a | 30 | void set_accel(int acceleration); |
jimherd | 0:7efb3e6f7c7a | 31 | void stop(void); |
jimherd | 0:7efb3e6f7c7a | 32 | void move_forward(void); |
jimherd | 0:7efb3e6f7c7a | 33 | void move_reverse(void); |
jimherd | 0:7efb3e6f7c7a | 34 | char read_reg(int register); |
jimherd | 0:7efb3e6f7c7a | 35 | |
jimherd | 0:7efb3e6f7c7a | 36 | protected: |
jimherd | 0:7efb3e6f7c7a | 37 | // I2C &_i2c; |
jimherd | 0:7efb3e6f7c7a | 38 | I2C _i2c; |
jimherd | 0:7efb3e6f7c7a | 39 | char address; |
jimherd | 0:7efb3e6f7c7a | 40 | char _writeOpcode, _readOpcode; |
jimherd | 0:7efb3e6f7c7a | 41 | }; |
jimherd | 0:7efb3e6f7c7a | 42 | |
jimherd | 0:7efb3e6f7c7a | 43 | #endif |
jimherd | 0:7efb3e6f7c7a | 44 |