This is a program to drive a stepper servomotor from SerialUSB without any other interrution but the serial one.

Dependencies:   mbed

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers L293D.cpp Source File

L293D.cpp

00001 
00002 #include "mbed.h"
00003 #include "L293D.h"
00004 
00005 // Constructor
00006  L293D::L293D( PwmOut pwmLeft, PwmOut pwmRight, DigitalOut left, DigitalOut right )
00007      :_left(left), _right(right),_pwmLeft( pwmLeft ), _pwmRight( pwmRight ){
00008     
00009         _pwmLeft  = 0.0;
00010         _pwmRight = 0.0;
00011         
00012         _left = 0;
00013         _right= 0;
00014                         
00015 }
00016 
00017 void L293D::setSpeedLeft( float speed )
00018 {
00019     _speedLeft = speed;
00020     
00021     _left = ( speed > 0.0 );
00022     _pwmLeft = abs( speed );
00023 
00024 }
00025 
00026 void L293D::setSpeedRight( float speed )
00027 {
00028     _speedRight = speed;
00029     _right    = ( speed > 0.0 );
00030     _pwmRight = abs( speed );
00031 
00032 }
00033 
00034 
00035 float L293D::getSpeedLeft()
00036 {
00037     float temp = _pwmLeft.read();
00038         
00039     // This is done to ensure a -1.0 to 1.0 value is returned
00040     if( _speedLeft > 0 )
00041         return temp;
00042     else
00043         return temp * -1;
00044     
00045 }
00046 
00047 float L293D::getSpeedRight()
00048 {
00049     float temp = _pwmRight.read();
00050     
00051     // This is done to ensure a -1.0 to 1.0 value is returned
00052     if( _speedRight > 0 )
00053         return temp;
00054     else
00055         return temp * -1;
00056     
00057 }
00058 
00059 
00060 
00061 
00062