基于编码器电机测量转速及转角课程设计(共13页)_第1页
基于编码器电机测量转速及转角课程设计(共13页)_第2页
基于编码器电机测量转速及转角课程设计(共13页)_第3页
基于编码器电机测量转速及转角课程设计(共13页)_第4页
基于编码器电机测量转速及转角课程设计(共13页)_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、精选优质文档-倾情为你奉上课程设计报告课程名称: 专业课课程设计II 课设题目: 简易测量电机转速和转角装置 专业班级: 电子信息工程1001 姓 名: 郭阳 学 号: 课设时间: 2013.12 批阅时间: 指导教师: 桂珺 成 绩: 专心-专注-专业任务书题目:简易测量电机转速和转角装置参数:处理器89C52显示设备LCM1602编码器欧姆龙H38S6-2000-3-2-24电机GM12F-N20VA08260/298-R要求:利用C语言设计,基于单片机实现简易的电机转速和转角测量。当电机转动时能够实时的显示转角和转速,转角要求有正负(以初始位置为0度)。当电机停止转动时,用手拧动编码器的

2、轴也可实现转角测量。日程安排:12月19-12月20,查阅资料,确定课设题目12月23-12月26,进行电机测转速的编程及仿真工作。12月27-12月31,进行电机测角度的编程及仿真工作。1月2,老师进行检查1月3-1月7日,进行最后的补充与修改及写报告目录摘要。3一、 总体方案。41. 方案一。42. 方案二。43. 方案选择。4二、 编码器介绍。51. 编码器原理。52. 编码器选型。5三、 编码器测量电机转速。61. 原理介绍。62. 程序框图。63. 编程实现。64. 改错心得。7四、 编码器测量电机转角。91.原理介绍。92.程序框图。93.编程实现。94.改错心得。10五、 实验检

3、测。111. 实验描述。112. 实验结果。11六、 总结。11简易测量电机转速和转角装置摘要本文介绍了基于89C52单片机的测量电机转速和转角的系统,概述了编码器的工作原理和应用,详细阐述了测速及测转角的基本原理、实现的步骤和软硬件的设计,采用C语言编程,用1602液晶屏显示数据,结果表明该方法具有简单、精度高、稳定性好的优点。关键词:89C52单片机 测速 测转角 编码器 电机一、 整体方案1. 方案一采用红外光电对管数据采集电路,红外对管根据电机转动时开口遮光片的位置,每转一圈输送几个低脉冲实现转速及转角的测量。2. 方案二采用编码器采集信号,将编码器的轴与电机的轴通过联轴器固定,电机带

4、动编码器转动,同时想单片机发出信号,经过单片机处理测出转速及转角。3. 方案选择采用编码器测量系统具有低惯性、低噪声、高分辨率和高精度的优点,光栅的成功应用使编码器在检测和控制领域得到了广泛的应用。选择编码器做传感器使得系统拥有测量准确度高、采样速度快、测量范围宽和测量精度与被测速度无关等优点。所以选择方案二。二、 编码器介绍1. 编码器原理编码器是将信号或数据进行编制、转换为可用以通讯、传输和存储的信号形式的设备。器把或直线位移转换成电信号。按照读出方式编码器可以分为接触式和非接触式两种;按照工作原理编码器可分为增量式和绝对式两类。增量式编码器是将位移转换成周期性的电信号,再把这个电信号转变

5、成计数脉冲,用脉冲的个数表示位移的大小。绝对式编码器的每一个位置对应一个确定的数字码,因此它的示值只与测量的起始和终止位置有关,而与测量的中间过程无关。现在编码器的厂家生产的系列都很全,一般都是专用的,如电梯专用型编码器、机床专用编码器、伺服电机专用型编码器等,并且编码器都是智能型的,有各种并行接口可以与其它设备通讯。编码器由一个中心有轴的光电码盘,其上有环形通、暗的刻线,有光电发射和接收器件读取,获得四组正弦波信号组合成A、B、C、D,每个正弦波相差90度相位差,将C、D信号反向,叠加在A、B两相上,可增强稳定信号;另每转输出一个Z相脉冲以代表零位参考位。优点:体积小,精密,本身分辨度可以很

6、高,无接触无磨损;同一品种既可检测角度位移,又可在机械转换装置帮助下检测直线位移;多圈光电绝对编码器可以检测相当长量程的直线位移(如25位多圈)。寿命长,安装随意,接口形式丰富,价格合理。成熟技术,多年前已在国内外得到广泛应用。缺点:精密但对户外及恶劣环境下使用提出较高的保护要求;量测直线位移需依赖机械装置转换,需消除机械间隙带来的误差;检测轨道运行物体难以克服滑差。2. 编码器选型选型的三个要素是机械安装尺寸,分辨率和电气接口。我选用了欧姆龙H38S6-2000-3-2-24这款编码器。外径38mm,止口20mm,轴径6mm,电缆侧出,标准配线2米。尺寸符合标准。选用2000转的高分辨率,完

7、全可以测角度,单片机也可计算。集电极开路是常用的一般电路选择。图2.2三、 采用编码器测量电机转速1 原理介绍利用编码器的Z轴每当转一圈会发一个脉冲,将Z轴信号接到外部中断0引脚,每当有下降沿信号则使变量加1。同时采用定时器中断,每隔一秒查看变量增加的个数,即可算出每秒转过的圈数。再把这个转速送给显示函数,用数码管显示出来。2 程序框图 否是否进入外部中断开始 是y+时间是否过了1sV=y;y=0;显示函数 是 否 图3.23 编程实现首先要在初始化函数里打开定时器0中断和外部0中断,并且给定时器设定初始值,由于目标为定时1秒大于65535,可以实行定时50ms,然后在定时器中断服务程序里设一

8、个变量,每进一次中断变量加一,加到20次,即时间过1秒后,查看变量y,把y的值赋予给转速v,并且使y=0,意义为每秒重新计数。外部中断0要设置成下降沿中断,服务程序为y+,即每转一圈变量加一。void quanshu() interrupt 0 / 外部中断 0 计C相脉冲数y+;void zhuansu() interrupt 1/定时器0中断每隔1秒查一次转过的圈数 TR0=0; TH0=(65536-50000)/256; TL0=(65536-50000)%256; count+; if(count=20) v=y;y=0;count=0; TR0=1; 4 改错及心得进行测量时出现误

9、差,并且转速值不稳定。原因有两个:第一个是使用过多的外部中断占用了CPU过多的时间,使一些信号采集不准确,导致误差。第二个是Z轴信号本身的缺陷,只有到一个固定位置时才会发一个脉冲信号,使得无法实时的计算速度,即如果1s内没转够1圈,无论速度多快或多慢,系统就认为速度是零。经过重新思考,决定不用Z轴做采集信号,而是用A轴。这样做既减少了一个中断处理,又避免了误差,大大提高了系统的稳定性与实时性。根据这样的思路更改程序框图如下:否是否进入外部中断1开始 是y+时间是否过了0.5sV=y*0.01;y=0;显示函数 是 否 图3.4当然程序也要做相应的改变。首先把外部中断0全部关断,在外部中断1中加

10、一句话y+;,由于转速的定义为每秒转的圈数,我每0.5秒查看一次y的数值,转换公式为v=y/(2000*0.5),即v=y*0.001,因为显示方便,这里使v=y*0.01,然后把个位赋值给小数点后一位,把十位赋值给个位就可以正确显示了,更改后的程序如下:void jiaodu() interrupt 2 /外部中断 1 计A相脉冲数y+;void zhuansu() interrupt 1/定时器0中断每隔 0.5 秒查一次A转过的脉冲数 TR0=0; TH0=(65536-50000)/256; TL0=(65536-50000)%256; count+; if(count=10) v=y

11、*0.01;/转速换算y=0;count=0; TR0=1; 经过如此的更改就解决了之前的问题,显示非常稳定,误差也减小了很多。再给51系列单片机编程时应尽量的减少中断的使用,尤其是输入信号频率高,要求精度高,硬件设备质量低的情况。最好是根据有用信号,即用最少的输入信号得到最多的有用信息,通过编程减少外部设备,这样做不仅能够有效的减少误差,还可以节约资源。四、 采用编码器测量电机转角1. 原理介绍利用编码器的A轴和B轴来判断正反转和角度。这里的正反是以开机时电机的初始位置为标准的。正反转的判别方法:因为A和B 相差90度,假设正转时A超前B90度,则反转时B超前A90度,利用这一特点可以判断正

12、反。把A接到外部中断1,B接到P00口,当进入中断时,判断B轴是高电平还是低电平就可以判断正反了。角度的计算方法:电机转一圈是360度,编码器转一圈发出2000个矩形波,有这个关系就可以计算角度,即角度=计数个数*360、2000.2. 程序框图开始 是否进入中断X=|x|*360/2000 否 显示函数 X-X+P00是否为1 是 否图4.23. 编程实现首先在初始化函数里要打开外部中断1,并且设置成下降沿触发。但A轴有信号来临时,进入到外部中断1服务程序,先判断P00口的高低电平,若为高电平,则计数变量加一,反之,计数变量减一。如果计数变量X大于2000或小于-2000,则使X等于0.这样

13、做减轻了变换角度的计算量,使系统认为编码器一直在正一周或负一周之内活动。接下来就可以将计数变量通过公式转换成角度显示了。显示正负角则可以判断计数变量的正负来确定。void jiaodu() interrupt 2 /外部中断 1 计A相脉冲数if(d1=1) x+;else x-;if(x2000)|(x(-2000)x=0;uint jiaodujisuan()/角度计算uint j;if(x0) wela=1;/显示角度符号位 P0=0xfb; wela=0; dula=1; P0=0x40; dula=0; delay(3); j=fabs(x); j=j*0.18; /角度转换公式 return j;4. 改错及心得开始没有设置计数变量的上下限,使测量角度大于360度,改正后效果正确。开始角度转换公式为X=X*360/2000,结果显示不正确,后来改为X=X*0.18,显示正确。这段程序很考察细节,一个注意不到的地方有可能使程序出错。五、 试验检测1. 实验过程把编码器与直流电机用联轴器固定在一起,通过改变只直流电压改变直流电机的转速,观察

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论