akiyoshi oguro
/
F302R8_OPEN_BLDC
Open Drive Trapezoid
Revision 0:3b5242119d17, committed 2020-08-27
- Comitter:
- oguro
- Date:
- Thu Aug 27 03:03:43 2020 +0000
- Commit message:
- OPEN Drive Trapezoid
Changed in this revision
main.cpp | Show annotated file Show diff for this revision Revisions of this file |
mbed.bld | Show annotated file Show diff for this revision Revisions of this file |
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Thu Aug 27 03:03:43 2020 +0000 @@ -0,0 +1,145 @@ +#include "mbed.h" +int i=0,t=0,tt=0,q=0,START=4; +unsigned int adc; +PwmOut mypwmA(PA_8); //PWM_OUT 8 +PwmOut mypwmB(PA_9); //9 +PwmOut mypwmC(PA_10);//10 + +PwmOut Current_Ref(PB_4); + +DigitalOut EN1(PC_10); +DigitalOut EN2(PC_11); +DigitalOut EN3(PC_12); + + +AnalogIn V_adc(PC_2); +AnalogOut CP_re(PA_4); + +Serial pc(USBTX,USBRX); + + +float Vr_adc=0.0f; +float Speed=0; + +int main() { + pc.baud(128000); + EN1=0; + EN2=0; + EN3=0; + + mypwmA.period_us(20); + + mypwmB.period_us(20); + + mypwmC.period_us(20); + + + while(1) { + + Vr_adc=V_adc.read(); + adc= V_adc.read_u16()/35 ; //>>5 + + + while((Vr_adc>0.15f)&&(q<50)){ + + EN1=1; + EN2=1; + EN3=0; + mypwmA.write(0.7f); + mypwmB=0; + mypwmC=0; + wait_ms(START); + EN1=1; + EN2=0; + EN3=1; + wait_ms(START); + EN1=0; + EN2=1; + EN3=1; + mypwmA=0; + mypwmB.write(0.7f); + mypwmC=0; + wait_ms(START); + EN1=1; + EN2=1; + EN3=0; + wait_ms(START); + EN1=1; + EN2=0; + EN3=1; + mypwmA=0; + mypwmB=0; + mypwmC.write(0.7f); + wait_ms(START); + EN1=0; + EN2=1; + EN3=1; + q++; + wait_ms(START); + } + + if(Vr_adc < 0.005f){ + q=0; + } + + t=3000-(adc);//3000 + if(t<=2){ + t=2; + } + tt=t; + + +if(Vr_adc >0.05f){ + + + EN1=1; //1 + EN2=1; //1 + EN3=0; //0 + + mypwmA.write(Vr_adc); + mypwmB.write(0.0f); + mypwmC.write(0.0f); + + wait_us(t); + + EN1=1; //1 + EN2=0; //0 + EN3=1; //1 + wait_us(tt); + + EN1=0; //0 + EN2=1; //1 + EN3=1; //1 + mypwmA.write(0.0f); + mypwmB.write(Vr_adc); + mypwmC.write(0.0f); + + wait_us(t); + EN1=1;//1 + EN2=1;//1 + EN3=0;//0 + wait_us(tt); + + EN1=1; //1 + EN2=0; //0 + EN3=1; //1 + mypwmA.write(0.0f); + mypwmB.write(0.0f); + mypwmC.write(Vr_adc); + wait_us(t); + EN1=0; //0 + EN2=1; //1 + EN3=1; //1 + + wait_us(tt); + } + else{ + mypwmA.write(0.0f); + mypwmB.write(0.0f); + mypwmC.write(0.0f); + } + Speed=60*(1/(7.0*6*float(t)*1E-6))-476; + pc.printf("%.3f , %.3f \r" ,Speed ,Vr_adc); + + } +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mbed.bld Thu Aug 27 03:03:43 2020 +0000 @@ -0,0 +1,1 @@ +http://mbed.org/users/mbed_official/code/mbed/builds/6c34061e7c34 \ No newline at end of file