目录
一、资源说明
二、基本参数
1、参数
2、引脚说明
三、驱动说明
SETP时序
对应程序:
细分说明
程序
四、部分代码说明
1、接线说明
1.1、STC89C52RC+A4988模块
1.2、STM32F103C8T6+A4988模块
五、基础知识学习与相关资料下载
六、视频效果展示与程序资料获取
七、项目所有材料清单
八、注意事项
九、接线表格
一、资源说明
单片机型号 | 测试条件 | 模块名称 | 代码功能 |
STC89C52RC | 1.晶振11.0592M | A4988模块 | 单片机驱动A4988模块按键控制步进电机正反转 |
STM32F103C8T6 |
| A4988模块 |
二、基本参数
1、参数
2、引脚说明
A4988模块 | 引脚说明 |
DIR | 电机正反转控制 |
STEP | 脉冲输入 |
SLEEP | 低电平使能使模块处于休眠模式(此处直接与RESET连接) |
RESET | 复位 (此处直接与SLEEP连接) |
MS3 | 细分选择MS3 |
MS2 | 细分选择MS2 |
MS1 | 细分选择MS1 |
ENABLE | 使能引脚 低电平有效 |
GND | 接单片机GND |
VDD | 接单片机5V |
1B | 接步进电机A+ |
1A | 接步进电机A- |
2A | 接步进电机B+ |
2B | 接步进电机B- |
GND | 外接电源负极 |
VMOT | 外接电源正极 此处用的是8V |
三、驱动说明
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程序下载
- 串口下载 直戳跳转
- ST-LINK下载 直戳跳转
- J-LINK下载 直戳跳转
- DAP-LINK下载 直戳跳转
六、视频效果展示与程序资料获取
视频连接 直戳跳转
资料获取 直戳跳转
七、项目所有材料清单
STC89C52RC驱动方案 | 图片 | STM32F103C8T6驱动方案 | 图片 | 备注 K_A07_001 |
STC89C52RC系统板X1 | STM32F103C8T6系统板X1 | 1、STM32系统板两根Micro USB线一根用于J-LINK下载器,另一根用于给系统板供电 2、杜邦线建议不用太长的 | ||
A4988模块x1 | A4988模块x1 | |||
步进电机x1 | 步进电机x1 | |||
Micro USB线X1 | Micro USB线X2 | |||
母母杜邦线X16 | 母母杜邦线X16 | |||
J-LINK下载器 |
八、注意事项
- VCC GND请勿接反,接反易烧
- 显示异常时,排除接线接触不良
- 电机抖动线且电流很大 先断电再排查步进电机接线顺序
- 电机抖动 也可能是接线接触不良引起 需要排查
- 电机抖动 也可是电流不适配原因 可调电位器调节电流大小
九、接线表格
单片机型号 | 模块 | 对应引脚(上:模块引脚 下:单片机引脚) | |||||||
STC89C52RC | A4988模块 | DIR | SETP | SLEEP | RESET | MS3 | MS2 | MS1 | ENABLE |
P1.5 | P1.4 | 接RESET | 接 SLEEP | P1.3 | P1.2 | P1.1 | P1.0 | ||
GND | VCC | 1B | 1A | 2A | 2B | GND | VMOT | ||
GND | 5V | A+ | A- | B+ | B- | 电源GND | 电源8V | ||
按键模块 | KEY_L | KEY_R | GND | ||||||
P2.0 | P2.1 | GND | |||||||
STM32F103C8T6 | A4988模块 | DIR | SETP | SLEEP | RESET | MS3 | MS2 | MS1 | ENABLE |
PA4 | PA6 | 接 RESET | 接 SLEEP | PA3 | PA2 | PA1 | PA0 | ||
GND | VCC | 1B | 1A | 2A | 2B | GND | VMOT | ||
GND | 5V | A+ | A- | B+ | B- | 电源GND | 电源8V | ||
按键模块 | KEY_L | KEY_R | GND | ||||||
PA5 | PA7 |