tianyun ma / Mbed 2 deprecated mecanum_4

Dependencies:   mbed

Committer:
himarsmty
Date:
Mon May 07 06:57:22 2018 +0000
Revision:
0:b7d3adaffc0a
a

Who changed what in which revision?

UserRevisionLine numberNew contents of line
himarsmty 0:b7d3adaffc0a 1 #include "Motor_3.h"
himarsmty 0:b7d3adaffc0a 2 #include "mbed.h"
himarsmty 0:b7d3adaffc0a 3 #define HIGH 1
himarsmty 0:b7d3adaffc0a 4 #define LOW 0
himarsmty 0:b7d3adaffc0a 5
himarsmty 0:b7d3adaffc0a 6 //extern Serial pc;
himarsmty 0:b7d3adaffc0a 7 Motor_3::Motor_3(PinName dia1,PinName dia2,PinName pwa):
himarsmty 0:b7d3adaffc0a 8 _dia1(dia1),_dia2(dia2),_pwa(pwa),_pwmout(0)
himarsmty 0:b7d3adaffc0a 9 {
himarsmty 0:b7d3adaffc0a 10 //init
himarsmty 0:b7d3adaffc0a 11 DigitalOut pda1(_dia1,LOW);
himarsmty 0:b7d3adaffc0a 12 DigitalOut pda2(_dia2,LOW);
himarsmty 0:b7d3adaffc0a 13 }
himarsmty 0:b7d3adaffc0a 14
himarsmty 0:b7d3adaffc0a 15 void Motor_3::mv(double speed)
himarsmty 0:b7d3adaffc0a 16 {
himarsmty 0:b7d3adaffc0a 17 // speed=speed/100*20/1000;
himarsmty 0:b7d3adaffc0a 18 // pc.printf("speed=%lf\n",speed);
himarsmty 0:b7d3adaffc0a 19
himarsmty 0:b7d3adaffc0a 20 if(speed>0)
himarsmty 0:b7d3adaffc0a 21 {
himarsmty 0:b7d3adaffc0a 22 double temp_pwmout=6*pow(10.0,-10.0)*pow(speed,4.0)-4*pow(10.0,-7.0)*pow(speed,3.0)+3*pow(10.0,-5.0)*pow(speed,2.0)+0.0241*speed+0.0794;//拟合
himarsmty 0:b7d3adaffc0a 23 // pc.printf("&&&temp_pwmout:%lf\n",temp_pwmout);
himarsmty 0:b7d3adaffc0a 24 int pwmout=(int)temp_pwmout;
himarsmty 0:b7d3adaffc0a 25 DigitalOut mydia1(_dia1,HIGH);
himarsmty 0:b7d3adaffc0a 26 DigitalOut mydia2(_dia2,LOW);
himarsmty 0:b7d3adaffc0a 27 // _pwmout=pwmout;
himarsmty 0:b7d3adaffc0a 28 _pwmout=20;
himarsmty 0:b7d3adaffc0a 29 PwmOut mypwa(_pwa);
himarsmty 0:b7d3adaffc0a 30 mypwa.period_ms(20);
himarsmty 0:b7d3adaffc0a 31 mypwa.pulsewidth_ms(_pwmout);
himarsmty 0:b7d3adaffc0a 32 }
himarsmty 0:b7d3adaffc0a 33 else if (speed<0)
himarsmty 0:b7d3adaffc0a 34 {
himarsmty 0:b7d3adaffc0a 35
himarsmty 0:b7d3adaffc0a 36 double temp_pwmout=6*pow(10.0,-10.0)*pow(speed,4.0)-4*pow(10.0,-7.0)*pow(speed,3.0)+3*pow(10.0,-5.0)*pow(speed,2.0)+0.0241*speed+0.0794;//拟合
himarsmty 0:b7d3adaffc0a 37 // pc.printf("temp_pwmout:%lf\n",temp_pwmout);
himarsmty 0:b7d3adaffc0a 38 int pwmout=(int)temp_pwmout;
himarsmty 0:b7d3adaffc0a 39 speed=abs(speed);
himarsmty 0:b7d3adaffc0a 40 DigitalOut mydia1(_dia1,LOW);
himarsmty 0:b7d3adaffc0a 41 DigitalOut mydia2(_dia2,HIGH);
himarsmty 0:b7d3adaffc0a 42 // _pwmout=pwmout;
himarsmty 0:b7d3adaffc0a 43 _pwmout=10;
himarsmty 0:b7d3adaffc0a 44 // pc.printf("%d\n",_pwmout);
himarsmty 0:b7d3adaffc0a 45 PwmOut mypwa(_pwa);
himarsmty 0:b7d3adaffc0a 46 mypwa.period_ms(20);
himarsmty 0:b7d3adaffc0a 47 mypwa.pulsewidth_ms(_pwmout);
himarsmty 0:b7d3adaffc0a 48 }
himarsmty 0:b7d3adaffc0a 49 else
himarsmty 0:b7d3adaffc0a 50 {
himarsmty 0:b7d3adaffc0a 51 speed=abs(speed);
himarsmty 0:b7d3adaffc0a 52 DigitalOut mydia1(_dia1,LOW);
himarsmty 0:b7d3adaffc0a 53 DigitalOut mydia2(_dia2,LOW);
himarsmty 0:b7d3adaffc0a 54 _pwmout=0.0;
himarsmty 0:b7d3adaffc0a 55 PwmOut mypwa(_pwa);
himarsmty 0:b7d3adaffc0a 56 mypwa.period_ms(20);
himarsmty 0:b7d3adaffc0a 57 mypwa.pulsewidth(_pwmout);
himarsmty 0:b7d3adaffc0a 58 }
himarsmty 0:b7d3adaffc0a 59
himarsmty 0:b7d3adaffc0a 60 }