A4988兩相四線步進電機驅動模塊使用經驗


1、A4988模塊可以驅動兩相四線步進電機,模塊引腳及接線圖如下:

2、步進電機引線如下:

3、引腳:
ENABLE:低電平有效,用於打開和關閉場效應管的輸出;
RESET:低電平有效,芯片復位;
SLEEP:低電平有效,進入睡眠模式;
STEP:電機每動一步需要給一個脈沖;
DIR:方向選擇,高電平一個方向,低電平一個方向;
VMOT:電機電源輸入(8-35V);
GND:地(負極);
2A、2B:一組線圈(如分別接B+、B-);
1A、1B:一組線圈(如分別接A+、A-);
VDD:邏輯電源輸入(一般使用單片機的電源);
MS1、MS2、MS3:用於選擇電機的類型,具體如下:

4、下面是參考使用GD32F130寫的參考代碼:

//首先判斷轉動方向,再給STEP脈沖
void motor0_run(uint16_t speed,uint16_t step,uint8_t dir)
{
	uint16_t i;
	
	if(dir)							//判斷方向
	{
		GPIO_BOP(DIR_PORT) = DIR_PIN;	
	}
	else
	{
		GPIO_BC(DIR_PORT) = DIR_PIN;
	}
	for(i = 0; i < step; i++)				//給step脈沖
	{
		GPIO_BOP(STEP_PORT) = STEP_PIN;		//step = 1
		delay_1ms(speed);
		GPIO_BC(STEP_PORT) = STEP_PIN;		//step = 0
		delay_1ms(speed);
	}
}
//實現的內容是,電機先往一個方向轉一段時間,在往另一個方向轉一段時間
int main(void)
{
      motor0_init();                                    //初始化相關的IO
      systick_config();
      while (1)
      {
            GPIO_BC(ENAB_PORT) = ENAB_PIN;		//ENABLE = 0
            motor0_run(1,1000,1);
            GPIO_BOP(ENAB_PORT) = ENAB_PIN;		//ENABLE = 1
            delay_1ms(1000);
            GPIO_BC(ENAB_PORT) = ENAB_PIN;		//ENABLE = 0
            motor0_run(1,1000,0);
            GPIO_BOP(ENAB_PORT) = ENAB_PIN;		//ENABLE = 1
            delay_1ms(1000);
	}
}

以上代碼需要注意的的是,電機驅動完之后要失能mosfet(ENABLE拉高),不然的后電機會持續發熱。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM