直流モータ2個を,2つのアナログ入力でデューティ制御するプログラムです。

Dependencies:   Motor mbed

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?

UserRevisionLine numberNew 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 }