模块——步进电机驱动&&STM32代码实现控制

步进电机驱动&&STM32代码实现控制




一、驱动电路说明

1.芯片简介

步进电机驱动所用芯片为TB67S109AFNAG

TB67S109A是一种配备PWM斩波器的两极步进电机驱动器。内置时钟解码器。本驱动器采用BICD工艺制作,额定值为50V/4.0A。

特点:
能控制一台双极步进电机。

由PWM控制的恒流驱动。

允许全步,半步,四分,1/8,1/16,1/32步运行。

低导通电阻(高+低侧 = 0.49(经典值))MOSFET输出级。

高效电机电流控制机构(高级动态混合衰减)

高电压与电流

错误检测(TSD/ISD)信号输出功能。

内置错误检测电路()热关断(TSD),过流关断(ISD),以及上电复位(POR)。

内置VCC调节器供内部电路使用。

可通过外电阻与电容自定义电路使用。

该芯片具体信息,包含中数据手册,英文数据手册。可小编博客上传资料“芯片——步进电机驱动芯片TB67S109AFNAG中英文手册”下载,或者中下面QQ群文件里下载。

2.芯片原理图

芯片驱动原理图如图:

在这里插入图片描述
具体实物图:

在这里插入图片描述

步进电机驱动具体PCB工程。可在下面QQ群文件里下载。

二STM32软件控制实现

1.硬件说明

控制主板 “司南电气控制STM32单片机开发板”,如图

在这里插入图片描述

驱动板 "步进电机TB67S109AFNAG 驱动 ",如图

在这里插入图片描述
③42步进电机

④接线说明:

◉驱动板VCC与GND接12V或者24V电源

◉COM+ → 司南主板步进电机接口3.3v

◉ DIR- → 司南主板步进电机接口 DIR

◉CLK- → 司南主板步进电机接口 CLK

◉EN- → 司南主板步进电机接口 EN

2.代码说明

PWM配置

void TIM3_PWM_Init(u16 arr,u16 psc)
{
	GPIO_InitTypeDef GPIO_InitStructure;
	TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;
	TIM_OCInitTypeDef  TIM_OCInitStructure;
		
  RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE);// 
 	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB | RCC_APB2Periph_AFIO , ENABLE);
  //GPIO_PinRemapConfig(GPIO_PartialRemap_TIM3, ENABLE);
	
	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0; //TIM_CH1
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;  //复用推挽输出
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
	GPIO_Init(GPIOB, &GPIO_InitStructure);
	
	
	TIM_TimeBaseStructure.TIM_Period = arr; //设置在下一个更新事件装入活动的自动重装载寄存器周期的值	 计数到5000为500ms
	TIM_TimeBaseStructure.TIM_Prescaler =psc; //设置用来作为TIMx时钟频率除数的预分频值  10Khz的计数频率  
	TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1; //设置时钟分割:TDTS = Tck_tim
	TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;  //TIM向上计数模式
	TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure); //根据TIM_TimeBaseInitStruct中指定的参数初始化TIMx的时间基数单位
 
	TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1; //选择定时器模式:TIM脉冲宽度调制模式2
	TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High; //输出极性:TIM输出比较极性高
	TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable; //比较输出使能
	TIM_OC3Init(TIM3, &TIM_OCInitStructure);  //根据TIM_OCInitStruct中指定的参数初始化外设TIMx

	TIM_OC3PreloadConfig(TIM3, TIM_OCPreload_Enable); 
	TIM_Cmd(TIM3, ENABLE);
	
}

主函数

#include "stm32f10x.h"
#include "led.h"
#include "sys.h"
#include "delay.h"
#include "usart.h"
#include "pwm.h"
#include "timer.h"
//说明
//连接好线后,细分数调到6400
 int main(void)
	 { 
		 u8 key;
		 RS485_Init(9600);	 //串口初始化为9600
		 RS232_Init(9600);	 //串口初始化为9600
		 TIM3_PWM_Init(30,111);
		 NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);// 设置中断优先级分组2
		 delay_init();	     //延时函数初始化
		 LED_Init();         //输出I/O初始化函数
     LED1=0;LED2=0;LED3=0;LED4=0;LED5=0;LED6=0;LED7=0;LED8=0;	BEEP=0; 
		 while(1)
		 {
	TIM_SetCompare3(TIM3,20);
 // delay_ms(300);
		 }
	 }
}

具体源码工程压缩包可在本博客上传资料下载。或者下面QQ群下载,“星云视界”资料共享群:626051465
“星云视界”资料共享群资料二维码如下:

请添加图片描述

非常感谢大家的观看,希望对大家有所帮助。小编常接外包设计定单哦!非常乐意为大家提供毕设技术指导以及产品设计等服务。

如需要可直接联系小编(添加请备注博客添加哈)

QQ : 3778615131

微信号 : a13428153731

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

“星云-视界”

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值