|
本人小白,剛?cè)肟訂纹瑱C(jī)。手頭正好有幾個(gè)a4988驅(qū)動(dòng)模塊和51單片機(jī)。網(wǎng)上找了段代碼,發(fā)現(xiàn)無法使用,電機(jī)抖動(dòng)(與電機(jī)接線無關(guān))。
用山寨邏輯分析儀測得脈沖寬度為4ms arduino脈寬為1.6ms。后改動(dòng)少許代碼,成功運(yùn)行。刪除了部分按鈕功能,插電即轉(zhuǎn)。注意電機(jī)線2a2b為一組,如有抖動(dòng)嘗試調(diào)換一組線即可。
一、介紹
該擴(kuò)展板可用作雕刻機(jī),3D打印機(jī)等的驅(qū)動(dòng)擴(kuò)展板,一共有4路步進(jìn)電機(jī)驅(qū)動(dòng)模塊的插槽,(注意本板子不包含A4988步進(jìn)電機(jī)驅(qū)動(dòng)模塊,需要可在本店另購),可驅(qū)動(dòng)4路不進(jìn)電機(jī),而每一路步進(jìn)電機(jī)都只需要2個(gè)IO口,也就是說,6個(gè)IO口就可以很好的管理3個(gè)步進(jìn)電機(jī),使用起來非常的方便,告別傳統(tǒng)步進(jìn)電機(jī)操作繁瑣。
二、UNO與模塊IO口對(duì)應(yīng)關(guān)系介紹
步進(jìn)電機(jī)的基本控制需要的引腳,其他引腳是在雕刻機(jī),或3D打印機(jī)的時(shí)候才用到的,這里我們不作詳解,IO對(duì)應(yīng)如上圖。
Arduino UNO----------------------擴(kuò)展板
8 ------------------------ EN (步進(jìn)電機(jī)驅(qū)動(dòng)使能端,低電平有效)
7----------------------- Z.DIR(Z軸的方向控制)
6----------------------- Y.DIR(Y軸的方向控制)
5----------------------- X.DIR(X軸的方向控制)
4 ---------------------- Z.STEP(Z軸的步進(jìn)控制)
3 ---------------------- Y.STEP(Y軸的步進(jìn)控制)
2 ---------------------- X.STEP(X軸的步進(jìn)控制)
//下面是簡單的步進(jìn)電機(jī)控制程序,
#define EN 8 //步進(jìn)電機(jī)使能端,低電平有效
#define X_DIR 5 //X軸 步進(jìn)電機(jī)方向控制
#define Y_DIR 6 //y軸 步進(jìn)電機(jī)方向控制
#define Z_DIR 7 //z軸 步進(jìn)電機(jī)方向控制
#define X_STP 2 //x軸 步進(jìn)控制
#define Y_STP 3 //y軸 步進(jìn)控制
#define Z_STP 4 //z軸 步進(jìn)控制
/*
//函數(shù):step 功能:控制步進(jìn)電機(jī)方向,步數(shù)。
//參數(shù):dir 方向控制, dirPin對(duì)應(yīng)步進(jìn)電機(jī)的DIR引腳,stepperPin 對(duì)應(yīng)步進(jìn)電機(jī)的step引腳, steps 步進(jìn)的步數(shù)
//無返回值
*/
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(){//將步進(jìn)電機(jī)用到的IO管腳設(shè)置成輸出
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軸電機(jī) 反轉(zhuǎn)1圈,200步為一圈
step(false, Y_DIR, Y_STP, 200); //y軸電機(jī) 反轉(zhuǎn)1圈,200步為一圈
step(false, Z_DIR, Z_STP, 200); //z軸電機(jī) 反轉(zhuǎn)1圈,200步為一圈
delay(1000);
step(true, X_DIR, X_STP, 200); //X軸電機(jī) 正轉(zhuǎn)1圈,200步為一圈
step(true, Y_DIR, Y_STP, 200); //y軸電機(jī) 正轉(zhuǎn)1圈,200步為一圈
step(true, Z_DIR, Z_STP, 200); //z軸電機(jī) 正轉(zhuǎn)1圈,200步為一圈
delay(1000);
}
實(shí)驗(yàn)現(xiàn)象:步進(jìn)電機(jī)反轉(zhuǎn)一圈,停頓1秒,再正傳一圈,如此循環(huán)。
值得注意的是:在接插A4988模塊的時(shí)候注意不要插反,步進(jìn)電機(jī)接線方式是:
2A ,2B 為一組(紅,綠), 1A,1B為一組(藍(lán),黃)想改變方向,改變其中一組的位置即可,比如2A,與2B交換。
值得注意的是:在接插A4988模塊的時(shí)候注意不要插反,步進(jìn)電機(jī)接線方式是:
2A ,2B 為一組(紅,綠), 1A,1B為一組(藍(lán),黃)想改變方向,改變其中一組的位置即可,比如2A,與2B交換。
單片機(jī)源程序如下:
51hei.png (2.92 KB, 下載次數(shù): 70)
下載附件
2021-10-5 04:09 上傳
以上程序下載(內(nèi)容和本網(wǎng)頁上的一模一樣,方便保存):
a4988a.7z
(2.65 KB, 下載次數(shù): 64)
2021-10-5 03:47 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
|
評(píng)分
-
查看全部評(píng)分
|