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.

Dependencies:   mbed

Revision:
6:11b35048d384
Parent:
4:3cb4e78e0846
Parent:
5:28bbda0fe9b5
Child:
7:032ae28fae2e
--- 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 );
         }
     }