stm32和电机开发(直流有刷电机和步进电机)
Posted 嵌入式-老费
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了stm32和电机开发(直流有刷电机和步进电机)相关的知识,希望对你有一定的参考价值。
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】
很多的课程都喜欢把电机原理完完整整讲一遍。但是对于控制的同学,这部分内容是否真的需要值得商榷。做电机控制,大部分都是在学了stm32之类的mcu之后才开始进行的。这部分,不如按照个人认知习惯去学习或许效率更高。
1、直流有刷电机和步进电机
虽然直流无刷电机bldc、pmsm这两类电机似乎更有技术含量一点,但是从学习角度来说,直流有刷电机和步进电机是最合适的。说到直流有刷电机,大家可以把它想象成小时候玩具上的电机。上面会有一个正负极,分别连接在电源两侧。如果是正着接,那么电机就正转;如果反着接,就反转。
步进电机,看的比较多的是二相四线步进电机,可以简单看成两对正负线。如果要步进电机转起来,只需要定时给一定数量的方波即可。比如一个方波发送出来,电机就转到1.8°。只要不停给pwm方波,电机就会一直转下去。
2、直流有刷电机和直流无刷电机bldc
接口上看,前者一般就正负极接口;bldc一般有三个接口,分别是u、v、w。
3、控制方法
拿直流有刷电机来说,如果是直接接到电源两侧,那么满功率下肯定有一个最大转速。在这个最大转速的基础上,大家试想一下,把电源切分成一段一段的高低方波。比如说,把1s时间切分成1000份,1ms的时间内,有一部分时间供电,一部分时间不供电,这样电机的速度是不是就可以从最大转速降下来了。如果要提速,那就增加供电的时间比例;如果要降速,那么就降低供电的时间比例,这样是不是就可以达到我们的目的了。
而对步进电机来说,控制方法就更简单了。如果要速度快一点,是不是单位时间内发送更多的方波个数就好了;慢一点,就发送少一点的方波。
4、反馈控制
上面说到了电机控制。但是,如何保证控制的有效性呢?比如对直流有刷电机来说,我们希望保持在一个恒定的速度,那么除了调节方波之外,还需要什么呢?是不是需要一个测量传感器。这个传感器会告诉我们当前的速度是多少。现实中,这个传感器叫编码器。因为电机控制有一定延时,这是如果测量发现速度慢了,就增加供电比例;如果快了,就减少供电比例。这个过程,把它写成代码做到stm32里面就成了自动调速系统了。
5、用驱动板实现电机控制
之前说到会把电源切分成一段一段的方波。这个过程是怎么完成的,那就是驱动板。在这之前,需要了解控制信号和驱动信号的区别。控制信号,这个Control电压一般很小,小到几伏就可以;但是驱动信号,这个就很大,一般会有几十、几百、上万伏都有可能。所以驱动板就相当于一个开关,开通后,外界电源直接传递给电机;关闭后,切断外界电源和电机的联系。
6、电机控制的目标
电机控制目标一般就三个,扭矩或电流、速度、距离。这里面精度的保证主要来源于编码器和控制算法。评价电机好坏有很多指标,比如响应时间、精度等等。
以上是关于stm32和电机开发(直流有刷电机和步进电机)的主要内容,如果未能解决你的问题,请参考以下文章
基于51单片机霍尔测速直流电机控制设计(含源码+原理图+论文+PCB封装)基于STM32闭环步进电机控制系统设计(仿真,程序,说明)-转发分享