步进电机控制系统方案设计书03112.docx
- 文档编号:15145920
- 上传时间:2023-07-01
- 格式:DOCX
- 页数:28
- 大小:227.62KB
步进电机控制系统方案设计书03112.docx
《步进电机控制系统方案设计书03112.docx》由会员分享,可在线阅读,更多相关《步进电机控制系统方案设计书03112.docx(28页珍藏版)》请在冰点文库上搜索。
步进电机控制系统方案设计书03112
湖南工程学院
课程设计
课程名称微机原理与应用
课题名称步进电机控制系统设计
专业
班级
学号
姓名
指导教师
湖南工程学院
课程设计任务书
课程名称微机原理与应用
课题步进电机控制系统设计
专业班级
学生姓名
学号
指导老师
审批
任务书下达日期
任务完成日期
第1章目的与要求
综合运用所学的《单片机原理与应用》理论知识,通过实践加强对所学知识的理解,具备设计单片机应用系统的能力,以单片机为核心设计一个步进电机控制系统,要求能够通过键盘设置步进电机的转向和转速,并在LED显示器上显示步进电机转速或工作状态。
本课题以单片机为核心,设计并制作出步进电机控制系统,设计要求:
1、按下不同的键,分别使步进电机实现顺时针和逆时针旋转。
2、电机运转状态可以是正反转,加速减速,五种不同速度的各种组
合。
3、通过LED数码管显示电机运行状态。
第2章步进电机的原理介绍
2.1步进电机的工作原理
步进电机是纯粹的数字控制电动机。
它将电脉冲信号转变为角位移或线位移的开环控制元件,在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,即给电机加一个脉冲信号,电机则转过一个步距角。
这一线性关系的存在,加上步进电机只有周期性的误差而无累积误差等特点。
使得在速度、位置等控制领域用步进电机来控制变的非常的简单。
如下图所示,驱动方式为二相四拍方式各线圈通通电顺序如下表:
相
顺序
A
B
A’
B’
0
1
1
0
0
1
0
1
1
0
2
0
0
1
1
3
1
0
0
1
表1-1
电机正反转控制和速度控制:
当电机绕组通电时序为AB-BA’-A’B’-B’A-AB时为正转,通电时序为AB-B’A-A’B’-BA’-AB时为反转。
步进电机的驱动电路,微电脑向步进电机输入端传送1或0信息,则可实现上述操作。
通过不同长度的延时来得到不同频率的步进电机输入脉冲,从而得到多种步进速度,也就是改变电机的转动速度。
2.2步进电机的基本术语
2.2.1相数
产生不同对极N、S磁场的激磁线圈对数,常用m表示。
2.2.2拍数
完成一个磁场周期性变化所需脉冲数或导电状态用n表示,或指电机转过一个齿距角所需脉冲数,以两相电机为例,有两相四拍运行方式即AB-BA’-A’B’-B’A-AB,
两相八拍运行方式AB-B-BA’-A’-A’B’-B’-B’A-A-AB。
2.2.3步距角
对应一个脉冲信号,电机转子转过的角位移用θ表示。
θ=360度(转子齿数J*运行拍数),以常规二相,转子齿为50齿电机为例。
四拍运行时步距角为θ=360度/(50*4)=1.8度(俗称整步),八拍运行时步距角为θ=360度/(50*8)=0.9度(俗称半步)。
2.2.4信号分配
二相步进电机,工作方式有二相四拍和二相八拍二种,具体分配如下:
二相四拍为,步距角为1.8度;二相八拍为,步距角为0.9度。
两相四拍为AB-BA’-A’B’-B’A-AB,步距角为1.8度;两相八拍为AB-B-BA’-A’-A’B’-B’-B’A-A-AB,步距角为0.9度。
这里选取四拍的的工作方式。
第3章设计总体思路
3.1方案与思路
因为步进电机的控制是通过脉冲信号来控制的,将电脉冲信号转变为角位移或线位移的开环控制元件。
所以怎样产生这个脉冲信号和产生怎样的信号是电机控制的关键。
用单片机来产生这个脉冲信号,通过单片机的P1口输出脉冲信号,因为所选电机是两相的,所以只需要P1口的低四位P1.0~P1.3分别接到电机的四根电线上。
定时器定时来调整电机的转速,通过键盘的按钮,就可以改变定时初值从而改变了电机的转速,P0口接LED数码管,可以显示当前的电机转速和按钮状态,具体结构见3.2框图
3.2总框图
图3-1
第4章程序设计
4.1主程序
进入主程序显示初始化状态,主程序由键盘程序、显示程序、步进电机驱动程序三部分组成,主程序首先初始化各变量,步进电机驱动的各引脚均输出高电平,然后调用键盘程序,并作判断,有键按下,则调用键盘程序,并显示出状态。
图4-1
4.2显示子程序
转速的显示是给用户最直观的概念,知道电机的转的快慢,知道电机当前的转速,而需要怎样的速度,再对它进行加减速。
而这个显示是调用显示子程序。
具体流程图如下:
图4-2
4.3键盘扫描子程序
键盘是我们唯一和电机沟通的桥梁,通过键盘的输入从而改变电机的运行状态,这里所需要的键盘数量不多,可以根据学习板做成独立式键盘,键盘的焊接是行线接单片机P3口的p3.0~p3.4,通过调用KEY扫描键盘,调用延时程序,再判断是否有键按下,如果无键按下就返回继续扫描,如果有键按下,则调用delay延时去抖动,再读键值,等待键释放,具体流程如下图:
图4-3
第5章硬件设计
5.1硬件的设计与选取
5.1.1步进电机的特点
感应子式步进电机与传统的反应式步进电机相比,结构上转子加有永磁体,以提供软磁材料的工作点,而定子激磁只需提供变化的磁场而不必提供磁材料工作点的耗能,因此该电机效率高,电流小,发热低。
因永磁体的存在,该电机具有较强的反电势,其自身阻尼作用比较好,使其在运转过程中比较平稳、噪音低、低频振动小。
感应子式步进电机某种程度上可以看作是低速同步电机。
一个四相电机可以作四相运行,也可以作二相运行。
(必须采用双极电压驱动),而反应式电机则不能如此。
5.1.2步进电机的分类
感应子式步进电机以相数可分为:
二相电机、三相电机、四相电机、五相电机等。
以机座号(电机外径)可分为:
42BYG(BYG为感应子式步进电机代号)、57BYG、86BYG、110BYG、(国际标准),而像70BYG、90BYG、130BYG等均为国内标准。
5.1.3步进电机的注意点
步进电机应用于低速场合---每分钟转速不超过1000转,(0.9度时6666PPS),最好在1000-3000PPS(0.9度)间使用,可通过减速装置使其在此间工作,此时电机工作效率高,噪音低。
这里规定电机转速1~20转每分钟。
步进电机最好不使用整步状态,整步状态时振动大。
这里要求不高,使用整步状态。
于历史原因,只有标称为12V电压的电机使用12V外,其他电机的电压值不是驱动电压伏值,可根据驱动器选择驱动电压(建议:
57BYG采用直流24V-36V,86BYG采用直流50V,110BYG采用高于直流80V),当然12V的电压除12V恒压驱动外也可以采用其他驱动电源,不过要考虑温升。
应遵循先选电机后选驱动的原则。
综上所述,电机选取42BYG系列感应子式步进电机,两相四拍整步状态。
选用后建立起模块如下:
图5-1
5.2单片机的选取
MCS-51系列单片机是目前应用最为广泛的单片机,MCS-51单片机的两个子系列,下表是两个子系列的比较:
子系列
ROM
容量
RAM
容量
寻址
范围
I/O特性
中断源
定时器
并行口
串行口
51子系列
4KB
128B
2×64KB
2×16
4×8
1
5
52子系列
8KB
256B
3×64KB
3×16
4×8
1
6
表5-2
51子系列:
有8031/8051/8751和80C31/80C51/87C51
52子系列:
有8032/8052/8752和80C32/80C52/87C52
由于单片机的种类繁多,又因为我们的要求不高,所以选取单片机是很快的,所以这里选用AT89C51单片机。
根据设计方案的分析,可以选择带有EPROM的单片机,应用程序直接存储在片内,不用在外部扩展程序存储器,电路可以简化。
ATMEL公司生产的AT89CXX系列单片机,AT89CXX系列与MCS-51系列单片机相比,有两大优势:
第一,片内程序存储器采用闪速存储器,
使程序的写入更方便;第二,提供了更小尺寸的芯片,使整个硬件电路的体积更小。
它以较小的体积、良好的性能价格比倍受青睐。
本次课程设计采用89C52单片机。
AT89C52单片机的接口图如图所示:
图5-3
5.3四位LED数码管的选取
数码管选用7段共阳4位LED
图5-4
5.4其他零件根据实际情况选取
晶振选11.0592MHZ普通按钮Button
电阻RES1K电机驱动芯片ULN2803
5.5硬件的焊接
步进电机的四线接法P1.0~A、P1.1~BP1.2~A’、P1.3~B’
图5-5
第6章调试与故障分析
6.1软件部分
将程序写入keil程序编辑界面进行调试。
调试步骤如下
1、定义各个变量ucharmaichong。
ucharzhuansu。
ucharflag。
2、定义正反转、加减速端口Sbitkey_z=P3^1。
sbitkey_f=P3^2。
sbit
key_jia=P3^3。
sbitkey_jian=P3^4。
3、调用显示子程序。
4、调用键盘扫描子程序。
5、执行主程序
6.2硬件部分
根据原理图将硬件焊接好,用Proteus软件下载keil软件生成的HEX文件到单片机中,再给单片机上电,程序就开始运行。
显示初始化如下:
图6-1
按下正转按钮从P1口输出脉冲,步进电机正转,显示如下:
图6-2
按下反转按钮从P1口输出脉冲,步进电机反转,显示如下:
图6-3
按下加速按钮电机速度增加,按下减速按钮电机速度减少显示如下:
图6-4
6.3故障分析及解决
由于步进电机的相序位置与单片机的P1口的4个输出口连接不对电机转动方向不正确,解决方法,首先先用四个发光二极管模拟电机四个相序通过观察发光二极管闪亮的顺序就可以判断是否输出正确,电机相序A、A’、B、B’与P1口低四位一一相对应接好,就可以使电机正常旋转了。
第7章总结
两周的单片机课程设计已经结束了,虽然时间不是很长,但我从中得到的却还是很多,通过这次的单片机课程设计,使我更深入的了解的单片机的重要性,也从中学到了很多,通过做步进电机这个课题,使我全面地的,系统的又重新学习了一遍单片机,同时又了解到不同电机不同的工作状态,对其中的原理更加地的熟悉,对我以后的学习有了极大的帮助,虽然在做课程设计的过程中,我还有很多的东西是不知道的,但通过检阅资料,在老师的细心指导下,再加上自己的不断努力,最终是完成了自己的课程设计,在调试的过程中,依然会有不少的问题,在细心总结查阅下还是被我一个一个的解决了,最终得到正确的结果。
因为我们所学的都是单片机方面的理论知识,应用到实践中去还比较少,而且学到了很多在书本上所没有学到过的知识。
在第一周由于考试原因没有花费太多精力,不过在周末的时候,抓紧时间去查阅和收集资料。
去了图书馆借一些参考书,上网找一些相关资,通过不断努力,终于把步进电机的原理,工作状态,控制结构有所掌握,把思路和方案定了下来,然后通过分析与软硬件的设计,在电脑上仿真完成。
通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。
在设计的过程中遇到问题,可以说得是困难重重,这毕竟是一次全面的设计,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。
在此也要感谢李晓秀老师的指导,在老师耐心指导下很多问题都得到了解决!
第8章参考文献
[1]王迎旭.单片机原理及及应用.北京:
机械工业出版社
[2]张迎新.单片微型计算机原理、应用及接口技术.北京:
国防工业出版社
[3]周向红.51系列单片机应用与实践教程.北京:
北京航天航空大学出版社
[4]郭天祥.新概念51单片机C语言教程.北京:
电子工业出版社
附件
系统原理图
图附-1
元器件清单
AT89C52单片机1片
11.0592MHZ的晶振1片
四位LED显示器1个
电阻4个
ULN28031个
步进电机1个
按钮BUTTON5个
源程序清单
#include
#defineucharunsignedchar
#defineuintunsignedint
unsignedcharcodetable[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90
0x3f,0x83,0xc6,0xa1,0x86,0x8e}。
unsignedcharcodetable1[]={0x03,0x06,0x0c,0x09,0x09,0x0c,0x06,0x03}。
uchartable_begin。
ucharmaichong。
ucharzhuansu。
ucharflag。
sbitkey_fuwei=P3^0。
sbitkey_z=P3^1。
sbitkey_f=P3^2。
sbitkey_jia=P3^3。
sbitkey_jian=P3^4。
voiddelay(ucharx)
{uchari,j。
for(i=0。
i i++) for(j=110。 j>0。 j--)。 } voidfuwei(void) { flag=2。 zhuansu=0。 } voiddisplay() { ucharA1,A2,A3,A4。 if(flag==0) A1=0。 elseA1=1。 if(flag==2) { A1=10。 } A2=0x3f。 A3=zhuansu/10。 A4=zhuansu%10。 P0=table[A1]。 delay(5)。 P2=0x01。 delay(5)。 P2=0x00。 delay(5)。 P0=A2。 delay(5)。 P2=0x02。 delay(5)。 P2=0x00。 delay(5)。 P0=table[A3]。 delay(5)。 P2=0x04。 delay(5)。 P2=0x00。 delay(5)。 P0=table[A4]。 delay(5)。 P2=0x08。 delay(5)。 P2=0x00。 delay(5)。 } voidkey() { if(key_fuwei==0) { delay(5)。 if(key_fuwei==0) { fuwei()。 display()。 } } if(key_z==0) { delay(5)。 if(key_z==0) { flag=0。 zhuansu=10。 while(key_z==0)。 } } if(key_f==0) { delay(5)。 if(key_f==0) { flag=1。 zhuansu=10。 while(key_f==0)。 } } if(key_jia==0) { delay(5)。 if(key_jia==0) { zhuansu++。 if(zhuansu==21) zhuansu=20。 while(key_jia==0)。 } } if(key_jian==0) { delay(5)。 if(key_jian==0) { zhuansu--。 if(zhuansu==1) zhuansu=2。 while(key_jian==0)。 } }} voiddispose() { switch(zhuansu) { case0: break。 case1: maichong=300。 break。 case2: maichong=150。 break。 case3: maichong=100。 break。 case4: maichong=75。 break。 case5: maichong=60。 break。 case6: maichong=50。 break。 case7: maichong=43。 break。 case8: maichong=37。 break。 case9: maichong=33。 break。 case10: maichong=30。 break。 case11: maichong=27。 break。 case12: maichong=25。 break。 case13: maichong=23。 break。 case14: maichong=21。 break。 case15: maichong=20。 break。 case16: maichong=19。 break。 case17: maichong=18。 break。 case18: maichong=17。 break。 case19: maichong=16。 break。 case20: maichong=15。 break。 } if(flag==0) { table_begin=0。 } else if(flag==1) {table_begin=8。 } } voidzhuandong(void) { uchari,j。 if(zhuansu>0&zhuansu<=20) {for(j=0+table_begin。 j<8+table_begin。 j++) { P1=table1[j]。 for(i=0。 i i++) { delay (1)。 } } } } voidmain() { fuwei()。 display()。 while (1) {key()。 display()。 dispose()。 zhuandong()。 } } 电气与信息工程系课程设计评分表 项目 评价 优 良 中 及格 差 设计方案的合理性与创造性(10%) 开发板焊接及其调试完成情况*(10%) 硬件设计或软件编程完成情况(20%) 硬件测试或软件调试结果*(10%) 设计说明书质量(20%) 设计图纸质量(10%) 答辩汇报的条理性和独特见解(10%) 答辩中对所提问题的回答情况(10%) 完成任务情况(10%) 独立工作能力(10%) 出勤情况(10%) 综合评分 指导教师签名: ________________ 日期: ________________ 注: 表中标*号工程是硬件制作或软件编程类课题必填内容; 此表装订在课程设计说明书的最后一页。 课程设计说明书装订顺序: 封面、任务书、目录、正文、评分表、附件(非16K大小的图纸及程序清单)。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 步进 电机 控制系统 方案设计 03112