基于单片机的步进电机的控制器设计.docx

上传人:b****6 文档编号:16834348 上传时间:2023-07-17 格式:DOCX 页数:28 大小:1.25MB
下载 相关 举报
基于单片机的步进电机的控制器设计.docx_第1页
第1页 / 共28页
基于单片机的步进电机的控制器设计.docx_第2页
第2页 / 共28页
基于单片机的步进电机的控制器设计.docx_第3页
第3页 / 共28页
基于单片机的步进电机的控制器设计.docx_第4页
第4页 / 共28页
基于单片机的步进电机的控制器设计.docx_第5页
第5页 / 共28页
基于单片机的步进电机的控制器设计.docx_第6页
第6页 / 共28页
基于单片机的步进电机的控制器设计.docx_第7页
第7页 / 共28页
基于单片机的步进电机的控制器设计.docx_第8页
第8页 / 共28页
基于单片机的步进电机的控制器设计.docx_第9页
第9页 / 共28页
基于单片机的步进电机的控制器设计.docx_第10页
第10页 / 共28页
基于单片机的步进电机的控制器设计.docx_第11页
第11页 / 共28页
基于单片机的步进电机的控制器设计.docx_第12页
第12页 / 共28页
基于单片机的步进电机的控制器设计.docx_第13页
第13页 / 共28页
基于单片机的步进电机的控制器设计.docx_第14页
第14页 / 共28页
基于单片机的步进电机的控制器设计.docx_第15页
第15页 / 共28页
基于单片机的步进电机的控制器设计.docx_第16页
第16页 / 共28页
基于单片机的步进电机的控制器设计.docx_第17页
第17页 / 共28页
基于单片机的步进电机的控制器设计.docx_第18页
第18页 / 共28页
基于单片机的步进电机的控制器设计.docx_第19页
第19页 / 共28页
基于单片机的步进电机的控制器设计.docx_第20页
第20页 / 共28页
亲,该文档总共28页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

基于单片机的步进电机的控制器设计.docx

《基于单片机的步进电机的控制器设计.docx》由会员分享,可在线阅读,更多相关《基于单片机的步进电机的控制器设计.docx(28页珍藏版)》请在冰点文库上搜索。

基于单片机的步进电机的控制器设计.docx

基于单片机的步进电机的控制器设计

题目:

基于单片机的步进电机的控制器设计

 

摘要

步进电机控制方式的实现有多种,可以采用电子电路控制,PLC控制和单片机控制。

但是电子电路控制步进电机灵活度不高,PLC控制不能在高频率下进行,控制精度小。

而随着科技的飞速发展,单片机的应用正在不断深入,同时带动传统控制检测的更新,用单片机控制步进电机显得更加灵活和方便。

本设计是用AT89C52单片机作为核心部件进行逻辑控制及信号产生,用单片机技术和C语言编程设计来进行步进电机的控制。

通过人手动按开关实现步进电机的启动与停止。

此外此系统还添加了步进电机的正转反转,加速及减速,屏幕显示功能。

同时本文也通过了proteus软件的仿真,在仿真结果中能看出近似真实的效果。

整个系统采用模块化设计,结构简单可靠,通过按键控制操作方便节省成本。

关键词:

步进电机单片机控制AT89C52proteus仿真

 

TitleThedesignofthecontrolsystemofStep—motor

Abstract

Thestepmotorcontrolhasalotofkinds.suchasElectroniccircuitcontrol,PLCcontrolandmicroprocessorcontrolled.Buttheflexibilityoftheelectroniccircuittocontrolsteppermotor,PLCcontrolathighfrequencies,asmallcontrolaccuracy.Withtherapiddevelopmentofscienceandtechnology,theapplicationofSCMisconstantlyin-depth,atthesametimeledtheupdateofthetraditionalcontroltestswithSCMsteppermotorcontrolismoreflexibleandconvenient.

ThispaperdescribesacorecomponentoftheAT89C52,asthesignalgeneratedbylogiccontrolandmicrocontrollertechnologyandassemblylanguageprogrammingdesignedsteppermotorcontrolsystem,Startandstopofthesteppingmotortohandletheswitchmanuallybypeople.Inaddition,thissystemalsoaddsasteppermotorforwardreverse,accelerationanddeceleration,thescreendisplay.Meanwhile,throughsoftwaresimulationinproteus,toocanbeseenthattheapproximationofthetrueeffectofthesimulationresults.

KeywordssteppermotormicrocontrollerAT89C52proteussimulation

 

目次

 

1绪论

1.1课题研究的目的和意义

电机是工业发展不可缺少的一大要素,在工业生产中有着重要的作用。

随着科技的发展,电机在控制领域的适用范围越来越广。

步进电机是一种开环控制的电机,它不需要反馈电路。

它是纯粹的数字控制电动机,它将电脉冲信号变成角位移,当给它一个电脉冲时,它就转动一个步进脚。

步进电机的运转具有很好的精准性,它按照固定的角度旋转,我们可以通过控制电脉冲频率来控制电机的转速。

近30年来,电子,计算机,永磁材料的快速发展,推动了步进电机的发展,因此步进电机的应用有着广阔的前景。

步进电机有以下特点:

(1)步进电机的角位移与输入脉冲成正比,没有累计误差。

(2)步进电机与驱动电路组成的系统,简单而又廉价。

(3)易于控制,能快速启动和停止,方便控制方向和转速。

(4)步进电机不能直接使用交流直流电源。

由于步进电机能够精准定位和方便调速,它被广泛应用在各种自动化控制系统中。

随着微电子和计算机技术的发展,使步进电机的控制发生了很大的变革。

步进电机的明显优势被广泛应用在电子计算机的许多外围设备中,例如复印机,传真机,软盘驱动器等,同时步进电机也在军用仪器,通信和雷达设备,摄影系统,光电组合装置,以及许多航天工业的系统中得到应用。

因此对步进电机的研究深为重要。

1.2国内外研究现状

步进电机虽然最早有国外人发明和使用的,但是在中国很早的时候已经得到使用了。

早在文革时期,中国的江浙,四川,南京等地都有生产和应用。

当时步进电机驱动电路的所有半导体器件,例如逻辑运算电路,电容耦合计数器,触发器等国内都可以完全自主生产。

步进电机在国外的应用主要是低功率场合,例如工业设备,打印机,传真机,软盘驱动器,监视摄像头,游戏机和医疗设备。

由于现代科技的迅速发展,在国外步进电机在驱动方面的应用逐渐被代替。

目前日本是步进电机最大的生产国,如日本伺服公司、东方公司、SANYO DENKI和NPM公司等。

世界上步进电机生产最好的公司是日本东方公司,性能,质量。

生产方法都是一流的。

每年日本的步进电机销量达3亿台。

国内七十年代后期,步进电机广泛应用于卫星和雷达场合。

那时候就生产出来圆形力矩电机。

但是在一些高质量控制应用中,我们还不能使用步进电机。

到了八十年代国内已经掌握了步进电机的细分控制。

这种控制要简单的多。

经过多年的发展,步进电机功能更加强大,种类也很繁多。

步进电机以它显著的优点在工业生产和自动化控制中占据着不可动摇的地位。

伴随着科技的发展,步进电机将在更多的领域内应用。

1.3课题主要研究内容和要求

本设计采用单片机AT89C52来作为整个步进电机控制系统的运动控制核心部件。

所选的步进电机是四相五线的,由于步进电机需要高功率驱动,单片机不能与步进电机直接相连,因此我们需要采用了电机驱动芯片ULN2003连接步进电机和单片机。

为了显示步进电机转速,我用一个两位数码管来显示速率。

再加上一些独立按键来实现步进电机调速,改变转向的功能。

这样就构成了一个基本的步进电机控制系统。

系统的具体功能和要求如下:

1.单片机最小系统的设计;

2.独立按键实现步进电机的启停、加速、减速、正转、反转的控制;

3.能实现步进电机的转速调节,最低转速为1转/min,最高转速为19转/min;

4.步进电机的转速由数码管显示。

2步进电机常见的控制方案论证

2.1基于电子电路的控制

由于步进电机受电脉冲控制,因此要求电脉冲信号的产生,放大全部依靠电子元件来实现。

而步进电机需要较大的功率,而电子电路产生的功率较弱,所以必须设计功率放大电路。

此方法步进电机的控制系统包含以下三个部分:

信号产生电路,信号分配电路,功率放大电路。

如下图所示:

图1.1 基于电子电路控制系统

此种方案成本低,设计简单,但是设计逻辑电路需要很多的电子元器件,电路很是复杂。

如果我们想改变或者增加功能时,需要从新改变系统中的电路。

这样显得灵活度不高。

2.2基于PLC的控制

可编程逻辑控制器(plc)是新一代数字逻辑器件,它具有高集成度,高速度,高可靠性等明显的优点。

它不但简化了电路设计,降低成本,也提高了系统的可靠性和保密性。

用PLC来驱动步进电机,该系统包括以下三个部分PLC、脉冲分配器和步进电机驱动电路组成。

采用编程来实现脉冲信号,脉冲分配器将PLC输出的控制脉冲给步进电机相应的接线口上,步进电机驱动电路主要是为了放大脉冲信号。

图1.2 基于plc控制系统

由于PLC的扫描周期小,频率最高只能达到几百Hz,所以步进电机不能在高频条件下运行。

并且在速度较高时,由于受到扫描周期的影响,相应的控制精度就降低了。

2.3基于单片机的控制

单片机控制步进电机实现了软件和硬件相结合的控制方式。

该系统采用了单片机直接控制步进电机的各相驱动线路。

由于单片机的强大功能,我们还可以设计大量的其他功能,例如独立按键控制转速,转向。

加入数码管显示速度的等级。

单片机对电机的控制有以下好处:

(1)使电路更加简单,采用电子电路为了实现控制逻辑需要很多电子元件,而单片机绝大多数的控制电路都可以通过软件实现。

(2)可以实现较复杂的控制,单片机有更强的逻辑功能,运算速度快,精度高,有大量的存储单元。

(3)灵活性和适应性,用单片机只需要改变程序就可以达到控制的要求。

(4)无零点漂移,控制精度高。

(5)可提供人际交换,多级联网工作。

根据设计要求,采用的方案如下:

硬件部分实现电机转动和速度显示功能,包括控制开关模块;电机转动模块和速度显示模块。

软件部分实现对步进电机的控制功能,主要设计思想通过控制台控制程序的开关来控制电机的转动,由电机反馈回来的数据经单片机控制显示器显示数据。

 

3系统硬件设计

本设计的硬件电路包括独立按键控制模块,步进电机驱动模块,数码管显示模块和单片机最小系统四大部分。

单片机最小系统由时钟电路和复位电路组成,保证单片机正常运行。

独立按键控制模块由开关和按键组成,当按下按键时,该系统就按照该按键控制的功能运作。

显示模块主要是为了显示电机的工作状态和转速。

驱动电路主要是对单片机输出的脉冲进行功率放大,从而驱动电机转动。

图3.1系统总体结构框图

3.1控制电路

根据系统的控制要求,控制输入部分设置了顺时针控制,逆时针控制,加速控制,减速控制和停止按键。

控制电路如图2所示。

当按下按键,内部程序检测P0.1-P0.4的状态变化来调用相应的启动和换向程序,从而实现系统的电机的启动和正反转控制。

根据步进电机的工作原理可以知道,步进电机转速的控制主要是通过控制通入电机的脉冲频率,从而控制电机的转速。

对于单片机而言,主要的方法有:

软件延时和定时中断在此电路中电机的转速控制主要是通过定时器的中断来实现的,通过控制按键的开关和闭合改变速度值存储区中的数据(该数据为定时器的中断次数),这样就改变了步进电机的输出脉冲频率,从而改变了电机的转速。

图3.2控制电路原理图

3.2最小系统

单片机的最小系统一般由时钟电路和复位电路构成。

通过时钟电路提供单片机各种微操作基准,通过复位电路使单片机片内存储器初始化。

由下图可以看出,时钟电路是在引脚XTAL1和XTAL2外部接一个十二兆的晶振,同时在晶振的两脚分别接了22pf的电容。

晶振的作用是产生震荡时钟脉冲。

电容起稳定震荡频率,快速起震的作用。

复位电路使由独立按键,200偶电阻和一个10Uf的电容构成。

复位电路使单片机从一种确定的状态开始运行。

图3.3复位及时钟振荡电路

3.3驱动电路

本次设计用ULN2003来驱动步进电机,电路图如图3.7所示。

通过单片机的P1.0~P1.3输出脉冲到ULN2003的1B~4B口,经信号放大后从1C~4C出口分别输出到电机的ABCD四相。

ULN2003是一种大功率驱动芯片,多用于智能仪器,PLC,步进电机控制。

由于控制步进电机需要高功率,而单片机不能直接提供给步进电机。

因此我们用ULN2003来放大信号。

ULN2003输入只需要5V的电平,但是输出可以高达50V,因此它具有工作电压高,电路增益高,可以提供大功率负载的特点,适应于各种功率驱动电路。

图3.4ULN2003的管脚图

本次设计所用步进电机28BYJ48型四相八拍电机,电压为DC5V—DC12V。

当对步进电机施加一系列连续不断的控制脉冲时,它可以连续不断地转动。

每一个脉冲信号对应步进电机的某一相或两相绕组的通电状态改变一次,也就对应转子转过一定的角度(一个步距角)。

当通电状态的改变完成一个循环时,转子转过一个齿距。

四相步进电机可以在不同的通电方式下运行,常见的通电方式有单(单相绕组通电)四拍(A-B-C-D-A),双(双相绕组通电)四拍(AB-BC-CD-DA-AB-),八拍(A-AB-B-BC-C-CD-D-DA-A),本次设计采用单相绕组。

图3.528BYJ48型步进电机的参数

 橙 

 黄

 粉

十六制(P1口) 

 1

 0

 0

 0

 0x08

 1

 1

 0

 0

 0x0c

 0

 1

 0

 0

 0x04

 0

 1

 1

 0

 0x06

 0

 0

 1

 0

 0x02

 0

 0

 1

 1

 0x03

 0

 0

 0

 1

 0x01

 1

 0

 0

 1

 0x09

 图3.6步进电机工作时序波形图及逆时针旋转的代码

由此可得电机逆时针旋转的相{0x08,0x0c,0x04,0x06,0x02,0x03,0x01,0x09}

 

图3.7步进电机驱动电路

3.4显示电路

为了能看出步进电机的转速,我们用显示电路的数码管显示电机的速度,主要是利用了单片机的P0口接一个两位的共阳极数码管。

数码管a、b、c、d、e、f、g、dp分别接P0.0~P0.7口.数码管的公共角1,2分别接p2.0,p2.1。

本次所用的数码管参数和管脚图如下:

图3.8两位共阳数码管得参数

图3.9步进电机显示电路

 

3.5总体电路图

把各个部分的电路图组合成总电路图,如下图所示:

图3.10总体电路图

 

4系统软件设计

4.1软件设计分析

本次采用的步进电机是五相四线的,查该电机的工作参数我们可以看出它的工作电压时+5V,因此我们可以直接把他正极与单片机正极相连,供5v的电压。

由总体的电路图我们可以看出步进电机的四个接口与ULN2003相接。

ULN2003与单片机P1口相连。

单片机P0口接一个两位共阳极数码管。

通过上述的分析我们发现要实现系统的功能,我们要设计一下几个模块程序:

主程序,延时程序,按键子程序,数码管显示程序。

为了实现操作灵活性,随时可以加速减速,我们采用定时器中断。

当通电后,单片机首先检测加速减速按键是否按下,同时数码管显示速度等级。

当按一下正转或者反转按键时候,电机开始转动。

按下停止键电机立马停止转动。

通过软件编程实现系统的功能,系统功能运行的好坏,与程序设计好坏有关。

4.2主程序设计

当我们给系统供入5V电压时,由复位电路给系统进行初始化。

然后便开始执行按键查询等待相应的操作,当有按键按下的时,程序便调用并执行相应的子程序,下图为主流程图:

 

图4.1 主程序

按键子程序:

1、延时子程序:

在本延时子程序当中每调用一次延时子程序延时时间是1毫秒。

2、按键响应子函数:

在本设计当中按键的一端接地,另一端接单片机的对应端口,所以当按键按下,既是将单片机对应端口电平拉低。

所以在编程的时候判断按键按下是低电平有效。

图4.2画出的是电机增速和减速的子程序框图。

图4.2 速度子程序

 

5仿真与调试

5.1仿真调试的操作步骤

本次采用的仿真软件是proteus,采用的编程工具是keil。

具体操作如下:

1)在Protues中画出系统电路图2)编写程序并在keil中编译并生成hex文件。

3)把在keil中编译生成的HEX文件载入AT89C52芯片中;

4)运行仿真。

5.2仿真结果

仿真结果如下图所示:

当点下proteus的play键时候,此时数码管显示速度为零,电机不转。

图5.1仿真原理图

 

当按加速按键时候,速度会从01一直加到19。

共有十个速度等级

图5.2速度为一显示

图5.3速度为9的显示

 

按下逆时针按键,电机会以所显示的速度逆时针转动。

顺时针亦同。

图5.4电机转动仿真图

 

总结

经过为半学期的学习和努力,本次设计终于完成了。

为此我学到了很多东西。

1、我进一步了解了单片机的工作原理,掌握了步进电机控制系统的组成原理。

通过本次的设计和调试,我补充和巩固了自己已学的电子理论知识,同时也提高了动手和排除故障能力。

2、我了解了步进电机的发展,工作原理和控制方式。

步进电机应用于生活和工业中的各个方向,使我对步进电机的兴趣越来越大。

3、本次课程设计我查阅大量书籍、专业网站、论坛等,通过反复对比,采用了功能相对强大,设计相对简单的设计方法。

通过与其他人设计的对比,我学到了很多东西,找到了自己设计方案的优缺点。

应该说本次设计还是基本达到了设计的要求,通过独立按键我们可以很方便的控制电机的正反转加速和减速。

通过一个两位数码管我们可以清楚的看到步进电机转动的速度。

该系统的优点就是设计简单,操作方便。

但是缺点是显示模块也无法看出电机是正传还是反转。

如果把数码管换成LCD,同时显示速度和转向,这样就更好了。

在这次课程设计中,我发现了自己知识面还是比较欠缺,深刻的体会到学习永无止境,在以后的学习和工作中要时刻鞭策自己,不要懈怠,不能停止学习。

努力提高自己的知识水平和专业技能。

 

致谢

本次设计是在老师的精心指导下完成的。

从论文的选题到各个研究阶段,自始自终得到了她的悉心指导,为本设计的完成倾注了大量的心血。

老师学识渊博,为人处世认真负责,时刻监督我设计进度,同时在设计需要的时候都能马上帮我解决。

老师严谨求实的科研态度、执着追求的敬业精神以及平易近人的工作作风,使我终生受益。

她不仅一直对我的课题研究和论文进行了具体的指导;而且在思想上,也给我提供了很大的帮助和支持。

在此,向老师表示衷心的感谢和深深的敬意!

同时也要感谢信息科学与工程学院的全体老师,感谢他们的帮助与教导,使我在河南工业大学度过了愉快而又充实的大学生活,不仅学习专业理论知识、提高了科研能力,还加强了自身修养、得到了为人处事等全方面的锻炼。

在本次设计中我也得到同学和朋友的大力支持和帮助,同时感谢他们四年来的支持和关怀。

最后,谨向在百忙之中抽出时间来参加我的论文答辩的各位老师表示衷心的感谢。

 

主要参考文献

[1]李群芳肖看.单片机原理借口及应用[M].北京:

清华大学出版社,1997.

[2]坂本正文.步进电机应用技术[M].日本:

科学出版社,2010.

[3]何希才姜玉祥,等.电动机控制电路应用实例[M].北京:

中国电力出版社,1998.

[4]于海生,等.微型计算机控制技术[M].北京:

清华大学出版社,1999.

[5]王福瑞,等.单片机微机测控系统设计大全[M].北京:

北京航空航天大学出版社,1998.

[6]xiaozhenshan,ApplicationofSCMonthestepmotorcontrolsystem[J].MechanicalandElectricalEngineeringTechnology,2004,33

(1):

69-70

[7]YINGFang-qin.researchandimplementationofsteppingmotorcontrollerbasedonFPGA[J].ModernElectronicsTechnique,2011(02):

198-201.

[8]季维发,过润秋,严武升等.机电一体化技术[M].北京:

电子工业出版社,1995.

[9]郭敬枢,庄继东,孔峰.微机控制技术[M].重庆:

重庆大学出版社,1994.

[10]刘国荣.单片微型计算机技术[M].北京:

机械工业出版社,1996.

[11]王福瑞.单片微机测控系统设计大全[M].北京:

北京航空航天大学出版社,1998.

[12]何立民.单片机应用技术选编[M].北京:

北京航空航天大学出版社,1993.

[13]王晓明等:

电动机的单片机控制1北京:

北京航空航天大学出版社,1992.

[14]王润孝,秦现生编著1机床数控原理与系统1西北工业大学出版社,1997.

[15]李伯成,侯伯李等编1IBM-PC微机应用系统设计1西安电子科技大

 

附录

C语言程序如下:

#include

#include

#defineucharunsignedchar

#defineuintunsignedint

ucharcodeccw[]={0x08,0x04,0x02,0x01};//逆时针旋转相序

ucharcodecw[]={0x01,0x02,0x04,0x08};//顺时针旋转相序

unsignedcharcodeseg[]={0,1,2,3,4,5,6,7};//分别对应相应的数码管点亮,即位码

ucharcodetable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//共阴极数码管显示表

ucharcodeccw8[]={0x08,0x0c,0x04,0x06,0x02,0x03,0x01,0x09};//8拍旋转相序表

uinttime,show1,show2,sym,temp,t,a,flag,i,j,rpm,n;

sbitinc=P3^2;//加速

sbitdec=P3^3;//减速

sbitkeyccw=P3^0;//逆时针转

sbitkeycw=P3^1;//顺时针转

sbitpause=P3^6;//暂停

sbitfir=P2^0;//第一数码管

sbitsec=P2^1;//第二数码管

voidinit();//初始化定时器0,1,串口

voiddirec();//按键控制转向

voidspeedctl();//按键控制转速

voiddisplay();//速度显示函数

voiddelaynms(uintaa);//1ms延时函数

voidmain()

{

init();

while

(1)

{

speedctl();

direc();

display();

}

}

voidinit()

{

TMOD=0X21;//定时器1为方式2,定时器0为方式1

TH1=0xFD;

TL1=0xFD;

TH0=(65536-1000)/256;//1毫秒定时中断

TL0=(65536-1000)%256;

TR1=1;//启动定时器1

EA=1;//打开总中断

ET0=1;//允许定时器0中断

TR0=1;//启动定时器0

}

voidspeedctl()

{

if(inc==0)//加速

{

n++;

if(n>=11)

n=10;

while(!

inc)

display();

time=0;

}

elseif(dec==0)//减速

{

n--;

if(n==0)

n=1;

while(!

dec)

display();

time=0;

}

switch(n)

{

case1:

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2