K_A07_002 基于 STM32等单片机驱动ULN2003模块按键控制步进电机正反转
K_A07_002 基于 STM32等单片机驱动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 |
更多推荐
所有评论(0)