步进电机实验.pptVIP

  1. 1、本文档共12页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

实验二

步进电机DSP控制实验

一、实验目的:

了解步进电机及其驱动的原理;

了解步进电机的控制原理;

熟悉PWM控制步进电机的运行;

掌握DSP控制步进电机运行的软硬件设计方法。

二、实验背景知识:

步进电机是一种将电脉冲转化为角位移的执行机构。当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度(称为“步距角”),它的旋转是以固定的角度一步一步运行的。

可以通过控制脉冲个数来控制角位移量,从而达到准确定位的目的;同时可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。四相步进电机按照通电顺序的不同,可分为单四拍、双四拍、八拍三种工作方式。单四拍与双四拍的步距角相等,但单四拍的转动力矩小。八拍工作方式的步距角是单四拍与双四拍的一半,因此,八拍工作方式既可以保持较高的转动力矩又可以提高控制精度。单四拍、双四拍与八拍工作方式的电源通电时序与波形分别如图1.a、b、c所示:a.单四拍?????????????????b.双四拍????????????c八拍图1.步进电机工作时序波形图???a.单四拍??????????????b.双四拍????????????c八拍图1.步进电机工作时序波形图??四相单四拍为:A-B-C-D-A;四相双四拍为:AB-BC-CD-DA-AB;四相八拍为:AB-B-BC-C-CD-D-AB。?步进电机在这个实验中选择的是M35SP-7N,其步进角为7.5°,是一种单极性的步进电机。它的结构如下图2所示:实际使用时,公共端1与2是短接在一起做为电源输入,一共五个抽头。控制每个绕组的两个抽头来实现对步进电机的控制。图2步进电机的结构步进电机的控制接口为EVA的PWM1、PWM2、PWM3、PWM4引脚。它们分别为步进电机四相的控制端。按一定的频率循环置高电平即可使可使步进电机转动。引脚与步进电机的线圈对应关系如下图3所示:在步进电机为四相四拍时,其正转(顺时针)顺序为A-B-C-D,其反转(逆时针)的顺序为A-D-C-B。其中A、B、C、D四相分别对应于PWM4、PWM1、PWM3、PWM2。图3引脚与步进电机的线圈对应关系三、程序设计1、正转程序流程图:CSL初始化EV初始化步进电机输出图4程序流程图2、正转程序设计:voidmain(void){ InitSysCtrl(); DINT; /*关总中断*/ IER=0x0000; IFR=0x0000;*p_ceselect=0x6;//打开ce3空间for(i=0;i0x100;i++);*p_iodisable=0x1;//IO空间使能 for(i=0;i0x100;i++); InitPieCtrl(); /*初始化PIE控制寄存器*/ InitPieVectTable(); /*初始化PIE矢量表*/ InitEv(); /*初始化EV*/ EALLOW;PieVectTable.T1PINT=eva_timer1_isr; //定时器1计数中断EDIS;EvaTimer1InterruptCount=0;PieCtrl.PIEIER2.all=M_INT4;//使能PIE组2中断4--T1PINTIER|=M_INT2;//使能CPU中断EINT;/*开总中断*/ERTM; for(;;) { KickDog(); }} interruptvoideva_timer1_isr(void){EvaTimer1InterruptCount++; if(dir==1) { ttt++; if(EvaTimer1InterruptCount==1) { EvaRegs.ACTRA.all=0x0080;//pwm4

文档评论(0)

135****6994 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档