Library for H-Bridge Motor Driver Using Bipolar Transistors

Committer:
prabhuvd
Date:
Tue Jan 15 13:27:35 2013 +0000
Revision:
0:155daae8a9fa
Child:
1:b690c5eb9469
motorlib Library for H-Bridge Motor Driver Using Bipolar Transistors

Who changed what in which revision?

UserRevisionLine numberNew 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 0:155daae8a9fa 23 * @param r2 DigitalOut, driving H-bridge NPN transistor on the TOP right
prabhuvd 0:155daae8a9fa 24 * @param r3 DigitalOut, driving H-bridge NPN transistor on the BOTTOm left.
prabhuvd 0:155daae8a9fa 25 * @param r4 DigitalOut, driving H-bridge NPN 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