stm32控制步进电机回零

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了stm32控制步进电机回零相关的知识,希望对你有一定的参考价值。

1、 直接归零法。该方法在零位处安装一个停止挡块,然后令步进电机向零位方向驱动足够大的角度,当步进电机回到零位时,被挡块挡住,电机停止位置即零位。

这种归零方法简单,但是在电机被挡块挡住时,仍会驱动电机执行归零动作,因此不仅会对步进电机和传动机构造成伤害,还会产生剧烈的抖动和较大的噪声。:2、 传感器法。该方法在零位处安装霍尔开关、光电二极管等位置传感器,当步进电机回到零位时,传感器给出检测信号,控制电路检测到该信号时,令电机停在零点位置。这种归零方法准确、可靠,但是增加了电路的复杂性,对安装有一定的要求。

3、 采用带停转检测的专用电机驱动芯片。这种芯片在电机停转时,能够立刻检测到电机处于停转状态,从而确定零点位置。

但这种方法通用性差,对步进电机各绕组的电流相位有一定的要求,并且这种方法不能在微步驱动方式下使用。
参考技术A 一、PWM操作驱动器使步进电机一直转
使能定时器时钟,并配置基本参数。下图以TIM3为例。
配置输出比较PWM1模式。下图ARR+1=100,故CCR值除以100即占空比。占空比与转速有关。
使能时钟 TIM_Cmd(TIM3, ENABLE);
注:

计数器每溢出一次,发出一次脉冲,产生一次TRGO(触发输出信号)。
PWM频率不宜过快,否则可能使步进电机不转,并伴有鸣叫。
CCR可随时更改,用以调速。
开启PWM时,必须同时开启AFIO时钟!!必须配置对应引脚为复用输出!!

二、转一定角度
使用定时器主从模式,从定时器用于计算脉冲数(脉冲即指PWM波)。脉冲数与旋转角度直接相关,查看驱动器拨码开关设置可知脉冲与角度关系。

使能从定时器时钟,并配置基本参数。Period(即ARR)+1为期望脉冲数,达到期望数后触发中断。本例从定时器为TIM4.
使能中断并中断优先级分组。
设置主定时器并使能,使用更新事件作为触发输出。
设置从定时器,参数TIM_SlaveMode_External1。
设置输入触发源,参数TIM_TS_ITR2需要查表。(可以查看本专栏中“stm32定时器”篇“主从模式”)
设置从定时器触发为外部时钟模式。
使能从定时器时钟。
写中断服务函数,关闭定时器以停转步进电机。
参考技术B 1、STM32 复位类型
STM32有三种复位:系统复位、电源复位和后备域复位。

1.1 系统复位

指除时钟控制寄存器CSR中的复位标志和备份区域中的寄存器外,将其他的所有寄存器复位为它们的复位数值。系统复位可通过查看RCC_CSR控制状态寄存器中的复位状态标志位识别复位事件来源

以上是关于stm32控制步进电机回零的主要内容,如果未能解决你的问题,请参考以下文章

问一个stm32控制伺服电机的问题

STM32串口控制步进电机(原创)

STM32的PWM控制步进电机,怎么实现精确控制输出脉冲数

stm32输出pwm,怎么控制直流电机的正反转?

基于STM32闭环步进电机控制系统设计(仿真,程序,说明)

stm32控制电机