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:b7d3adaffc0a, 2018-05-07 (annotated)
- Committer:
- himarsmty
- Date:
- Mon May 07 06:57:22 2018 +0000
- Revision:
- 0:b7d3adaffc0a
a
Who changed what in which revision?
| User | Revision | Line number | New 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 | } |