Very simple operation samples of unipolar stepper motor. This code has been made to help beginners to learn the stepper motor. The history of the code shows the how to generate pulses from very basic level.
Diff: main.cpp
- Revision:
- 6:11b35048d384
- Parent:
- 4:3cb4e78e0846
- Parent:
- 5:28bbda0fe9b5
- Child:
- 7:032ae28fae2e
diff -r 3cb4e78e0846 -r 11b35048d384 main.cpp --- a/main.cpp Sat Jan 11 01:45:19 2014 +0000 +++ b/main.cpp Sat Jan 11 01:58:21 2014 +0000 @@ -1,14 +1,11 @@ // stepper motor operation sample (learn it step by step). // showing how to control a unipolar stepper motor by mbed digital output ports. // -// version 2 : 360 steps clockwise and counterclockwise rotations +// version 3 : Operation by BusOut #include "mbed.h" -DigitalOut motor_out0( p26 ); -DigitalOut motor_out1( p25 ); -DigitalOut motor_out2( p24 ); -DigitalOut motor_out3( p23 ); +BusOut motor_out( p26, p25, p24, p23 ); #define INTERVAL 0.01 @@ -19,56 +16,32 @@ // pulse orser : "p26 -> p25 -> p24 -> p23" for 4*90(=360) steps for ( int i = 0; i < 90; i++ ) { - motor_out0 = 1; - motor_out1 = 0; - motor_out2 = 0; - motor_out3 = 0; + motor_out = 1; wait( INTERVAL ); - motor_out0 = 0; - motor_out1 = 1; - motor_out2 = 0; - motor_out3 = 0; + motor_out = 2; wait( INTERVAL ); - motor_out0 = 0; - motor_out1 = 0; - motor_out2 = 1; - motor_out3 = 0; + motor_out = 4; wait( INTERVAL ); - motor_out0 = 0; - motor_out1 = 0; - motor_out2 = 0; - motor_out3 = 1; + motor_out = 8; wait( INTERVAL ); } // pulse orser : "p23 -> p24 -> p25 -> p26" for 4*90(=360) steps for ( int i = 0; i < 90; i++ ) { - motor_out0 = 0; - motor_out1 = 0; - motor_out2 = 0; - motor_out3 = 1; + motor_out = 8; wait( INTERVAL ); - motor_out0 = 0; - motor_out1 = 0; - motor_out2 = 1; - motor_out3 = 0; + motor_out = 4; wait( INTERVAL ); - motor_out0 = 0; - motor_out1 = 1; - motor_out2 = 0; - motor_out3 = 0; + motor_out = 2; wait( INTERVAL ); - motor_out0 = 1; - motor_out1 = 0; - motor_out2 = 0; - motor_out3 = 0; + motor_out = 1; wait( INTERVAL ); } }