K_A07_001 基于 STM32等单片机驱动A4988模块按键控制步进电机正反转

实物参考链接 直戳跳转

一、资源说明

二、基本参数

1、参数

2、引脚说明

三、驱动说明

SETP时序

对应程序:

51用定时器来产生PWM信号

//定时器0中断服务函数
void tim0() interrupt 1
{
		TL0 = 0xF7;		//设置定时初始值
		TH0 = 0xFF;		//设置定时初始值10US
 
		times++;
		if(times<=Speed)
		{
			 SETP=1;
		}
		else
		{
			 SETP=0;
			 
		} 
 
}

细分说明

程序

 此处用的是P1的1、2 、3引脚 

#define A4988_MS  P1
 
#define Full_Step   		0x00
#define Half_Step			0x01
#define Quarter_Step		0x02
#define Eighth_Step			0x03
#define Sixteenth_Step		0x07
//配置细分函数
void Excitation_Mode(uint8_t F_Step)
{
		 A4988_MS=(A4988_MS&0xf1)|(F_Step<<1);
}

四、部分代码说明

1、引脚定义

需要自定义引脚可在此处更改,STM32要自定义引脚的话也要注意引脚时钟使能的更改

1.1、STC89C52RC+A4988模块

//A4988模块引脚定义
sbit ENABLE=P1^0;
sbit MS1=P1^1;
sbit MS2=P1^2;
sbit MS3=P1^3;
sbit SETP=P1^4;
sbit DIR=P1^5;
//按键引脚定义
sbit K_Syntropy=P2^0;			//顺时针
sbit K_Reverse =P2^1;			//逆时针

1.2、STM32F103C8T6+A4988模块

//A4988模块引脚定义
// TIM3 输出比较通道1  SETP引脚
#define            GENERAL_TIM_CH1_GPIO_CLK      RCC_APB2Periph_GPIOA
#define            GENERAL_TIM_CH1_PORT          GPIOA
#define            GENERAL_TIM_CH1_PIN           GPIO_Pin_6
 
//GPIOA
#define A4988_ENABLE   				GPIO_Pin_0  //					
#define A4988_MS1    				GPIO_Pin_1			// 
#define A4988_MS2     				GPIO_Pin_2		//	 
#define A4988_MS3     				GPIO_Pin_3			//   
#define A4988_DIR     				GPIO_Pin_4			//   
 
//GPIOA //按键引脚定义
#define K_Syntropy   				GPIO_Pin_5  		// 				#define K_Reverse    				GPIO_Pin_7			//	

五、基础知识学习

STC89C52RC程序下载 直戳跳转

STM32F103C8T6程序下载

1、串口下载  直戳跳转

2、ST-LINK下载  直戳跳转

3、J-LINK下载  直戳跳转

4、DAP-LINK下载  直戳跳转

六、视频效果展示与程序资料获取

演示视频连接 直戳跳转
资料获取 直戳跳转

实物参考链接 直戳跳转

七、注意事项

1、VCC GND请勿接反,接反易烧
2、显示异常时,排除接线接触不良
3、电机抖动线且电流很大 先断电再排查步进电机接线顺序
4、电机抖动 也可能是接线接触不良引起 需要排查
5、电机抖动 也可是电流不适配原因 可调电位器调节电流大小

八、接线说明

可参考程序main.c最上面接线说明


所有相关实物与程序套件可在我们店铺找到

X
深圳市咱们电子科技有限公司