Kyo Ashizuka
/
DC_Motor2
直流モータ2個を,2つのアナログ入力でデューティ制御するプログラムです。
main.cpp@0:c4b58f8a436e, 2014-08-03 (annotated)
- Committer:
- Yoshichan
- Date:
- Sun Aug 03 16:37:46 2014 +0000
- Revision:
- 0:c4b58f8a436e
Two DC motors can be driven by using two Analog inputs.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Yoshichan | 0:c4b58f8a436e | 1 | // Sweep the motor speed from full-speed reverse (-1.0) to full speed forwards (1.0) |
Yoshichan | 0:c4b58f8a436e | 2 | |
Yoshichan | 0:c4b58f8a436e | 3 | #include "mbed.h" |
Yoshichan | 0:c4b58f8a436e | 4 | #include "Motor.h" |
Yoshichan | 0:c4b58f8a436e | 5 | |
Yoshichan | 0:c4b58f8a436e | 6 | Motor m1(p23, p6, p5); // pwm, fwd, rev |
Yoshichan | 0:c4b58f8a436e | 7 | AnalogIn ain1(p16);// AD input for Motor1 |
Yoshichan | 0:c4b58f8a436e | 8 | |
Yoshichan | 0:c4b58f8a436e | 9 | Motor m2(p22, p8, p7); // pwm, fwd, rev |
Yoshichan | 0:c4b58f8a436e | 10 | AnalogIn ain2(p15);// AD input for Motor2 |
Yoshichan | 0:c4b58f8a436e | 11 | |
Yoshichan | 0:c4b58f8a436e | 12 | int main() { |
Yoshichan | 0:c4b58f8a436e | 13 | while(1) |
Yoshichan | 0:c4b58f8a436e | 14 | { |
Yoshichan | 0:c4b58f8a436e | 15 | float k1=(ain1-0.5)*1.2; |
Yoshichan | 0:c4b58f8a436e | 16 | if(k1>0.6) |
Yoshichan | 0:c4b58f8a436e | 17 | { |
Yoshichan | 0:c4b58f8a436e | 18 | k1=0.6; |
Yoshichan | 0:c4b58f8a436e | 19 | } |
Yoshichan | 0:c4b58f8a436e | 20 | else |
Yoshichan | 0:c4b58f8a436e | 21 | { |
Yoshichan | 0:c4b58f8a436e | 22 | if(k1<-0.6) |
Yoshichan | 0:c4b58f8a436e | 23 | { |
Yoshichan | 0:c4b58f8a436e | 24 | k1=-0.6; |
Yoshichan | 0:c4b58f8a436e | 25 | } |
Yoshichan | 0:c4b58f8a436e | 26 | else{} |
Yoshichan | 0:c4b58f8a436e | 27 | } |
Yoshichan | 0:c4b58f8a436e | 28 | |
Yoshichan | 0:c4b58f8a436e | 29 | float k2=(ain2-0.5)*1.2; |
Yoshichan | 0:c4b58f8a436e | 30 | if(k2>0.6) |
Yoshichan | 0:c4b58f8a436e | 31 | { |
Yoshichan | 0:c4b58f8a436e | 32 | k2=0.6; |
Yoshichan | 0:c4b58f8a436e | 33 | } |
Yoshichan | 0:c4b58f8a436e | 34 | else |
Yoshichan | 0:c4b58f8a436e | 35 | { |
Yoshichan | 0:c4b58f8a436e | 36 | if(k2<-0.6) |
Yoshichan | 0:c4b58f8a436e | 37 | { |
Yoshichan | 0:c4b58f8a436e | 38 | k2=-0.6; |
Yoshichan | 0:c4b58f8a436e | 39 | } |
Yoshichan | 0:c4b58f8a436e | 40 | else{} |
Yoshichan | 0:c4b58f8a436e | 41 | } |
Yoshichan | 0:c4b58f8a436e | 42 | m1.speed(k1); |
Yoshichan | 0:c4b58f8a436e | 43 | m2.speed(k2); |
Yoshichan | 0:c4b58f8a436e | 44 | wait(0.1); |
Yoshichan | 0:c4b58f8a436e | 45 | } |
Yoshichan | 0:c4b58f8a436e | 46 | } |