STM32控制步进电机:工作原理及库函数(标准库) / HAL库控制程序(不定期更新)


要控制步进电机,首先要明白步进电机的基本工作原理。

一、步进电机的基本工作原理

1、步进电机工作原理

举个例子。如下图所示,通过给1绕组通电使其保持平衡,定义一个初始位置,再通过给2绕组通电,使其产生向里的磁场,使中间的转子产生偏转,最终达到平衡,即旋转了90°。
在这里插入图片描述

2、混合式步进电机工作原理

目前市面上最常用的步进电机为混合式步进电机,混合式步进电机的定子转子都有对应的齿牙,通电绕组使其产生磁场后,其定子、转子上都有许多齿牙,使得电机转动的角度变小,且通过其转动后其他定子绕组的齿牙错位,当错位的绕组通电产生磁场时,转子将再次转动,回到上述循环中。下图是我在百度上找到的图片,当A区域的齿牙对齐时,B区域及其他区域(除与A区域绕组对称区域)的齿牙将错位,通过给B区域绕组通电,将使得B区域齿牙对齐。
在这里插入图片描述

二、步进电机参数解析(后续学习会继续补充此处内容🤔)

1、相数: 指电机内部的线圈数量。

注意: 此处不是指绕组数量,如下图所示,A1、A2属于一个相,A1、A2都为绕组。

2、极性: 单极性指一个线圈只能单向通电,双极性指一个线圈可以双向通电。

注: 可看接线是否为基数,如5根线,则有一根电源线,为单极性。

3、拍数: 指完成转动一个齿距所需要的次数。(转动时齿牙错位导致的拍数)

注: 齿距为转子两齿牙之间的角度,公式为360/齿数;
步距角公式为:360/齿数×拍数。

单拍即只有一个绕组通电,双拍即给一个相(如A1、A2)通电。
在这里插入图片描述
4、保持扭矩: 指步进电机保持静止锁死时的最大扭矩,也是步进电机转动时的最大扭矩。随着步进电机的转速逐渐提升,其扭矩会逐渐减小。

三、步进电机的控制方法(附上程序和解析链接🚗)

市面上各种步进电机的工作原理都大同小异,但却存在着各式各样的步进电机驱动器,虽然他们归根到底都是电子开关,但是其上层的电路控制方式可能存在一定差异。而电机工作的电压电流都不是单片机的电平所能驱动的,因此少不了驱动器的存在。
因此,想要控制好步进电机,在程序上来讲应该理解成控制好步进电机驱动器。以下为几种常见的步进电机驱动器的控制方法(单片机控制),此处内容会不定时更新😉。

1、ULN2003类型步进电机驱动板

如下图所示,此驱动板体积小,控制方法也很直接,如上文步进电机驱动原理,只要写一段点流水灯(跑马灯)程序,就能通过此驱动器控制步进电机运转。
驱动程序以及原理解析可跳转到此文章:STM32控制步进电机:基于定时器中断的ULN2003驱动器/步进电机驱动程序
在这里插入图片描述
效果如下视频所示。

SMT32串口控制ULN2003驱动器驱动步进电机

2、TB6600等类型的步进电机驱动器

如下图所示,此驱动器后续会进行补充😳。
在这里插入图片描述

3、步进电机闭环驱动器

上述步进电机驱动器都不带有编码器,即都为开环步进电机,此处介绍的步进电机闭环驱动器可防止出现步进电机因堵转而发生丢步的情况。
驱动程序以及原理解析可跳转到此文章:STM32控制步进电机:基于HAL库定时器中断的闭环步进电机驱动+精准控制脉冲数
在这里插入图片描述
效果如下视频所示。

闭环步进电机——精准控制脉冲数

本人是一名学生,目前正在学习中,本篇文章也算是我的学习笔记,如有错误的话还请指正。

  • 15
    点赞
  • 83
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
在使用STM32控制步进电机时,可以使用HAL库提供的函数来实现。根据引用\[1\]中的描述,原子哥的例程中已经封装好了精确控制步进电机前进距离的函数。然而,由于例程使用了高级定时器TIM8,而TIM8需要复用的引脚会影响到CAN的通讯,所以需要自行研究其他方法。 根据引用\[2\]中的描述,第一次选择了定时器4的通道2作为PWM的输出口,但发现TIM4_CHANNEL2对应的引脚是PD13,使用PD13作为PWM输出口后,步进电机出现了上下乱移,不受程序控制的情况。因此,需要选择其他引脚作为PWM输出口。 最后,根据引用\[3\]中的描述,还有一个小问题是在初始化时调用了HAL_TIM_PWM_Start_IT函数,导致一打开板子就会使得步进电机前进。可以在TIM4_PWM_INIT函数中注释掉这个函数,或者在main函数中先调用一次HAL_TIM_PWM_Stop_IT函数,停止PWM输出。 综上所述,使用HAL库控制步进电机时,需要注意选择合适的定时器和引脚作为PWM输出口,并根据需要调用相应的HAL库函数来实现精确控制步进电机的步距角。 #### 引用[.reference_title] - *1* *2* *3* [【STM32F429】HAL库的PWM中断,精确控制脉冲数,控制步进电机](https://blog.csdn.net/Averus/article/details/124677194)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

超级大魔王li

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

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

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

打赏作者

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

抵扣说明:

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

余额充值