目录
一、资源说明
二、基本参数
1.参数
2、引脚说明
三、驱动说明
步进电机驱动时序
反向输出
对应程序:
四、部分代码说明
1、接线说明
1.1、STC89C52RC+ULN2003模块
1.2、STM32F103C8T6+ULN2003模块
五、基础知识学习与相关资料下载
六、视频效果展示与程序资料获取
七、项目所有材料清单
八、注意事项
九、接线表格
一、资源说明
单片机型号 | 测试条件 | 模块名称 | 代码功能 |
STC89C52RC | 1.晶振11.0592M | ULN2003模块 | 单片机驱动ULN2003模块按键控制步进电机正反转 |
STM32F103C8T6 |
| ULN2003模块 |
二、基本参数
1.参数
2、引脚说明
ULN2003模块 | 引脚说明 |
IN1 | 信号输入1 |
IN2 | 信号输入2 |
IN3 | 信号输入3 |
IN4 | 信号输入4 |
GND | GND (单独供电需要与单片机共地) |
VCC | 5V(建议单独供电) |
三、驱动说明
步进电机驱动时序
反向输出
对应程序:
//顺时针逆时针选择
void Swerve(uint8_t F_Dir)
{
if(F_Dir)
{
switch(MOTO_delay0)
{
case(1):MOTOA = 0; MOTOB = 1; MOTOC = 1; MOTOD = 1;break;
case(2):MOTOA = 1; MOTOB = 0; MOTOC = 1; MOTOD = 1;break;
case(3):MOTOA = 1; MOTOB = 1; MOTOC = 0; MOTOD = 1;break;
case(4):MOTOA = 1; MOTOB = 1; MOTOC = 1; MOTOD = 0;break;
}
}
else
{
switch(MOTO_delay0)
{
case(1):MOTOA = 1; MOTOB = 1; MOTOC = 1; MOTOD = 0;break;
case(2):MOTOA = 1; MOTOB = 1; MOTOC = 0; MOTOD = 1;break;
case(3):MOTOA = 1; MOTOB = 0; MOTOC = 1; MOTOD = 1;break;
case(4):MOTOA = 0; MOTOB = 1; MOTOC = 1; MOTOD = 1;break;
}
}
}
四、部分代码说明
1、接线说明
需要自定义引脚可在此处更改,STM32要自定义引脚的话也要注意引脚时钟使能的更改
1.1、STC89C52RC+ULN2003模块
//输入信号引脚
sbit MOTOA=P1^0; //IN1
sbit MOTOB=P1^1; //IN2
sbit MOTOC=P1^2; //IN3
sbit MOTOD=P1^3; //IN4
//按键引脚
sbit KEY_Foreward = P1^4; //正转
sbit KEY_Reversal = P1^5; //反转
1.2、STM32F103C8T6+ULN2003模块
//输入信号引脚
#define MOTOA_GPIO_PORT GPIOA /* MOTOA端口 */
#define MOTOA_GPIO_CLK RCC_APB2Periph_GPIOA /* MOTOA端口时钟 */
#define MOTOA_GPIO_PIN GPIO_Pin_0
#define MOTOB_GPIO_PORT GPIOA /* MOTOB端口 */
#define MOTOB_GPIO_CLK RCC_APB2Periph_GPIOA /* MOTOB端口时钟 */
#define MOTOB_GPIO_PIN GPIO_Pin_1
#define MOTOC_GPIO_PORT GPIOA /* MOTOC端口 */
#define MOTOC_GPIO_CLK RCC_APB2Periph_GPIOA /* MOTOC端口时钟 */
#define MOTOC_GPIO_PIN GPIO_Pin_2
#define MOTOD_GPIO_PORT GPIOA /* MOTOD端口 */
#define MOTOD_GPIO_CLK RCC_APB2Periph_GPIOA /* MOTOD端口时钟 */
#define MOTOD_GPIO_PIN GPIO_Pin_3
//按键引脚
#define Foreward_GPIO_CLK RCC_APB2Periph_GPIOA
#define Foreward_GPIO_PORT GPIOA
#define Foreward_GPIO_PIN GPIO_Pin_5
//KEY2
#define Reversal_GPIO_CLK RCC_APB2Periph_GPIOA
#define Reversal_GPIO_PORT GPIOA
#define Reversal_GPIO_PIN GPIO_Pin_6
五、基础知识学习与相关资料下载
- STC89C52RC程序下载 直戳跳转
- STM32F103C8T6程序下载
- 串口下载 直戳跳转
- ST-LINK下载 直戳跳转
- J-LINK下载 直戳跳转
- DAP-LINK下载 直戳跳转
六、视频效果展示与程序资料获取
视频连接 直戳跳转
资料获取 直戳跳转
七、项目所有材料清单
STC89C52RC驱动方案 | 图片 | STM32F103C8T6驱动方案 | 图片 | 备注 K_A07_002 |
STC89C52RC系统板X1 | STM32F103C8T6系统板X1 | 1、STM32系统板两根Micro USB线一根用于J-LINK下载器,另一根用于给系统板供电 2、杜邦线建议不用太长的 | ||
ULN2003模块x1 | ULN2003模块x1 | |||
步进电机x1 | 步进电机x1 | |||
Micro USB线X1 | Micro USB线X2 | |||
母母杜邦线X6 | 母母杜邦线X6 | |||
J-LINK下载器 |
八、注意事项
- VCC GND请勿接反,接反易烧
- 显示异常时,排除接线接触不良
- 电机抖动 也可能是接线接触不良引起 需要排查
九、接线表格
单片机型号 | 模块 | 对应引脚(上:模块引脚 下:单片机引脚) | |||||
STC89C52RC | ULN2003模块 | IN1 | IN2 | IN3 | IN4 | GND | VCC |
P1.0 | P1.1 | P1.2 | P1.3 | GND | 5V | ||
按键模块 | KEY_L | KEY_R | GND | ||||
P1.4 | P1.5 | GND | |||||
STM32F103C8T6 | ULN2003模块 | IN1 | IN2 | IN3 | IN4 | GND | VCC |
PA0 | PA1 | PA2 | PA3 | GND | 5V | ||
按键模块 | KEY_L | KEY_R | GND | ||||
PA5 | PA6 | GND |