STM32 伺服电机 指令脉冲+方向位置控制模式 主从定时器 实现PWM脉冲数精确控制

该博客详细介绍了如何使用STM32通过主从定时器模式,结合PWM脉冲和方向控制,实现伺服电机的精确位置控制。通过计算电机转动一圈所需脉冲数,设置定时器参数,利用延时、中断或主从定时器模式控制PWM脉冲数量,从而达到指定距离的移动。文中提到了三种PWM脉冲数精确控制方法,并选择了资源利用率高的主从定时器方案。此外,还提供了按键触发中断实现电机运动的示例代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

实验室有个项目涉及到多个步进电机以及伺服电机的控制,需要电机得到一个触发信号后精确移动一段距离。

下面以单个伺服电机控制为例,利用伺服电机的指令脉冲加方向位置控制模式实现精确位置控制。

 

关于伺服电机

所谓指令脉冲+方向控制模式 就是由一路PWM波控制电机转动,一个IO控制电机方向。PWM的占空比控制电机转速,PWM的脉冲数控制电机的转动距离。

计算方法如下:

电机转动一圈所需脉冲数=电机驱动内置编码器线数*4/电子齿轮数                                                   

4为编码器对AB相计数模式     若仅对AB相上升沿或者下降沿计数则取2  若对AB相上升沿和下降沿都计数则取4                                                                                                                  电子齿轮即为电机驱动对脉冲的细分数,使控制更加精确。

例:                                

伺服电机编码器为2500线 驱动细分为4:1                                                                                        则一圈脉冲数=2500*4/4=2500                                                                                                            指令脉冲频率=(需要电机运行的转速 r/min/60)*一圈的脉冲数   此次操作不涉及到电机速度控制 不做介绍

 一圈所需脉冲数为2500 则一个脉冲转动1/2500圈 设电机转动一圈移动距离为C,则一个脉冲移动C/2500 所以通过对脉冲计数可以实现非常精确的位置控制。

关于PWM脉冲数精确控制

PWM脉冲数精确控制有以下三种方案:

  1. 利用延时   在开始发出脉冲的同时开始延时         时长=PWM周期*PWM脉冲数                        这是非常土的方法 且弊端显而易见       一是延时使系统的实时性降低                    二是精确度不高
  2. 两个定时器同步,一个发PWM波另外一个计数      即将两个定时器时基参数配置相同且同时开启      定时器在1个period中产生一个PWM脉冲 定时器2在一个period更新时产生一个中断,通过中断使计数变量加一,至设定脉冲数后关闭定时器1。  这个方法可以实现精确的脉冲数量控制,但是需要系统频繁的进入中断,如果需要20个PWM脉冲就要触发20次中断进行计数,如果需要20000个PWM脉冲则要触发20000次中断,太浪费系统资源,并且过于频繁的中断会让系统出现跑飞或者其他一些莫名其妙的错误,只有在数量比较小时才适合这种方法。
  3. 利用STM32自带的定时器主从模式进行计数       将主定时器的PWM输出脉冲作为从定时器的时钟,同时将从定时器的period设置为所需脉冲数,当从定时器产生溢出中断时则表示到达了所需脉冲数,即可在中断中关闭主定时器的PWM输出,达到精确的位移控制的目的。这种方法只需要触发一次中断,并且计数非常精确。

 权衡利弊,本次使用了方法三,需要两个定时器资源,主控为STM32F103ZET6,选用TIM3的CH2作为PWM输出通道即主定时器为TIM3,从定时器选用TIM4。

关于STM32主从定时器

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值