关于步进电机 copyringhr@冰林一、步进电机的介绍步进电机是将电脉冲信号转变为角位移或线位移的开环控制元件在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,即给电机加一个脉冲信号,电机则转过一个步距角基本原理:通常电机的转子为永磁体,当电流流过定子绕组时,定子绕组产生一矢量磁场该磁场会带动转子旋转一角度,使得转子的一对磁场方向与定子的磁场方向一致当定子的矢量磁场旋转一个角度转子也随着该磁场转一个角度每输入一个电脉冲,电动机转动一个角度前进一步它输出的角位移与输入的脉冲数成正比、转速与脉冲频率成正比改变绕组通电的顺序,电机就会反转所以可用控制脉冲数量、频率及电动机各相绕组的通电顺序来控制步进电机的转动2、 步进电机的性能参数相数:产生不同对极N、S磁场的激磁线圈对数常用m表示拍数:完成一个磁场周期性变化所需脉冲数或导电状态用n表示,或指电机转过一个齿距角所需脉冲数,以四相电机为例,有四相四拍运行方式即AB-BC-CD-DA-AB,四相八拍运行方式即 A-AB-B-BC-C-CD-D-DA-A.步距角:对应一个脉冲信号,电机转子转过的角位移用θ表示。
θ=360度(转子齿数J*运行拍数),以常规二、四相,转子齿为50齿电机为例四拍运行时步距角为θ=360度/(50*4)=1.8度(俗称整步),八拍运行时步距角为θ=360度/(50*8)=0.9度(俗称半步)定位转矩:电机在不通电状态下,电机转子自身的锁定力矩(由磁场齿形的谐波以及机械误差造成的)静转矩:电机在额定静态电作用下,电机不作旋转运动时,电机转轴的锁定力矩此力矩是衡量电机体积(几何尺寸)的标准,与驱动电压及驱动电源等无关3、 步进电机的种类永磁式(PM)步进电机:永磁式步进一般为两相,转矩和体积较小,步进角一般为7.5度 或15度反应式(VR)步进电机:反应式步进一般为三相,可实现大转矩输出,步进角一般为1.5度,但噪声和振动都很大混合式(HB)步进电机:混合式步进是指混合了永磁式和反应式的优点,分为两相和五相,两相步进角一般为1.8度而五相步进角一般为 0.72度,这种步进电机的应用最为广泛4、 怎样驱动步进电机 四相八拍方式(最常见的方式) 八个状态:1、在A与A-正电压,B与B-不给电悬空;2、在A与A-正电压,B与B-也给正电压;3、A与A-不给电压悬空,B与B-正电压;4、A与A-给负电压,B与B-给正电压;5、A与A-给负电压,B与B-不给悬空;6、A与A-给负电压,B与B-给负电压;7、A与A-不给电悬空,B与B-给负电压;8、A与给正电压,B与B-给负电压;按以上八个状态轮流供电,控制一下脉宽应该就可以了。
四个引脚各一根控制线:A~H表示各线时序 A B C D E F G HA 1 1 0 0 0 0 0 1A- 0 0 0 1 1 1 0 0B 0 1 1 1 0 0 0 0B- 0 0 0 0 0 1 1 1四相四拍的方式一般是电流驱动的 我下面的a~ 和b~ 表示反向电流两相双二拍:ab - a~b - a~b~ - ab~ 为一个转向ab - ab~ - a~b~ - a~b 为反向5、 步进电机该如何接线 按照常理来说,步进电机接线要根据线的颜色来区分接线但是不同公司生产的步进电机,线的颜色不一样,特别是国外的步进电机。
所以,要弄清步进电机如何接线,只需把a组和b组分开用万用表打四线:由于四线没有com公共抽线,所以,a和b组是绝对绝缘的,不连通的所以,用万用表测,不连通的是一组五线:由于五线中,a和b组的公共端是连接在一起的用万用表测,当发现有一根线和其他几根线的电阻是相当的,那么,这根线就是公共com端对于驱动五线步进电机,公共com端不连接也是可以驱动步进电机的六线:a和b组的公共抽线com端是不连通的同样,用万用表测电阻,发现其中一根线和其他两根线阻止是一样的,那么这根线是com端,另2根线就属于一组对于驱动四相六线步进电机,两根公共com端不接先也可以驱动该步进电机的6、 附录步进电机的51单片机驱动程序四相方式#include unsigned char code F_Rotation[4]={0x02,0x04,0x08,0x10};//正转表格unsigned char code B_Rotation[4]={0x10,0x08,0x040,0x02};//反转表格void Delay(unsigned int i)//延时{ while(--i);}main(){ unsigned char i; while(1) { for(i=0;i<4;i++) //4相 { P1=F_Rotation[i]; //输出对应的相 可以自行换成反转表格 Delay(500); //改变这个参数可以调整电机转速 } }}八拍方式#include "reg52.h"unsigned char code RUN[8]={0xfe,0xfc,0xfd,0xf9,0xfb,0xf3,0xf7,0xf6}; //步进电机相序表void delay(unsigned int t);//步进电机驱动void motor_ffw() { unsigned char i; for (i=0; i<8; i++) { P1 = RUN[i]&0x1f; //取数据 delay(1); //调节转速 } } /******延时函数****************/void delay(unsigned int t){ unsigned int k; while(t--) { for(k=0; k<60; k++)//用for的空循环延长程序的执行时间 { } }}main() { while(1) { motor_ffw(); //调用旋转处理函数 }} (注:素材和资料部分来自网络,供参考。
请预览后才下载,期待你的好评与关注!)。