- 例子程序:
- # define EN 8 //步进电机使能端,低电平有效
- # define X _ DIR 5 // X 轴步进电机方向控制
- # define Y _ DIR 6 // y 轴步进电机方向控制
- # define Z _ DIR 7 // z 轴步进电机方向控制
- # define X _ STP 2 // x 轴步进控制
- # define Y _ STP 3 // y 轴步进控制
- # define Z _ STP 4 // z 轴步进控制
- /*
- //函数: step 功能:控制步进电机方向,步数。
- //参数: dir 方向控制, dirPin 对应步进电机的 DIR 引脚, stepperPin 对应步进电机的 step 引
- 脚, steps 步进的步数
- //无返回值
- */
- void step ( boolean dir , byte dirPin , byte stepperPin , int steps )
- {
- digitalWrite ( dirPin , dir );
- delay ( 50 );
- for ( int i = 0; i < steps; i ++) {
- digitalWrite ( stepperPin , HIGH );
- delayMicroseconds ( 800 );
- digitalWrite ( stepperPin , LOW );
- delayMicroseconds ( 800 );
- }
- }
- void setup (){//将步进电机用到的 IO 管脚设置成输出
- pinMode ( X _ DIR , OUTPUT ); pinMode ( X _ STP , OUTPUT );
- pinMode ( Y _ DIR , OUTPUT ); pinMode ( Y _ STP , OUTPUT );
- pinMode ( Z _ DIR , OUTPUT ); pinMode ( Z _ STP , OUTPUT );
- pinMode ( EN , OUTPUT );
- digitalWrite ( EN , LOW );
- }
- void loop (){
- step ( false , X _ DIR , X _ STP , 200 ); // X 轴电机反转 1 圈, 200 步为一圈
- step ( false , Y _ DIR , Y _ STP , 200 ); // y 轴电机反转 1 圈, 200 步为一圈
- step ( false , Z _ DIR , Z _ STP , 200 ); // z 轴电机反转 1 圈, 200 步为一圈
- delay ( 1000 );
- step ( true , X _ DIR , X _ STP , 200 ); // X 轴电机正转 1 圈, 200 步为一圈
- step ( true , Y _ DIR , Y _ STP , 200 ); // y 轴电机正转 1 圈, 200 步为一圈
- step ( true , Z _ DIR , Z _ STP , 200 ); // z 轴电机正转 1 圈, 200 步为一圈
- delay ( 1000 );
- }
|