stm32一般如何控制步进电机?
一、stm32一般如何控制步进电机?
谢邀。
个人经验,最好用 IO 翻转,这种方式更容易控制。
IO翻转控制电机转速的脉冲宽度,有两种方式:
1 普通延时
2 定时器
也就是,电机转动保持一会儿,然后,电机停止保持一会儿。
这个保持的时间段,可以用普通延时或者定时器实现。
二、如何控制步进电机?
步进电机是将电脉冲信号转变为角位移或线位移的一种控制电机。在未超载的情况下,步进电机的转速、停止的位置只取决于输入脉冲信号的频率和脉冲数,而不受负载变化的影响。也就是说给步进电机使加一个脉冲信号,电机就会转过一个步距角。所以,步进电机是一种线性控制器件,而且步进电机只有周期性的误差而没有累积误差。这样在速度、位置等控制领域,采用步进电机可以使控制变的非常简单。
步进电机有三种类型:永磁式(PM) ,反应式(VR)和混合式(HB)。
永磁式一般为两相,转矩和体积较小,步进角一般为7.5度 或15度;
反应式一般为三相,可实现大转矩输出,步进角一般为1.5度,但噪声和振动都很大,已被逐渐淘汰;
混合式步进是指混合了永磁式和反应式的优点。它又分为两相和五相:两相步进角一般为1.8度而五相步进角一般为 0.72度。这种步进电机的应用最为广泛。
虽然步进电机已被广泛地应用,但步进电机并不能象普通的直流电机,交流电机在常规下使用。它必须由双环形脉冲信号、功率驱动电路等组成控制系统方可使用。因此使用步进电机要涉及到机械、电机、电子及计算机等许多专业知识。
三、步进电机?如何控制?
本文将为您介绍步进电机的基础知识,包括其工作原理、构造、控制方法、用途、类型及其优缺点。
步进电机基础知识
步进电机是一种通过步进(即以固定的角度移动)方式使轴旋转的电机。其内部构造使它无需传感器,通过简单的步数计算即可获知轴的确切角位置。这种特性使它适用于多种应用。
步进电机工作原理
与所有电机一样,步进电机也包括固定部分(定子)和活动部分(转子)。定子上有缠绕了线圈的齿轮状突起,而转子为 永磁体或可变磁阻铁芯。稍后我们将更深入地介绍不同的转子结构。图1显示的电机截面图,其转子为可变磁阻铁芯。
步进电机的基本工作原理为:给一个或多个定子相位通电,线圈中通过的电流会产生磁场,而转子会与该磁场对齐;依次给不同的相位施加电压,转子将旋转特定的角度并最终到达需要的位置。图2显示了其工作原理。首先,线圈A通电并产生磁场,转子与该磁场对齐;线圈B通电后,转子顺时针旋转60°以与新的磁场对齐;线圈C通电后也会出现同样的情况。下图中定子小齿的颜色指示出定子绕组产生的磁场方向。
步进电机的类型与构造
步进电机的性能(无论是分辨率/步距、速度还是扭矩)都受构造细节的影响,同时,这些细节也可能会影响电机的控制方式。实际上,并非所有步进电机都具有相同的内部结构(或构造),因为不同电机的转子和定子配置都不同。
转子
步进电机基本上有三种类型的转子:
- 永磁转子:转子为永磁体,与定子电路产生的磁场对齐。这种转子可以保证良好的扭矩,并具有制动扭矩。这意味着,无论线圈是否通电,电机都能抵抗(即使不是很强烈)位置的变化。但与其他转子类型相比,其缺点是速度和分辨率都较低。图3显示了永磁步进电机的截面图。
- 可变磁阻转子:转子由铁芯制成,其形状特殊,可以与磁场对齐(请参见图1和图2)。这种转子更容易实现高速度和高分辨率,但它产生的扭矩通常较低,并且没有制动扭矩。
- 混合式转子:这种转子具有特殊的结构,它是永磁体和可变磁阻转子的混合体。其转子上有两个轴向磁化的磁帽,并且磁帽上有交替的小齿。这种配置使电机同时具有永磁体和可变磁阻转子的优势,尤其是具有高分辨率、高速度和大扭矩。当然更高的性能要求意味着更复杂的结构和更高的成本。图3显示了这种电机结构的简化示意图。线圈A通电后,转子N磁帽的一个小齿与磁化为S的定子齿对齐。与此同时,由于转子的结构,转子S磁帽与磁化为N的定子齿对齐。尽管步进电机的工作原理是相同的,但实际电机的结构更复杂,齿数要比图中所示的更多。大量的齿数可以使电机获得极小的步进角度,小至0.9°。
定子
定子是电机的一部分,负责产生转子与之对齐的磁场。定子电路的主要特性与其相数、极对数以及导线配置相关。 相数是独立线圈的数量,极对数则表示每相占用的主要齿对。两相步进电机最常用,三相和五相电机则较少使用(请参见图5和图6)。
步进电机的控制
从上文我们知道,电机线圈需要按特定的顺序通电,以产生转子将与之对齐的磁场。可以向线圈提供必要的电压以使电机正常运行的设备有以下几种(从距离电机更近的设备开始):
- 晶体管桥:从物理上控制电机线圈电气连接的设备。晶体管可以看作是电控断路器,它闭合时线圈连接到电源,线圈中才有电流通过。每个电机相位都需要一个晶体管电桥。
- 预驱动器:控制晶体管激活的设备,它由MCU控制以提供所需的电压和电流。
- MCU:通常由电机用户编程控制的微控制器单元,它为预驱动器生成特定信号以获得所需的电机行为。
图7为步进电机控制方案的简单示意图。预驱动器和晶体管电桥可以包含在单个设备中,即驱动器。
步进电机驱动器类型
市面上有各种不同的 步进电机驱动器,它们针对特定应用具有不同的功能。但其最重要的特性之一与输入接口有关,最常见的几种输入接口包括:
- Step/Direction (步进/方向) –在Step引脚上发送一个脉冲,驱动器即改变其输出使电机执行一次步进,转动方向则由Direction引脚上的电平来决定。
- Phase/Enable(相位/使能) –对每相的定子绕组来说,Enable决定该相是否通电, Phase决定该相电流方向,。
- PWM – 直接控制上下管FET的栅极信号。
步进电机驱动器的另一个重要特性是,除了控制绕组两端的电压,它是否还可以控制流过绕组的电流:
- 拥有电压控制功能,驱动器可以调节绕组上的电压,产生的扭矩和步进速度仅取决于电机和负载特性。
- 电流控制驱动器更加先进,因为它们可以调节流经有源线圈的电流,更好地控制产生的扭矩,从而更好地控制整个系统的动态行为。
单极/双极电机
另一个可能对电机控制产生影响的特性是其定子线圈的布置,它决定了电流方向的变化方式。为了实现转子的运动,不仅要给线圈通电,还要控制电流的方向,而电流方向决定了线圈本身产生的磁场方向(见图8)。
步进电机可以通过两种不同的方法来控制电流的方向。
继续阅读 >>>请点击下方链接进入MPS官网查看全文:
https://www.monolithicpower.cn/stepper-motors-basics-types-uses?utm_source=zhihu&utm_medium=social&utm_campaign=2023_articlepromo&utm_content=202304_1四、如何用Python 控制步进电机?
如果你的步进电机驱动器有RS232或RS485端口的话,直接使用python控制PC的COM口发送数据控制就好了。
五、步进电机位置闭环控制?
不邀自来,强答一个,我是用过闭环步进的,但是是半闭环,编码器在步进电机的轴上的。
题主想要实现的是光栅尺全闭环,首先你要知道移动单位长度光栅尺输出多少个脉冲,比如32000p/mm
然后再确定步进电机带动运动副移动单位距离的脉冲数,比如1.8度两相步进电机8细分5mm丝杆,那就是320p每mm
那么控制器需要对给步进输出的脉冲数和光栅尺反馈脉冲数做比较就好了,输出320脉冲,应该移动1mm,那么光栅尺返回32000脉冲就对了,
如果不够,失步,多了,过冲,失步就补,过冲就回来,完事儿了
不过,这都是马后炮了,更高级的实现方法当然是提高比较频率,比如步进电机驱动脉冲每发出一个,进行一次光栅尺反馈比较,然后立马进行纠偏
六、stm32控制步进电机必须需要定时器控制吗?
没有特殊要求两相两路三相三路,另外两路信号是相位或使能端,中间有驱动电路
七、如何用stm32控制两个步进电机?
PWM输出pin接到电机的驱动ic上既可以,通过控制pwm的输出控制电机
八、步进电机怎么控制?
1、步进电机动作的话要靠驱动器来驱动的,步进电机也叫脉冲电机,给一个脉冲转一个角度。
12V的话要控制要先买个开关电源,把220V变成12V接到驱动器,再用驱动器控制电机,还要
一个外部给脉冲的控制器(单片机或者PLC)给驱动器脉冲信号。
2、根据控制信号运动,一个脉冲信号走一步,步进角则根据固有参数计算,比如以5相步进电
机为例,采用基本步进角即无细分,则每给一个脉冲信号,步进电机运转0.72°,500脉冲一
圈。所以当脉冲的频率越高时,步进电机的运转速度越快,依次计算即可。
步进电机驱动器概述:
1、可以通过控制脉冲个数来控制角位移量,从而达到准确定位的目的;同时可以通过控制脉冲
频率来控制电机转动的速度和加速度,从而达到调速和定位的目的。
2、是一种将电脉冲转化为角位移的执行机构。当步进驱动器接收到一个脉冲信号,它就驱动步
进电机按设定的方向转动一个固定的角度,它的旋转是以固定的角度一步一步运行的。
步进电机驱动器基本原理:
1、采用单极性直流电源供电。只要对步进电机的各相绕组按合适的时序通电,就能使步进电机
步进转动。四相步进电机按照通电顺序的不同,分为单四拍、双四拍、八拍三种方式。
2、单四拍与双四拍的步距角相等,但单四拍的转动力矩小。八拍工作方式的步距角是单四拍与
双四拍的一半,因此,八拍工作方式既可以保持较高的转动力矩又可以提高控制精度。
九、步进电机控制方法?
1、可以用单片机+全集成步进电机驱动芯片来整全应用,这样比较简单,控制上很方便。用普通的51单片机像AT89C2051或STC12C1052+THB7128或THB6064这类芯片来组合就可以了。
2、单片机根据输入来决定输出的脉冲数量,让步进电机驱动芯片转化成功率信号驱动步进电机。
3、因为是一个脉冲走一步的,所以输出的脉冲数还要考虑到细分数的问题,固定转动步数、角度的程序还是比较容易编。像1.8度的步进电机,2细分时,转一圈就需要400个脉冲,转半圈只需要200个脉冲,转90度只需要100个脉冲,如此类推。
4、程序的话,固定一个适当的频率,按键触发启动定时器,然后在定时中断里取反一个IO端口做脉冲输出,再放入一个累加变量做计算,算脉冲数量,是取反两次输出一个完整的脉冲,在主程序中设定一个需要的脉冲数量来作为条件控制定时器的开启和关闭,然后循环等待条件满足
5、如果想把控制、驱动、和步进电机都整合在一起,比较麻烦,小电机还好,大电机的干扰是个问题。
十、步进电机驱动器怎么控制步进电机?
脉冲控制,因为脉冲有数量,利于精确控制。所以步进电机方向是靠脉冲控制的,
怎么控制:一般高电平控制一个方向,低电平控制另一个方向。
也有用两路脉冲控制的。就是一路脉冲的高电平控制一个方向,另一路脉冲的高电平控制另一个方向。
推荐阅读