Hiroshi M
/
StepperMotor
倒立振子ロボットで使用してるユニポーラのステッピングモータの駆動テストプログラムです。
Diff: main.cpp
- Revision:
- 0:5253455d51ec
diff -r 000000000000 -r 5253455d51ec main.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Sat Jul 07 09:12:06 2012 +0000 @@ -0,0 +1,67 @@ +#include "mbed.h" +#include "StepperMotor.h" + +BusOut myleds(LED1, LED2, LED3, LED4); + +Serial pc(USBTX, USBRX); + +DigitalOut ae_fxma108(p29); + +DigitalIn pb(p19); +DigitalIn pw(p20); + +const char Welcome_Message[] = + "\r\nHello mbed World!\r\n" + "Expand your creativity and enjoy making.\r\n\r\n" + "Stepper Motor Test Mode.\r\n\r\n"; + + +StepperMotor r_motor(p28,p27,p26,p25); +StepperMotor l_motor(p24,p23,p22,p21); + +int main() { + pc.printf(Welcome_Message); + + int old_pb=0; + int new_pb; + int old_pw=0; + int new_pw; + static int speed = 0; + + pb.mode(PullUp); + pw.mode(PullUp); + + ae_fxma108 = 0; + + r_motor.SetSpeed(speed,CLOCK_WISE); + l_motor.SetSpeed(speed,ANTI_CLOCK_WISE); + + r_motor.PulseEnable(); + l_motor.PulseEnable(); + + while(1) { + new_pb = pb; + if ((new_pb==0) && (old_pb==1)) { + if (speed == 0) continue; + speed--; + pc.printf("speed: %d\r\n",speed); + r_motor.SetSpeed(speed,CLOCK_WISE); + l_motor.SetSpeed(speed,ANTI_CLOCK_WISE); + } + old_pb = new_pb; + + + new_pw = pw; + if ((new_pw==0) && (old_pw==1)) { + if (speed == 10) continue; + speed++; + + pc.printf("speed: %d\r\n",speed); + r_motor.SetSpeed(speed,CLOCK_WISE); + l_motor.SetSpeed(speed,ANTI_CLOCK_WISE); + } + old_pw = new_pw; + + myleds = speed; + } +}