Library for H-Bridge Motor Driver Using Bipolar Transistors

Committer:
prabhuvd
Date:
Tue Jan 15 13:27:35 2013 +0000
Revision:
0:155daae8a9fa
Child:
2:c1f9f9d74f35
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 * Copyright (c) 2007-2012, Prabhu Desai http://mbed.org
prabhuvd 0:155daae8a9fa 3 *
prabhuvd 0:155daae8a9fa 4 * Permission is hereby granted, free of charge, to any person obtaining a copy
prabhuvd 0:155daae8a9fa 5 * of this software and associated documentation files (the "Software"), to deal
prabhuvd 0:155daae8a9fa 6 * in the Software without restriction, including without limitation the rights
prabhuvd 0:155daae8a9fa 7 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
prabhuvd 0:155daae8a9fa 8 * copies of the Software, and to permit persons to whom the Software is
prabhuvd 0:155daae8a9fa 9 * furnished to do so, subject to the following conditions:
prabhuvd 0:155daae8a9fa 10 *
prabhuvd 0:155daae8a9fa 11 * The above copyright notice and this permission notice shall be included in
prabhuvd 0:155daae8a9fa 12 * all copies or substantial portions of the Software.
prabhuvd 0:155daae8a9fa 13 *
prabhuvd 0:155daae8a9fa 14 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
prabhuvd 0:155daae8a9fa 15 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
prabhuvd 0:155daae8a9fa 16 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
prabhuvd 0:155daae8a9fa 17 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
prabhuvd 0:155daae8a9fa 18 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
prabhuvd 0:155daae8a9fa 19 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
prabhuvd 0:155daae8a9fa 20 * THE SOFTWARE.
prabhuvd 0:155daae8a9fa 21 */
prabhuvd 0:155daae8a9fa 22
prabhuvd 0:155daae8a9fa 23 #include "motorlib.h"
prabhuvd 0:155daae8a9fa 24 #include "mbed.h"
prabhuvd 0:155daae8a9fa 25
prabhuvd 0:155daae8a9fa 26 Motor::Motor(PinName r1, PinName r2, PinName r3, PinName r4):
prabhuvd 0:155daae8a9fa 27 _r1(r1), _r2(r2), _r3(r3), _r4(r4) {
prabhuvd 0:155daae8a9fa 28
prabhuvd 0:155daae8a9fa 29 // Set initial condition for port outputs
prabhuvd 0:155daae8a9fa 30 _r1=1 ; _r2=1 ;_r3=1 ;_r4=1;
prabhuvd 0:155daae8a9fa 31
prabhuvd 0:155daae8a9fa 32 }
prabhuvd 0:155daae8a9fa 33 void Motor::coast(void)
prabhuvd 0:155daae8a9fa 34 {
prabhuvd 0:155daae8a9fa 35 _r1=0 ; _r2=1 ;_r3=0;_r4=1;
prabhuvd 0:155daae8a9fa 36
prabhuvd 0:155daae8a9fa 37
prabhuvd 0:155daae8a9fa 38 }
prabhuvd 0:155daae8a9fa 39 void Motor::forward(void)
prabhuvd 0:155daae8a9fa 40 {
prabhuvd 0:155daae8a9fa 41 _r1=0 ; _r2=0 ;_r3=1 ;_r4=1;
prabhuvd 0:155daae8a9fa 42
prabhuvd 0:155daae8a9fa 43 }
prabhuvd 0:155daae8a9fa 44 // (additions)
prabhuvd 0:155daae8a9fa 45 void Motor::backward(void)
prabhuvd 0:155daae8a9fa 46 {
prabhuvd 0:155daae8a9fa 47 _r1=1 ; _r2=1 ;_r3=0 ;_r4=0;
prabhuvd 0:155daae8a9fa 48 }
prabhuvd 0:155daae8a9fa 49
prabhuvd 0:155daae8a9fa 50 void Motor::stop(void)
prabhuvd 0:155daae8a9fa 51 {
prabhuvd 0:155daae8a9fa 52 _r1=1 ; _r2=1 ;_r3=1 ;_r4=1;
prabhuvd 0:155daae8a9fa 53 }
prabhuvd 0:155daae8a9fa 54
prabhuvd 0:155daae8a9fa 55 /*
prabhuvd 0:155daae8a9fa 56 //Test code for driving h-Bridge
prabhuvd 0:155daae8a9fa 57 // Assume there are two motors connected to a chasis
prabhuvd 0:155daae8a9fa 58 // a right and a left motor.
prabhuvd 0:155daae8a9fa 59
prabhuvd 0:155daae8a9fa 60
prabhuvd 0:155daae8a9fa 61 Motor left_motor(LED1,LED2,LED3,LED4);
prabhuvd 0:155daae8a9fa 62 Motor right_motor(LED1,LED2,LED3,LED4);
prabhuvd 0:155daae8a9fa 63
prabhuvd 0:155daae8a9fa 64 void main(){
prabhuvd 0:155daae8a9fa 65 //To drive the robot forward
prabhuvd 0:155daae8a9fa 66 left_motor.forward();
prabhuvd 0:155daae8a9fa 67 right_motor.backward();
prabhuvd 0:155daae8a9fa 68
prabhuvd 0:155daae8a9fa 69 // To drive the robot backward
prabhuvd 0:155daae8a9fa 70 left_motor.backward();
prabhuvd 0:155daae8a9fa 71 right_motor.forward();
prabhuvd 0:155daae8a9fa 72
prabhuvd 0:155daae8a9fa 73 // To turn the robot LEFT
prabhuvd 0:155daae8a9fa 74 left_motor.stop();
prabhuvd 0:155daae8a9fa 75 right_motor.forward();
prabhuvd 0:155daae8a9fa 76
prabhuvd 0:155daae8a9fa 77 // To turn the robot RIGHT
prabhuvd 0:155daae8a9fa 78 left_motor.forward();
prabhuvd 0:155daae8a9fa 79 right_motor.stop();
prabhuvd 0:155daae8a9fa 80
prabhuvd 0:155daae8a9fa 81 }
prabhuvd 0:155daae8a9fa 82
prabhuvd 0:155daae8a9fa 83 */