前言

上一讲给大家介绍了步进电机的基础知识,相信大家对步进电机的基本工作原理有了一定的了解(如果没看上一节内容,可以先看一下,https://blog.csdn.net/zhanglifu3601881/article/details/102844594或学习下面网页的内容:

https://www.orientalmotor.com.cn/web_seminar/stkiso2-1-1/),如果你手头有步进电机及相应的驱动板,学习完本节的内容后也你可以轻松地实现对步进电机的控制。

本节演示步进电机实物图如下,因没有找到电机的详细参数,只能从型号中大致猜测一些(电机工作电压4V,电流4A),结合万用表实测,得知该步进电机为两相四线电机,具体接线关系如下图所示。

示例详解

本节用到ST官方推出的NUCLEO-F103RB和MPS的EV8049S-U-00A 电机控制评估板 ,EV8049S-U-00A评估板使用MP8049双通道全桥芯片,可同时控制两个有刷直流电机或两个喇叭或一个步进电机,本节将用它来控制一个步进电机,手头没有EV8049S-U-00A评估板的可以用专门的步进电机驱动板(tb6560等)代替,也可以用L298N电机驱动板来控制。

NUCLEO-F103RB对应的大致原理接线图:

EV8049S-U-00A 电机控制评估板原理图:

  1. 准备操作

    1. MP8049驱动芯片工作电压是5-26V,因不太确定步进电机工作电压具体是多少,本示例以该驱动支持的最低电压5V控制步进电机(电压越低,电机电流越小,电机越不容易烧坏,但出力也越小),关于EV8049S-U-00A评估板及MP8049双通道全桥芯片的详细数据手册可在mps官网下载),连接好NUCLEO-F103RB与EV8049S-U-00A及电机:

需要用到的信号

对应MCU引脚

PWM1A

PA0

PWM1B

PA1

PWM2A

PA4

PWM1B

PB0

GND

GND

本节将直接使能PA0,PA1,PA4,PB0引却配置成通用输出模式 ,直接以接高或拉低方式控制步进电机的各相通电状态。

关于两相步进电机的控制节拍:

正转:

(1)四拍:A 1000,A- 0010,   B 0100,  B- 0001.

(2)八拍:A 1000,AA- 1010,A- 0010,A-B 0110,B 0100,BB- 0101,B- 0001,B-A 1001.

反转为正转的逆序,本节将演示以上两种控制方式的步进电机正反控制。

  1. 在STM32CubeMX中,有专门的NUCLEO-F103RB工程模板,新建一个Cube工程,芯片型号为st32f103rb:

生成一个简单的工程模板实现了RCC,SYS,USART2接口的配置,同时还实现了LD2(LED)引脚的配置。接下来手动配置PA0,PA1,PA4,PB0为普通输出功能:

生成工程:

  1. 打开工程,在main.c中加入如下代码:

经过测试,示例使用四拍方式刚好是400步走完一圈,故步距角是 360/400 = 0.9 度,又因

步距角 = 180/(相数*转子极对数),前面已实测出该步进电机相数为2 ,可知,转子极对数为100。八拍驱动方式为四拍驱动方式的1/2细分驱动,在该驱动方式下,步时电机每拍转动 1/2 步距角即0.45度故需要800个节拍才能起完一圈。

设置工程下载后自动运行:

编译代码,下载程序运行可直以看到步时电机成功转动起来,先是快速正一圈(4拍),然后慢速反转一圈(8拍),然后是快慢速正反各两圈,依次循环运动。程序中可以修改HAL_Delay(1)的延时时间来实现步时电机的速度控制,需要注意的是延时时间不能过短,不然步时电机可能会跟不上节拍导致丢步,延时时间太长也有可能导致动作不连贯。在步进电机转动时,可以看到如下的驱动波形图,四拍波驱动波形:

八拍驱动波形:

通过本节内容,学习了步进电机的基本节拍控制,对步进电机的控制原理有了更加具体及深刻的认识。其实现在市面上已经有了很多完整的步进电机驱动方案(芯片或控制板),这些驱动方案往往都已经完整地实现了步进电机的节拍控制,在使用时,用户往往只需给定简单的脉冲(一个脉冲走一步或一个细分步)信号及方向信号就可以实现步进电机的控制,使得控制步进电机变得更加简单。OK,本期实验完成!下一期将给大家介绍步进电机的开环速度控制,如果大家有什么疑问或是有想了解的其它内容,也欢迎大家留言!!最后喜欢这个公众号的同学们记得加关注了,每天都会有技术干货推出!!

文中源码及资料下载,关注十三公众号:

在公众号里给十三发送 “下载|STM32 电机教程6” :

STM32 电机教程 6 - 步进电机转动控制相关推荐

  1. STM32 电机教程 8 - 步进电机开环电流控制

    前言 上一讲我们已成功实现基于STM32定时器的步进电机开环速度控制,这一节将介绍步时电机的开环电流控制,步进电机内阻较大,在电机停机或堵转时其电流可近视为 I = U/R.其中R是常量,控制U就可以 ...

  2. STM32 电机教程 7 - 步进电机开环速度控制

    前言 上一讲我们已成功实现对步进电机的正反转动控制,并简单的通过调节节拍间的延时时间实现了简单的转速控制(开环),这一节将继续给大学介绍在STM32中通过定时器方式来实现节拍间的精确延时操作,并通时调 ...

  3. STM32 电机教程 5 - 步进电机基础知识介绍

    前言 步进电机是一种专门用于速度及位置精确控制的特种电机,它旋转是以固定的角度〈俗称步距角〉一步一步运行的,故称为步进电机. ​ 步进电机有反应式 (VR).永磁式(PM).混合式(HB)三种类型.混 ...

  4. STM32 电机教程 33 - 无刷电机无感控制快速实现

    前言 上一节<STM32 电机教程 32 - 基于ST X-CUBE-SPN7 无刷无感电机库的电机驱动实现>给大家分享了ST的官方的无刷电机无感控制实现方案(基于NUCLEO-F103R ...

  5. STM32 电机教程 25 - ST MCLIB实战之开环svpwm控制

    前言 上一节已经成功手动将工程修改成绝对式位置传感器方案FOC,有些朋友可能按照上面的操作电机已经成功转动起来了,可能有些朋友的还是有点问题,电机转动不起来有很多因素,如接线相序不对,位置不对,FOC ...

  6. STM32 电机教程 2 - 直流有刷电机转动控制

    前言 有刷电机是大家最早接触的一类电机,中学时物理课堂上介绍电动机也是以它为模型来展示的.有刷电机的主要结构就是定子+转子+电刷,通过旋转磁场获得转动力矩,从而输出动能.电刷与换向器不断接触摩擦,在转 ...

  7. STM32 电机教程 30 - 无刷无感入门2

    前言 无刷直流 (Brushless Direct Current, BLDC)电机是一种正快速普及的电机类型,它可在家用电器.汽车.航空航天.消费品.医疗.工业自动化设备和仪器等行业中使用.正如名称 ...

  8. STM32 电机教程 29 - 无刷无感入门1

    前言 无刷直流 (Brushless Direct Current, BLDC)电机是一种正快速普及的电机类型,它可在家用电器.汽车.航空航天.消费品.医疗.工业自动化设备和仪器等行业中使用.正如名称 ...

  9. STM32 电机教程 9 - BLDC电机基础

    本节内容整理自<无刷直流( BLDC)电机基础>( MicroChip 公司,编号 AN885)和<直流无刷电机的原理及其控制>( infineon 公司) 前言 无刷直流 ( ...

最新文章

  1. 2010年最火与最冷的IT职业
  2. jquery extend函数
  3. JZOJ100047.基因变异 (Standard IO)
  4. .Net程序员面试 中级篇 (回答Scott Hanselman的问题)
  5. 『设计模式』JAVA I/O 与装饰者模式UML图
  6. Linux驱动程序学习步骤
  7. 值得玩味儿的14个Python编程小技巧
  8. 【IJCAI 2020】篇章要素识别和篇章结构评分(下)
  9. 定位篇align_measurements
  10. 某网站登录接口password参数还原
  11. 跳一跳改分java源码_解密微信小程序漏洞:可下载任意小游戏源代码,“跳一跳”可改分...
  12. aliPay支付宝APP支付操作流程
  13. java 高内聚低耦合_高内聚低耦合法则实例解析
  14. 常见Oracle错误都在这了: ORA-00257/ORA-00313/ORA-28000/ORA-28000
  15. CCleaner解决的三个问题
  16. nib but the view outlet was not set 错误的解决办法。
  17. 主生产计划报表(MPS报表)用PHP解决ERP课程中白本教材第四章报表5-7的编制问题
  18. ws心跳检测完整代码,for websocket
  19. Rabin Karp 算法详解及Python实现
  20. elasticsearch 如何保证数据一致性?

热门文章

  1. Bootstrap 按钮组
  2. Python的os.walk()方法详细讲解
  3. Spring MVC文件上传
  4. 【BZOJ3527】【ZJOI2014】力
  5. 今天来个爪哇去边框的小代码
  6. 一起来用Websocket(一)开篇 Websocket!Socket在HTML5复活
  7. UA OPTI544 量子光学9 2-level system approximation的向量模型
  8. 在共享DLL中使用MFC 和在静态库中使用MFC的区别
  9. 图解命令行手动编译构建一个win32汇编程序
  10. pandas的DataFrame用法