![](/media/cache/profiles/e32084632d369461572832e6582aac36.50x50_q85.jpg)
This is a program to drive a stepper servomotor from SerialUSB without any other interrution but the serial one.
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
Generated on Mon Jul 25 2022 22:31:17 by
![doxygen](doxygen.png)