网站大量收购闲置独家精品文档,联系QQ:2885784924

毕业论文(设计)基于LPC2114控制步进电机转速以及角位移说明书.doc

毕业论文(设计)基于LPC2114控制步进电机转速以及角位移说明书.doc

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于LPC2114控制步进电机转速以及角位移(通过串口显示转速或者角位移) 1.实验原理讲解 (1)控制转速原理解析 如图所示,本次选用步进电机最高转速为360r/m,步进角为90°,采用四相八拍故每来一个脉冲转45°,8个脉冲就转一圈。 要控制步进电机的转速就必须先要计算出对应转速下每来一个脉冲需要的时间。 以360r/m为例,就需要2880脉冲/m,用60000ms除以2880个脉冲则可以得到每来一个脉冲的时间约为20.8333ms。 为了精确定时,又可以执行其它任务,不像采用延时程序那样只能在当前执行延时,我采用定时器0中断处理,初始化程序如下: void timer0_init() //定时器0初始化 { T0TC=0; //默认0 T0PR=0; //默认0 T0MCR=0X03; //T0MCR=0X03,匹配发生时,产生中断,并复位T0TC。 T0MR0=Fpclk/count; T0TCR=0X01; //定时器控制寄存器,第一位为1时,使能计数 } T0PR=0即每经过1/Fpclk秒TC加一,所以要匹配Fpclk/count,需要时间为(1/Fpclk)*(Fpclk/count)=1/count秒,就可以通过控制变量count进行控制脉冲时间,即可完成控制转速的任务。 看些count的变量范围: 当转速为360r/m时,每来一个脉冲的时间约为20.8333ms,count=1000/20.8333=48 当转速为60r/m时,每来一个脉冲的时间约为125ms,count=1000/125=8 当转速为10r/m时,每来一个脉冲的时间约为750ms,count=1000/750=1.3333 由此可知count范围为0~48 为了在实际应用中可以精确控制到0~48包括带小数的量,可以根据老师的提议,采用AD转换来得到高精度的数,再赋值给count进行计时,老师还提议的用键盘输入个人感觉不如AD控制精度高,因为键盘的如果要处理小数的程序十分复杂,实际应用中不好用,再三思虑还是觉得AD转换更加符合要求。 设X为转速,N为每来一个脉冲所用时间,易推得X=60000/(8*N)=7500/N=7500/(1000/count)=7.5*count 利用这个规律,当用AD处理到的count数值时,便可计算出其对应的转速X,送到串口进行显示。 控制角位移原理解析 控制角位移相对与转速简单许多,也是利用AD,将得到的数值处理成合适的数后即将其作为转角的次数,例如AD转换并加以处理数目为48,角位移即为48*45=2160°,需要48个脉冲,而我们的步进电机采用的是四相八拍,所以设一个参考量初始值为0,每转一拍加一,与48比较,等于它的时候,设控制电机的口为高电平,即可使电机停止转动,就得到想要的角位移了。 程序方面实在是想不出让它固定住再改变位移角或者切换回控制转速,所以在那里做了个比较久的延时,可以看出是控制了那么多位移角,再循环下去继续控制位移角。这时就可以改变位移角或者控制转速了。实在想不出别的办法了!! 如设计图所示,采用了三个外部中断,中断一控制电机启动与停止,中断二控制切换模式,刚开始是控制转速,按下按键触发中断后变为控制角位移,中断三控制电机转动的方向。 P0.27做AD转换,P0.0,P0.1串口通信。 PS:此设计有一弊端就是,启动时必须先控制转速,给一个转速驱动电机时,才能切换控制角位移,不能一开始就是控制角位移模式,但我觉得可以这样,先把电机调到你要的转速下,然后控制角位移,这样你预期的二者皆可控制,也是比较方便了。 实验总结:虽然这只是一个小实验,但是自己从小白开始,认真听课,自己去找资料和例子看,对着手册有哪些信誉好的足球投注网站相应功能的相应寄存器作用,不断百度一下,再结合PPT,终于从无从下手到渐入佳境,本次实验刚开始只是做了最基本的功能,但在老师的提议下,自己开拓思维,设计程序,经过调试总算把预期功能做出来了,实在收获很大,我想大学该学的就是这样一种思维能力,即使以后不从事这方面行业,但你所形成的思考方式,处理事的大体思维已经经过大学的历练深深刻入脑海,势必对以后的发展大有裨益。很喜欢这种教学方式,感觉这才是大学的魅力所在!!! 程序清单: #include lpc21xx.h #define Fpclk#define uint8 unsigned char #define uint16 unsigned int #define uint32 unsigned long int char strs[]

文档评论(0)

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

1亿VIP精品文档

相关文档