Latest News

首頁 » Arduino 控制 » 【Arduino CNC 控制】使用 DRV8825控制板.驅動板 驅動與控制步進電機(馬達)

【Arduino CNC 控制】使用 DRV8825控制板.驅動板 驅動與控制步進電機(馬達)

Arduino CNC  DRV8825 控制板.驅動板對步進電機(馬達)驅動非常有用。
在這裡,筆者來演示瞭如何使用簡單的arduino代碼來驅動DRV8825的步進電機(馬達)。

首先,只需將 Arduino CNC  DRV8825 控制板.驅動板安裝到Arduino Uno上。

確保Arduino CNC  DRV8825 控制板.驅動板 方向正確,USB端口和電源線都在您的左手站點。

藍線是我的電源,可以連接到12-36V的電源。

下一步可以將DRV8825晶片安裝到CNC屏蔽上。確保DRV8825晶片符合此方向。如果你把晶片放在錯誤的方向,你可能會損壞它。

通過調整DRV8825晶片下面的跳線,可以使用不同種類的微步進模式驅動電機。


我把三個號碼放在這裡,所以這意味著我把它設定為1/32步進駕駛模式。
哪個是DRV8825中最精確的。


電機可以連線到DRV8825的正確位置。

 

將usb插入電腦並上傳這些編碼,這將生成順序向兩個方向搬移的步驟。


 

#define EN 8

//方向引腳
#define X_DIR 5
#define Y_DIR 6
#define Z_DIR 7

//步針
#define X_STP 2
#define Y_STP 3
#define Z_STP 4


// DRV8825
int delayTime = 30; //每個暫停之間的延遲(uS)
int stps = 6400; //要移動的步驟


void step(boolean dir,byte dirPin,byte stepperPin,int steps)

{

  digitalwrite(dirPin,dir);

  延遲(100);

  for(int i = 0; i <steps; i ++){

    digitalWrite(stepperPin,HIGH);

    delayMicroseconds(delayTime);

    digitalWrite(stepperPin,LOW);

    delayMicroseconds(delayTime);

  }

}

void setup(){

  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,stps); // X,順時針
  step(false,Y_DIR,Y_STP,stps); // Y,順時針
  step(false,Z_DIR,Z_STP,stps); // Z,順時針

  延遲(100);

  step(true,X_DIR,X_STP,stps); // X,逆時針
  step(true,Y_DIR,Y_STP,stps); // Y,逆時針
  step(true,Z_DIR,Z_STP,stps); // X,逆時針

  延遲(100);

}


您可以開始看到步進電機在兩個方向上移動。
以上是:【Arduino CNC 控制】使用 DRV8825控制版驅動步進電機(馬達)
學會此技術,您就可以使用 Arduino 加上 DRV8825控制板.驅動板 就可以:驅動與控制步進電機(馬達)了!
可以運用於:電腦3D列印.CNC雕刻機.雷射(激光)雕刻機!

3D印表機 StepStick DRV8825步進電機驅動器 Reprap Arduino

DRV8825步進電機驅動器,相對4988 特點優勢:

          1、最大電流2.5A。

          2、最高支持32細分。

          3、4層PCB板,散熱性能更好。

          4、晶片內阻更小,發熱更低,散熱性更好。

參數:

     尺寸:1.5mmX2mm(和4988相同)

     可驅動電流:2.5A

     細分:1,1/2,1/4,1/8,1/16,1/32

     製造工藝:SMT貼片機製造,非手工焊接,良品率更高,性能更穩定

適合對象:

     需要驅動步進電機的場合。

     是構建3d印表機,cnc,雕刻機等必備模組。

     支援的3d印表機有Prusa Mendel,ultimaker,printbot,makerbot等。

     可以參考後面的 Arduino代碼,直接驅動電機

DRV8825特色有以下幾點:

1、適合驅動8.2V~45V 2.5A以下的步進電機;

2、只有簡單的步進和方向控制介面;

3、六個不同的步進模式:全、半、1/4、1/8、1/16、1/32;

4、可調電位器可以調節最大電流輸出,從而獲得更高的步進率;

5、自動電流衰減模式檢測/選擇;

6、過熱關閉電路、欠壓鎖定、交叉電流保護;

7、接地短路保護和載入短路保護

 

[sourcecode language=”english”]#define EN 8

//Direction pin
#define X_DIR 5
#define Y_DIR 6
#define Z_DIR 7

//Step pin
#define X_STP 2
#define Y_STP 3
#define Z_STP 4

//DRV8825
int delayTime=30; //Delay between each pause (uS)
int stps=6400;// Steps to move

void step(boolean dir, byte dirPin, byte stepperPin, int steps)

{

digitalWrite(dirPin, dir);

delay(100);

for (int i = 0; i < steps; i++) {

digitalWrite(stepperPin, HIGH);

delayMicroseconds(delayTime);

digitalWrite(stepperPin, LOW);

delayMicroseconds(delayTime);

}

}

void setup(){

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, stps); //X, Clockwise
step(false, Y_DIR, Y_STP, stps); //Y, Clockwise
step(false, Z_DIR, Z_STP, stps); //Z, Clockwise

delay(100);

step(true, X_DIR, X_STP, stps); //X, Counterclockwise
step(true, Y_DIR, Y_STP, stps); //Y, Counterclockwise
step(true, Z_DIR, Z_STP, stps); //X, Counterclockwise

delay(100);

}[/sourcecode]

發佈留言