一、 產品介紹
該擴展板可用作雕刻機,3D打印機等的驅動擴展板,一共有4路步進電機驅動模塊的插槽,(注意本板子不包含A4988步進電機驅動模塊,需要可在本賣場另購),可驅動4路步進電機,而每一路步進電機都只需要2個IO口,也就是說,6個IO口就可以很好的管理3個步進電機,使用起來非常的方便,告別傳統步進電機操作繁瑣。
二、Arduino UNO 與模組關係
步進電機的基本控制需要的引腳,其他引腳是在雕刻機,或3D打印機的時候才用到的,這裡我們不作詳解。
Arduino UNO----------------------擴展板
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軸的步進控制)
//下面是簡單的步進電機控制程序,
#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);
}
實驗現象:步進電機反轉一圈,停頓1秒,再正傳一圈,如此循環。
值得注意的是:在接插A4988模塊的時候注意不要插反,步進電機接線方式是:
2A ,2B 為一組(紅,綠), 1A,1B為一組(藍,黃)想改變方向,改變其中一組的位置即可,比如2A,與2B交換。