step motor test of CORE-1000

Dependencies:   mbed

Committer:
odb
Date:
Wed Jan 09 07:50:55 2019 +0000
Revision:
0:9354648a14ed
Child:
1:0677e9d605d3
Step motor test of CORE-1000

Who changed what in which revision?

UserRevisionLine numberNew contents of line
odb 0:9354648a14ed 1 // 28BYJ-48 stepper motor example
odb 0:9354648a14ed 2 // showing how to control a unipolar stepper motor by mbed digital output ports.
odb 0:9354648a14ed 3 // Tested on the Nucleo F103RB Board
odb 0:9354648a14ed 4 // Based on http://www.geeetech.com/wiki/index.php/Stepper_Motor_5V_4-Phase_5-Wire_%26_ULN2003_Driver_Board_for_Arduino
odb 0:9354648a14ed 5 // Using the ULN2003A Driver.
odb 0:9354648a14ed 6
odb 0:9354648a14ed 7 #include "mbed.h"
odb 0:9354648a14ed 8
odb 0:9354648a14ed 9 BusOut motor_out(PC_0, PC_1, PC_2, PC_3); // blue - pink - yellow - orange
odb 0:9354648a14ed 10
odb 0:9354648a14ed 11 int step = 0;
odb 0:9354648a14ed 12 int dir = 1; // direction
odb 0:9354648a14ed 13
odb 0:9354648a14ed 14 int main()
odb 0:9354648a14ed 15 {
odb 0:9354648a14ed 16 while(1)
odb 0:9354648a14ed 17 {
odb 0:9354648a14ed 18 switch(step)
odb 0:9354648a14ed 19 {
odb 0:9354648a14ed 20 case 0: motor_out = 0x1; break; // 0001
odb 0:9354648a14ed 21 case 1: motor_out = 0x3; break; // 0011
odb 0:9354648a14ed 22 case 2: motor_out = 0x2; break; // 0010
odb 0:9354648a14ed 23 case 3: motor_out = 0x6; break; // 0110
odb 0:9354648a14ed 24 case 4: motor_out = 0x4; break; // 0100
odb 0:9354648a14ed 25 case 5: motor_out = 0xC; break; // 1100
odb 0:9354648a14ed 26 case 6: motor_out = 0x8; break; // 1000
odb 0:9354648a14ed 27 case 7: motor_out = 0x9; break; // 1001
odb 0:9354648a14ed 28
odb 0:9354648a14ed 29 default: motor_out = 0x0; break; // 0000
odb 0:9354648a14ed 30 }
odb 0:9354648a14ed 31
odb 0:9354648a14ed 32 if(dir) step++; else step--;
odb 0:9354648a14ed 33 if(step>7)step=0;
odb 0:9354648a14ed 34 if(step<0)step=7;
odb 0:9354648a14ed 35 wait(0.015); // speed
odb 0:9354648a14ed 36 }
odb 0:9354648a14ed 37 }
odb 0:9354648a14ed 38