【STM32】A4988步进电机驱动器的使用-未完待续
文章目錄
- A4988使用方法
- A4988控制模式
- A4988驅動板邏輯控制圖
- A4988的接線方式
- 步進電機接線
- A4988使用STM32F103C8T6進行驅動
- A4988原理圖封裝
- 與步進電機連接方式
- 調節電流
- 遇到的問題
- 接上線后不動作,電流非常大
A4988使用方法
A4988控制模式
(1)睡眠模式:Sleep管腳電平置0,進入睡眠模式,驅動器輸出待機模式;Sleep管腳置1,驅動器處于正常工作狀態;
(2)正反轉模式:正轉模式DIR管腳置0或1,反轉模式置1或0;
(3)復位模式:復位模式下容易消耗能量,產生的沖擊電流較大。直接RESET管腳置1,在不影響系統工作時RESET管腳置0復位。一旦驅動芯片復位,系統將回歸到原始A4988 I/O端口控制狀態;
(4)使能模式:使能模式控制系統是否開始工作,ENBALBE管腳置0開始工作,置1停止工作;
(5)細分模式:通過MS1、MS2、MS3控制細分系數,A4988細分為1/16細分為最小,通過計算角度值可得最小細分角度為全步進角度的1/16。
A4988驅動板邏輯控制圖
A4988的接線方式
在實際使用中,需要注意
1、VMOT需要加一個47uF~100uF的電容進行儲能。
2、ENABLE信號可以不接
3、MS1 MS2 MS3信號可以不接,不接默認不細分。
4、SLEEP和RESET信號接在一起,上電后即是高電平。不會進入復位和休眠狀態
步進電機接線
對于兩相四線或者2相六線,我們只需要接4根線
接線順序為A+ A- B- B+或者B+ B- A- A+
注意不同步進電機的線序不同,比如下圖中第二個,則接線時的順序可以為:
1、紅-藍-綠-黑
2、黑-綠-藍-紅
若第二個圖中的第一個的話,則線序可以為
1、藍-黃-綠-紅
2、紅-綠-黃-藍
A4988使用STM32F103C8T6進行驅動
引腳連接:
EN:A2
DIR:A3
STEP:A4
stepper.h
#ifndef __STEPPER_ #define __STEPPER_ #include "sys.h" #include "stm32f10x.h"#define STEPPER_ROT_EN_RCC RCC_APB2Periph_GPIOA #define STEPPER_ROT_EN_PORT GPIOA #define STEPPER_ROT_EN_PIN GPIO_Pin_2#define STEPPER_ROT_DIR_RCC RCC_APB2Periph_GPIOA #define STEPPER_ROT_DIR_PORT GPIOA #define STEPPER_ROT_DIR_PIN GPIO_Pin_3#define STEPPER_ROT_STEP_RCC RCC_APB2Periph_GPIOA #define STEPPER_ROT_STEP_PORT GPIOA #define STEPPER_ROT_STEP_PIN GPIO_Pin_4#define ROTATE_EN PAout(2) #define ROTATE_DIR PAout(3) #define ROTATE_STEP PAout(4)void Stepper_Rot_Initial(void); void stepper_rotate(int dir,int step);#endifstepper.c
#include "delay.h" #include "stepper.h"void Stepper_Rot_Initial(void) {GPIO_InitTypeDef GPIO_InitStructure;RCC_APB2PeriphClockCmd(STEPPER_ROT_EN_RCC | STEPPER_ROT_DIR_RCC | STEPPER_ROT_STEP_RCC, ENABLE);GPIO_InitStructure.GPIO_Pin = STEPPER_ROT_EN_PIN; //enableGPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;GPIO_Init(STEPPER_ROT_EN_PORT, &GPIO_InitStructure);GPIO_InitStructure.GPIO_Pin = STEPPER_ROT_DIR_PIN; //dirGPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;GPIO_Init(STEPPER_ROT_DIR_PORT, &GPIO_InitStructure);GPIO_InitStructure.GPIO_Pin = STEPPER_ROT_STEP_PIN; //stepGPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;GPIO_Init(STEPPER_ROT_STEP_PORT, &GPIO_InitStructure);GPIO_SetBits(STEPPER_ROT_EN_PORT,STEPPER_ROT_EN_PIN | STEPPER_ROT_DIR_PIN |STEPPER_ROT_STEP_PIN );ROTATE_EN=0; }void stepper_rotate(int dir,int step) {int i;if(dir==1){ROTATE_DIR=1;for(i=0;i<step;i++){ROTATE_STEP=1;delay_ms(1);ROTATE_STEP=0;delay_ms(1);} }else{ROTATE_DIR=0;for(i=0;i<step;i++){ROTATE_STEP=1;delay_ms(1);ROTATE_STEP=0;delay_ms(1);} } }MAIN.C
int main (void)//主程序 {RCC_Configuration(); //時鐘設置Stepper_Rot_Initial();while(1){stepper_rotate(1,200);delay_ms(1000);stepper_rotate(0,200);delay_ms(1000);} }A4988原理圖封裝
與步進電機連接方式
連接方式是依次連接步進電機的1B-1A-2A-2B,或者反向為2B-2A-1A-1B,或者1A-1B-2B-2A,其它的方式一次類推。如果電機線是標準的紅藍綠黑的顏色,可以按照顏色連接為:紅-藍-綠-黑,或相反:黑-綠-藍-紅。
調節電流
驅動板是通過一個小的電位器來實現對輸出電流的配置的。可以通過用萬用表測量電位器中間管腳的電位。電位和電流的關系滿足下面的公式:Vref = A*0.8.也就是如果你想配置電機工作電流為1A,則電位應該配置在0.8V
遇到的問題
接上線后不動作,電流非常大
原因:接線接錯,12V的電源和地接反了。萬幸的是由于使用了直流源進行限流,芯片沒有燒壞。
總結
以上是生活随笔為你收集整理的【STM32】A4988步进电机驱动器的使用-未完待续的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Decawave UWB定位原理
- 下一篇: Node安装教程(超详细图解)