Library for H-Bridge Motor Driver Using Bipolar Transistors
motorlib.h@1:b690c5eb9469, 2013-01-15 (annotated)
- Committer:
- prabhuvd
- Date:
- Tue Jan 15 13:33:21 2013 +0000
- Revision:
- 1:b690c5eb9469
- Parent:
- 0:155daae8a9fa
- Child:
- 2:c1f9f9d74f35
updated some comments
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
prabhuvd | 0:155daae8a9fa | 1 | /*mbed motorlib Library for H-Bridge Motor Driver Using Bipolar Transistors |
prabhuvd | 0:155daae8a9fa | 2 | * |
prabhuvd | 0:155daae8a9fa | 3 | * mbed simple H-bridge motor controller |
prabhuvd | 0:155daae8a9fa | 4 | * Copyright (c) 2007-2012, Prabhu Desai |
prabhuvd | 0:155daae8a9fa | 5 | * |
prabhuvd | 0:155daae8a9fa | 6 | |
prabhuvd | 0:155daae8a9fa | 7 | */ |
prabhuvd | 0:155daae8a9fa | 8 | |
prabhuvd | 0:155daae8a9fa | 9 | #ifndef MBED_MOTOR_H |
prabhuvd | 0:155daae8a9fa | 10 | #define MBED_MOTOR_H |
prabhuvd | 0:155daae8a9fa | 11 | |
prabhuvd | 0:155daae8a9fa | 12 | #include "mbed.h" |
prabhuvd | 0:155daae8a9fa | 13 | |
prabhuvd | 0:155daae8a9fa | 14 | /** Interface to control a standard DC motor |
prabhuvd | 0:155daae8a9fa | 15 | * |
prabhuvd | 0:155daae8a9fa | 16 | */ |
prabhuvd | 0:155daae8a9fa | 17 | class Motor { |
prabhuvd | 0:155daae8a9fa | 18 | public: |
prabhuvd | 0:155daae8a9fa | 19 | |
prabhuvd | 0:155daae8a9fa | 20 | /** Create a motor control interface |
prabhuvd | 0:155daae8a9fa | 21 | * |
prabhuvd | 0:155daae8a9fa | 22 | * @param r1 DigitalOut, driving H-bridge NPN transistor on the BOTTOm right |
prabhuvd | 1:b690c5eb9469 | 23 | * @param r2 DigitalOut, driving H-bridge PNP transistor on the TOP right |
prabhuvd | 0:155daae8a9fa | 24 | * @param r3 DigitalOut, driving H-bridge NPN transistor on the BOTTOm left. |
prabhuvd | 1:b690c5eb9469 | 25 | * @param r4 DigitalOut, driving H-bridge PNP transistor on the TOP left |
prabhuvd | 0:155daae8a9fa | 26 | */ |
prabhuvd | 0:155daae8a9fa | 27 | Motor(PinName r1, PinName r2, PinName r3, PinName r4); |
prabhuvd | 0:155daae8a9fa | 28 | |
prabhuvd | 0:155daae8a9fa | 29 | /** Set the motor to coast/roll/off |
prabhuvd | 0:155daae8a9fa | 30 | * |
prabhuvd | 0:155daae8a9fa | 31 | * @param void |
prabhuvd | 0:155daae8a9fa | 32 | * @return void |
prabhuvd | 0:155daae8a9fa | 33 | */ |
prabhuvd | 0:155daae8a9fa | 34 | void coast(void); |
prabhuvd | 0:155daae8a9fa | 35 | |
prabhuvd | 0:155daae8a9fa | 36 | /** Rotate motor in clockwise direction. |
prabhuvd | 0:155daae8a9fa | 37 | * |
prabhuvd | 0:155daae8a9fa | 38 | * @param void |
prabhuvd | 0:155daae8a9fa | 39 | * @return void |
prabhuvd | 0:155daae8a9fa | 40 | */ |
prabhuvd | 0:155daae8a9fa | 41 | void forward(void); |
prabhuvd | 0:155daae8a9fa | 42 | |
prabhuvd | 0:155daae8a9fa | 43 | /** /** Rotate motor in Anti-clockwise direction. |
prabhuvd | 0:155daae8a9fa | 44 | * |
prabhuvd | 0:155daae8a9fa | 45 | * @param void |
prabhuvd | 0:155daae8a9fa | 46 | * @return void |
prabhuvd | 0:155daae8a9fa | 47 | */ |
prabhuvd | 0:155daae8a9fa | 48 | |
prabhuvd | 0:155daae8a9fa | 49 | void backward(void); |
prabhuvd | 0:155daae8a9fa | 50 | |
prabhuvd | 0:155daae8a9fa | 51 | /** Stop the motor. |
prabhuvd | 0:155daae8a9fa | 52 | * |
prabhuvd | 0:155daae8a9fa | 53 | * @param void |
prabhuvd | 0:155daae8a9fa | 54 | * @return void |
prabhuvd | 0:155daae8a9fa | 55 | */ |
prabhuvd | 0:155daae8a9fa | 56 | |
prabhuvd | 0:155daae8a9fa | 57 | void stop(void); |
prabhuvd | 0:155daae8a9fa | 58 | |
prabhuvd | 0:155daae8a9fa | 59 | protected: |
prabhuvd | 0:155daae8a9fa | 60 | DigitalOut _r1; |
prabhuvd | 0:155daae8a9fa | 61 | DigitalOut _r2; |
prabhuvd | 0:155daae8a9fa | 62 | DigitalOut _r3; |
prabhuvd | 0:155daae8a9fa | 63 | DigitalOut _r4; |
prabhuvd | 0:155daae8a9fa | 64 | |
prabhuvd | 0:155daae8a9fa | 65 | }; |
prabhuvd | 0:155daae8a9fa | 66 | |
prabhuvd | 0:155daae8a9fa | 67 | #endif |