您好,欢迎访问三七文档
当前位置:首页 > 机械/制造/汽车 > 综合/其它 > 实验六步进电机控制实验
实验六步进电机控制实验一、实验目的:1.了解步进电机的原理以及控制方法。2.掌握对步进电机的编程。二、实验内容:1.编写程序实现步进电机的正反转。2.编写程序实现对步进电机的单步运行。三、实验设备:1.ARM教学实验平台。2.ADS1.2集成开发环境和ARM仿真器。3.串口连接线。四、实验原理:1.步进电机介绍步进电机是将电脉冲信号转变为角位移或线位移的开环控制组件。在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,即给电机加一个脉冲信号,电机则转过一个步距角。这一线性关系的存在,加上步进电机只有周期性的误差而无累积误差等特点。使得在速度、位置等控制领域用步进电机来控制变的非常的简单。单相步进电动机有单路电脉冲驱动,输出功率一般很小,其用途为微小功率驱动。多相步进电动机有多相方波脉冲驱动,用途很广。使用多相步进电动机时,单路电脉冲信号可先通过脉冲分配器转换为多相脉冲信号,在经功率放大后分别送入步进电动机各项绕组。每输入一个脉冲到脉冲分配器,电动机各相的通电状态就发生变化,转子会转过一定的角度(称为步距角)。正常情况下,步进电机转过的总角度和输入的脉冲数成正比;连续输入一定频率的脉冲时,电动机的转速与输入脉冲的频率保持严格的对应关系,不受电压波动和负载变化的影响。在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,即给电机加一个脉冲信号,电机则转过一个步距角。2.常用步进电机类型反应式步进电动机(VR):结构简单,生产成本低,步距角可以做的相当小,但动态性能相对较差。永磁式步进电动机(PM):出力大,动态性能好;但步距角一般比较大。混合步进电动机(HB):综合了反映式和永磁式两者的优点,步距角小,出力大,动态性能好,是性能较好的一类步进电动机。3.步进电机参数和指标步进电机的静态指标术语相数:产生不同对极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度(俗称半步)。定位转矩:电机在不通电状态下,电机转子自身的锁定力矩(由磁场齿形的谐波以及机械误差造成的)静转矩:电机在额定静态电作用下,电机不作旋转运动时,电机转轴的锁定力矩。此力矩是衡量电机体积(几何尺寸)的标准,与驱动电压及驱动电源等无关。虽然静转矩与电磁激磁安匝数成正比,与定齿转子间的气隙有关,但过分采用减小气隙,增加激磁安匝来提高静力矩是不可取的,这样会造成电机的发热及机械噪音。4.步进电机控制系统脉冲信号的产生脉冲信号一般由CPU或单片机,这里是有S3C2440的,一般脉冲信号的占空比为0.3-0.4左右,电机转速越高,占空比则越大。信号分配以四相步进电机为例,四相电机工作方式有二种,四相四拍为AB-BC-CD-DA;四相八拍为AB-B-BC-C-CD-D-AB。功率放大功率放大是步进电机驱动系统最为重要的部分。步进电机在一定转速下的转矩取决于它的动态平均电流而非静态电流(而样本上的电流均为静态电流)。平均电流越大电机力矩越大,要达到平均电流大这就需要驱动系统尽量克服电机的反电势。因而不同的场合采取不同的驱动方式,到目前为止,驱动方式一般有以下几种:恒压、恒压串电阻、高低压驱动、恒流、细分数等。5.教学实验系统中对步进电机的控制ARM实验箱采用的是四相步进电机,工作模式是四相四拍,系统采用四路I/O进行脉冲分配,这四路I/O口由CPLD扩展的,通过功率放大后,进入步进电机的各相绕组。在四相四拍的工作模式下,脉冲分配信号如下表,表格中的A,B,C,D为步进电机的四相。表一四相四拍的脉冲分配信号通电顺序正转脉冲序列反转脉冲10011(AB)1001(DA)20110(BC)1100(CD)31100(CD)0110(BC)41001(DA)0011(AB)控制步进电机的I/O口地址为:#defineStepMotor_Address*(volatileU16*)(0x38001000)//nGCS7五、实验步骤:(1)新建一个工程名为StepMotor,并新建源文件、输入代码,设置好工程编译生成目标代码;(2)硬件连接:用串口线将PC机的COM1与实验箱的UART1连起来,最后接上电源;(3)下载、调试并运行:(4)结合实验内容和原理,观察实验现象,实验结果应该是步进电机转动正转停止反转并且可以在超级终终端看到打印的信息;(5)完成实验练习题。六、步进电机应用程序编程:1.相关函数说明#includedef.h#include2440addr.h#include2440lib.h#includemmu.h//PB8黑PA13MOTERK1--R201A+//PB9灰PA14MOTERK2--R202A-//PB10橙PA15MOTERK3--R203B+//PB11黄PA16MOTERK4--R204B-//MOTERK1S3C2440_PIO_PG0#defineMOTERK1(1UL0)#defineMOTERK1_INIT()rGPGCON=(rGPGCON&(~(0x03UL0)))|(0x010);rGPGUP|=MOTERK1#defineMOTERK1_LOW()rGPGDAT=rGPGDAT&(~MOTERK1)#defineMOTERK1_HIGH()rGPGDAT=rGPGDAT|MOTERK1//MOTERK2S3C2440_PIO_PG3#defineMOTERK2(1UL3)#defineMOTERK2_INIT()rGPGCON=(rGPGCON&(~(0x03UL6)))|(0x016);rGPGUP|=MOTERK2#defineMOTERK2_LOW()rGPGDAT=rGPGDAT&(~MOTERK2)#defineMOTERK2_HIGH()rGPGDAT=rGPGDAT|MOTERK2//MOTERK3S3C2440_PIO_PG6#defineMOTERK3(1UL6)#defineMOTERK3_INIT()rGPGCON=(rGPGCON&(~(0x03UL12)))|(0x0112);rGPGUP|=MOTERK3#defineMOTERK3_LOW()rGPGDAT=rGPGDAT&(~MOTERK3)#defineMOTERK3_HIGH()rGPGDAT=rGPGDAT|MOTERK3//MOTERK4S3C2440_PIO_PE11#defineMOTERK4(1UL11)#defineMOTERK4_INIT()rGPECON=(rGPECON&(~(0x03UL22)))|(0x0122);rGPEUP|=MOTERK4#defineMOTERK4_LOW()rGPEDAT=rGPEDAT&(~MOTERK4)#defineMOTERK4_HIGH()rGPEDAT=rGPEDAT|MOTERK4voidMotorStep_Run_P(intnum,intstepDelay){while((num--)){//正转,双相励磁两拍,结束了全0//0011//0110//1100//1001//橙PA15MOTERK31001//灰PA14MOTERK21100//黄PA16MOTERK40110//黑PA13MOTERK10011//A+B+,B+A-,A-B-,B-A+//A+A-B+B-//port_write(MOTERK1,0);port_write(MOTERK2,1);port_write(MOTERK3,1);port_write(MOTERK4,0);MOTERK1_LOW();MOTERK2_HIGH();MOTERK3_HIGH();MOTERK4_LOW();Delay(stepDelay);//port_write(MOTERK1,0);port_write(MOTERK2,1);port_write(MOTERK3,0);port_write(MOTERK4,1);MOTERK1_LOW();MOTERK2_HIGH();MOTERK3_LOW();MOTERK4_HIGH();Delay(stepDelay);//port_write(MOTERK1,1);port_write(MOTERK2,0);port_write(MOTERK3,0);port_write(MOTERK4,1);MOTERK1_HIGH();MOTERK2_LOW();MOTERK3_LOW();MOTERK4_HIGH();Delay(stepDelay);//port_write(MOTERK1,1);port_write(MOTERK2,0);port_write(MOTERK3,1);port_write(MOTERK4,0);MOTERK1_HIGH();MOTERK2_LOW();MOTERK3_HIGH();MOTERK4_LOW();Delay(stepDelay);/*MOTERK1_LOW();MOTERK2_LOW();MOTERK3_HIGH();MOTERK4_HIGH();Delay(stepDelay);MOTERK1_LOW();MOTERK2_HIGH();MOTERK3_HIGH();MOTERK4_LOW();Delay(stepDelay);MOTERK1_HIGH();MOTERK2_HIGH();MOTERK3_LOW();MOTERK4_LOW();Delay(stepDelay);MOTERK1_HIGH();MOTERK2_LOW();MOTERK3_LOW();MOTERK4_HIGH();Delay(stepDelay);*///port_write(MOTERK1,0);port_write(MOTERK2,0);port_write(MOTERK3,0);port_write(MOTERK4,0);MOTERK1_LOW();MOTERK2_LOW();MOTERK3_LOW();MOTERK4_LOW();Delay(stepDelay);}}voidMotorStep_Run_N(intnum,intstepDelay){while((num--)){//反转,双相励磁两拍,结束了全0//0011//1001//1100//0110//黑(D3)黄(D2)灰(D1)橙(D0)//PA13(MOTERK1)PA16(MOTERK4)PA14(MOTERK2)PA15(MOTERK3)//0011//1001//1100//0110//A+B+,B+A-,A-B-,B-A+//A+A-B+B-//port_write(MOTERK1,0);port_write(MOTERK2,1);port_write(MOTERK3,1);port_write(MOTERK4,0);MOTERK1_LOW();MOTERK2_HIGH();MOTERK3_HIGH();MOTERK4_LOW();Delay(stepDelay);//ort_write(MOTERK1,1);port_write(MOTERK2,0);port_write(MOTERK3,1);port_write(MOTERK4,0);MOTERK1_HIGH();MOTERK2_LOW();MOTERK3_HIGH();MOTERK4_LOW();Delay(stepDelay);//port_w
本文标题:实验六步进电机控制实验
链接地址:https://www.777doc.com/doc-2459356 .html