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.
Motor_3/Motor_3.cpp@0:5d1c1999d61d, 2018-05-07 (annotated)
- Committer:
- himarsmty
- Date:
- Mon May 07 06:58:54 2018 +0000
- Revision:
- 0:5d1c1999d61d
s
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| himarsmty | 0:5d1c1999d61d | 1 | #include "Motor_3.h" |
| himarsmty | 0:5d1c1999d61d | 2 | #include "mbed.h" |
| himarsmty | 0:5d1c1999d61d | 3 | #define HIGH 1 |
| himarsmty | 0:5d1c1999d61d | 4 | #define LOW 0 |
| himarsmty | 0:5d1c1999d61d | 5 | |
| himarsmty | 0:5d1c1999d61d | 6 | extern Serial pc; |
| himarsmty | 0:5d1c1999d61d | 7 | Motor_3::Motor_3(PinName dia1,PinName dia2,PinName pwa): |
| himarsmty | 0:5d1c1999d61d | 8 | _dia1(dia1),_dia2(dia2),_pwa(pwa),_pwmout(0) |
| himarsmty | 0:5d1c1999d61d | 9 | { |
| himarsmty | 0:5d1c1999d61d | 10 | //init |
| himarsmty | 0:5d1c1999d61d | 11 | DigitalOut pda1(_dia1,LOW); |
| himarsmty | 0:5d1c1999d61d | 12 | DigitalOut pda2(_dia2,LOW); |
| himarsmty | 0:5d1c1999d61d | 13 | } |
| himarsmty | 0:5d1c1999d61d | 14 | |
| himarsmty | 0:5d1c1999d61d | 15 | void Motor_3::mv(double speed) |
| himarsmty | 0:5d1c1999d61d | 16 | { |
| himarsmty | 0:5d1c1999d61d | 17 | // speed=speed/100*20/1000; |
| himarsmty | 0:5d1c1999d61d | 18 | // pc.printf("speed=%lf\n",speed); |
| himarsmty | 0:5d1c1999d61d | 19 | |
| himarsmty | 0:5d1c1999d61d | 20 | if(speed>0) |
| himarsmty | 0:5d1c1999d61d | 21 | { |
| himarsmty | 0:5d1c1999d61d | 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:5d1c1999d61d | 23 | // pc.printf("&&&temp_pwmout:%lf\n",temp_pwmout); |
| himarsmty | 0:5d1c1999d61d | 24 | int pwmout=(int)temp_pwmout; |
| himarsmty | 0:5d1c1999d61d | 25 | DigitalOut mydia1(_dia1,HIGH); |
| himarsmty | 0:5d1c1999d61d | 26 | DigitalOut mydia2(_dia2,LOW); |
| himarsmty | 0:5d1c1999d61d | 27 | // _pwmout=pwmout; |
| himarsmty | 0:5d1c1999d61d | 28 | _pwmout=20; |
| himarsmty | 0:5d1c1999d61d | 29 | PwmOut mypwa(_pwa); |
| himarsmty | 0:5d1c1999d61d | 30 | mypwa.period_ms(20); |
| himarsmty | 0:5d1c1999d61d | 31 | mypwa.pulsewidth_ms(_pwmout); |
| himarsmty | 0:5d1c1999d61d | 32 | } |
| himarsmty | 0:5d1c1999d61d | 33 | else if (speed<0) |
| himarsmty | 0:5d1c1999d61d | 34 | { |
| himarsmty | 0:5d1c1999d61d | 35 | |
| himarsmty | 0:5d1c1999d61d | 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:5d1c1999d61d | 37 | // pc.printf("temp_pwmout:%lf\n",temp_pwmout); |
| himarsmty | 0:5d1c1999d61d | 38 | int pwmout=(int)temp_pwmout; |
| himarsmty | 0:5d1c1999d61d | 39 | speed=abs(speed); |
| himarsmty | 0:5d1c1999d61d | 40 | DigitalOut mydia1(_dia1,LOW); |
| himarsmty | 0:5d1c1999d61d | 41 | DigitalOut mydia2(_dia2,HIGH); |
| himarsmty | 0:5d1c1999d61d | 42 | // _pwmout=pwmout; |
| himarsmty | 0:5d1c1999d61d | 43 | _pwmout=10; |
| himarsmty | 0:5d1c1999d61d | 44 | pc.printf("%d\n",_pwmout); |
| himarsmty | 0:5d1c1999d61d | 45 | PwmOut mypwa(_pwa); |
| himarsmty | 0:5d1c1999d61d | 46 | mypwa.period_ms(20); |
| himarsmty | 0:5d1c1999d61d | 47 | mypwa.pulsewidth_ms(_pwmout); |
| himarsmty | 0:5d1c1999d61d | 48 | } |
| himarsmty | 0:5d1c1999d61d | 49 | else |
| himarsmty | 0:5d1c1999d61d | 50 | { |
| himarsmty | 0:5d1c1999d61d | 51 | speed=abs(speed); |
| himarsmty | 0:5d1c1999d61d | 52 | DigitalOut mydia1(_dia1,LOW); |
| himarsmty | 0:5d1c1999d61d | 53 | DigitalOut mydia2(_dia2,LOW); |
| himarsmty | 0:5d1c1999d61d | 54 | _pwmout=0.0; |
| himarsmty | 0:5d1c1999d61d | 55 | PwmOut mypwa(_pwa); |
| himarsmty | 0:5d1c1999d61d | 56 | mypwa.period_ms(20); |
| himarsmty | 0:5d1c1999d61d | 57 | mypwa.pulsewidth(_pwmout); |
| himarsmty | 0:5d1c1999d61d | 58 | } |
| himarsmty | 0:5d1c1999d61d | 59 | |
| himarsmty | 0:5d1c1999d61d | 60 | } |