步进电机的基本控制需要的引脚,其他引脚是在雕刻机,或3D打印机的时候才用到的,这里我们不作详解,IO对应如上图。ArduinoUNO----------------------扩展板8------------------------EN(步进电机驱动使能端,低电平有效)7-----------------------
Z.DIR(Z轴的方向控制)6-----------------------
Y.DIR(Y轴的方向控制)5-----------------------
X.DIR(X轴的方向控制)4----------------------
Z.STEP(Z轴的步进控制)3----------------------
Y.STEP(Y轴的步进控制)2----------------------
X.STEP(X轴的步进控制)//下面是简单的步进电机控制程序,#defineEN8//步进电机使能端,低电平有效#defineX_DIR5//X轴步进电机方向控制#defineY_DIR6//y轴步进电机方向控制#defineZ_DIR7//z轴步进电机方向控制#defineX_STP2//x轴步进控制#defineY_STP3//y轴步进控制#defineZ_STP4//z轴步进控制/*//函数:step功能:控制步进电机方向,步数。//参数:dir方向控制,dirPin对应步进电机的DIR引脚,stepperPin对应步进电机的step引脚,steps步进的步数//无返回值*/voidstep(booleandir,bytedirPin,bytestepperPin,intsteps){digitalWrite(dirPin,dir);delay(50);for(inti=0;isteps;i ){digitalWrite(stepperPin,HIGH);delayMicroseconds(800);digitalWrite(stepperPin,LOW);delayMicroseconds(800);}}voidsetup(){//将步进电机用到的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);}voidloop(){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);}实验现象:步进电机反转一圈,停顿1秒,再正传一圈,如此循环。值得注意的是:在接插A4988模块的时候注意不要插反,步进电机接线方式是:2A,2B为一组(红,绿),1A,1B为一组(蓝,黄)想改变方向,改变其中一组的位置即可,比如2A,与2B交换。