【C8T6+A4988步进驱动 2相4线 42步进电机+源码】

项目使用STM32F1核心板通过两种方式控制42步进电机:一是利用for循环直接驱动,二是采用定时器中断。第一种方法简单但无法在运行时中断,第二种方法支持中断,允许在电机运行时接收上位机的停止命令。此外,项目还涉及外部中断和串口通信,用于控制电机启停和接收上位机命令。
  • 项目要求
    • 所需要的元器件
      • A4988步进驱动 与2相4线 42步进电机接线
  1. (第一种方法)不用定时器驱动42步进电机
  2. (第二种方法)用定时器驱动42步进电机
  3. 通过外部中断对电机进行停止
  4. 上位机控制电机开启关闭
  5. 上位机发送命令效果
  6. 示波器波形展示

项目要求

本项目通过stm32f1为核心的最小系统板控制42步进电机,可以通过按键的开关对电机进行实时的控制,也可以通过上位机发送的串口命令对电机进行控制,本项目用到了定时器、外部中断、串口收发等。

所需要的元器件

1、STM32F103C8T6最小系统核心板
在这里插入图片描述

2、A4988步进驱动
在这里插入图片描述
3、2相4线 42步进电机
在这里插入图片描述
4、2个微动开关(分别负责控制电机开始和停止)

在这里插入图片描述
5、12V的电源
在这里插入图片描述
6、检测电机输出波形的示波器
在这里插入图片描述

A4988步进驱动 与2相4线 42步进电机接线

A4988步进驱动 2相4线 42步进电机

A4988步进驱动接线定义:
A4988
开发板GND --GND DIR-- PB9方向
开发板3.3V --VDD STEP-- PB5脉冲信号
A --1B SLEEP-- VCC3.3V
C --1A RESET-- VCC3.3V
D --2A MS3-- PB12
B --2B MS2-- PB11
外接电源GND --GND MS1-- PB10
外接电源VCC --VMOT ENABLE-- PB13控制抱死

(第一种方法)不用定时器驱动42步进电机

下面展示一些 内联代码片

// A code block
var foo = 'bar';
// An highlighted block
//参数
dir:FALSE正转TRUE反转
//period 周期
//step   脉冲
void Step_Control(u8 dir,u16 period,u32 steps)
{
   
   
	u32 i;
	for(i=0; i <= steps;i++)
	{
   
   
		DIR = dir;
		STEP = 1;
		delay_us(1);
		STEP = 0;
		delay_us(period);
	}
}

第一种方法,我们利用for循环发出脉冲信号,通过控制period和steps参数控制,电机运转的时长,这种方式简单,但是会出现问题,就是当我们控制电机运转时,无法通过串口发送”CLOSE“停止命令。因为程序在执行for循环无法打断。

(第二种方法)用定时器驱动42步进电机

下面展示一些 内联代码片

// A code block
var foo = 'bar';
// An highlighted block
#include "timer.h"
#include "usart.h"

//V1.1 20120904
//1,增加TIM3_PWM_Init函数。
//2,增加LED0_PWM_VAL宏定义,控制TIM3_CH2脉宽									  
//////////////////////////////////////////////////////////////////////////////////  
   	  
//通用定时器3中断初始化
评论 46
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

就爱吃夜宵

您的鼓励是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值