Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Driver.cpp
00001 #include "mbed.h" 00002 #include "Driver.h" 00003 00004 Driver::Driver(PinName M1A, PinName M1B, PinName M2A, PinName M2B): 00005 M1A(M1A), M1B(M1B), M2A(M2A), M2B(M2B){ 00006 setPeriod_ms(1000); 00007 } 00008 00009 void Driver::setPeriod_ms(int32_t period){ 00010 _period = period; 00011 M1A.period_ms(_period); 00012 M1B.period_ms(_period); 00013 M2A.period_ms(_period); 00014 M2B.period_ms(_period); 00015 } 00016 00017 void Driver::neutral(){ 00018 M1A.write(0); 00019 M1B.write(0); 00020 M2A.write(0); 00021 M2B.write(0); 00022 } 00023 00024 void Driver::forward(float dutyCycle1, float dutyCycle2){ 00025 _dutyCycle1 = dutyCycle1; 00026 _dutyCycle2 = dutyCycle2; 00027 if(_dutyCycle1 > 1.0f) 00028 _dutyCycle1 = 1.0f; 00029 if(_dutyCycle2 > 1.0f) 00030 _dutyCycle2 = 1.0f; 00031 if(_dutyCycle1 < 0) 00032 _dutyCycle1 = 0.0f; 00033 if(_dutyCycle2 < 0) 00034 _dutyCycle2 = 0.0f; 00035 00036 M1A.write(_dutyCycle1); 00037 M1B.write(0); 00038 M2A.write(_dutyCycle2); 00039 M2B.write(0); 00040 } 00041 00042 void Driver::backward(float dutyCycle1, float dutyCycle2){ 00043 _dutyCycle1 = dutyCycle1; 00044 _dutyCycle2 = dutyCycle2; 00045 if(_dutyCycle1 > 1.0f) 00046 _dutyCycle1 = 1.0f; 00047 if(_dutyCycle2 > 1.0f) 00048 _dutyCycle2 = 1.0f; 00049 if(_dutyCycle1 < 0) 00050 _dutyCycle1 = 0.0f; 00051 if(_dutyCycle2 < 0) 00052 _dutyCycle2 = 0.0f; 00053 00054 M1A.write(0); 00055 M1B.write(_dutyCycle1); 00056 M2A.write(0); 00057 M2B.write(_dutyCycle2); 00058 } 00059 00060 void Driver::right(float dutyCycle1, float dutyCycle2){ 00061 _dutyCycle1 = dutyCycle1; 00062 _dutyCycle2 = dutyCycle2; 00063 if(_dutyCycle1 > 1.0f) 00064 _dutyCycle1 = 1.0f; 00065 if(_dutyCycle2 > 1.0f) 00066 _dutyCycle2 = 1.0f; 00067 if(_dutyCycle1 < 0) 00068 _dutyCycle1 = 0.0f; 00069 if(_dutyCycle2 < 0) 00070 _dutyCycle2 = 0.0f; 00071 00072 M1A.write(0); 00073 M1B.write(_dutyCycle1); 00074 M2A.write(_dutyCycle2); 00075 M2B.write(0); 00076 } 00077 00078 void Driver::left(float dutyCycle1, float dutyCycle2){ 00079 _dutyCycle1 = dutyCycle1; 00080 _dutyCycle2 = dutyCycle2; 00081 if(_dutyCycle1 > 1.0f) 00082 _dutyCycle1 = 1.0f; 00083 if(_dutyCycle2 > 1.0f) 00084 _dutyCycle2 = 1.0f; 00085 if(_dutyCycle1 < 0) 00086 _dutyCycle1 = 0.0f; 00087 if(_dutyCycle2 < 0) 00088 _dutyCycle2 = 0.0f; 00089 00090 M1A.write(_dutyCycle1); 00091 M1B.write(0); 00092 M2A.write(0); 00093 M2B.write(_dutyCycle2); 00094 }
Generated on Tue Aug 30 2022 19:29:28 by
