This is a program to drive a stepper servomotor from SerialUSB without any other interrution but the serial one.
Diff: L293D/L293D.cpp
- Revision:
- 0:da3eb35a2787
diff -r 000000000000 -r da3eb35a2787 L293D/L293D.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/L293D/L293D.cpp Mon Apr 09 03:10:30 2012 +0000 @@ -0,0 +1,62 @@ + +#include "mbed.h" +#include "L293D.h" + +// Constructor + L293D::L293D( PwmOut pwmLeft, PwmOut pwmRight, DigitalOut left, DigitalOut right ) + :_left(left), _right(right),_pwmLeft( pwmLeft ), _pwmRight( pwmRight ){ + + _pwmLeft = 0.0; + _pwmRight = 0.0; + + _left = 0; + _right= 0; + +} + +void L293D::setSpeedLeft( float speed ) +{ + _speedLeft = speed; + + _left = ( speed > 0.0 ); + _pwmLeft = abs( speed ); + +} + +void L293D::setSpeedRight( float speed ) +{ + _speedRight = speed; + _right = ( speed > 0.0 ); + _pwmRight = abs( speed ); + +} + + +float L293D::getSpeedLeft() +{ + float temp = _pwmLeft.read(); + + // This is done to ensure a -1.0 to 1.0 value is returned + if( _speedLeft > 0 ) + return temp; + else + return temp * -1; + +} + +float L293D::getSpeedRight() +{ + float temp = _pwmRight.read(); + + // This is done to ensure a -1.0 to 1.0 value is returned + if( _speedRight > 0 ) + return temp; + else + return temp * -1; + +} + + + + +