基于单片机的步进电机控制器设计姓名xx班级:自动化xxxx学号:xxxx摘要:本设计是用80C51单片机作为核心部件进行逻辑控制及信号产生,用单片机技术和C语言编程设计来进行步进电机的控制。
通过人手动按开关实现步进电机的启动与停止、步进电机的正转反转,加速及减速等功能,此外还有LCD数码管进行实时显示功能。
同时本文也通过了proteus软件的仿真,在仿真结果中能看出近似真实的效果。
整个系统采用模块化设计,结构简单可靠,通过按键控制操作方便节省成。
关键词:步进电机单片机 peoteus仿真1绪论1.1课题研究的目的和意义电机是工业发展不可缺少的一大要素,在工业生产中有着重要的作用。
随着科技的发展,电机在控制领域的适用范围越来越广。
步进电机是一种开环控制的电机,它不需要反馈电路。
它是纯粹的数字控制电动机,它将电脉冲信号变成角位移,当给它一个电脉冲时,它就转动一个步进脚。
步进电机的运转具有很好的精准性,它按照固定的角度旋转,我们可以通过控制电脉冲频率来控制电机的转速。
近30年来,电子计算机永磁材料的快速发展,推动了步进电机的发展,因此步进电机的应用有着广阔的前景。
步进电机有以下特点:(1)步进电机的角位移与输入脉冲成正比,没有累计误差。
(2)步进电机与驱动电路组成的系统,简单而又廉价。
(3)易于控制,能快速启动和停止,方便控制方向和转速。
(4)步进电机不能直接使用交流直流电源。
由于步进电机能够精准定位和方便调速,它被广泛应用在各种自动化控制系统中。
随着微电子和计算机技术的发展,使步进电机的控制发生了很大的变革。
步进电机的明显优势被广泛应用在电子计算机的许多外围设备中,如传真机、软盘驱动器等,同时步进电机也在军用仪器、通信和雷达设备、摄影系统、光电组合装置中,甚至在航天工业的系统也有其发挥的作用。
因此对步进电机的研究深为重要。
1.2国内外研究现状步进电机在我国很早的时候就已经得到使用,早在文革时期,中国的江浙、四川、南京等地都有一定规模的生产和应用。
当时步进电机驱动电路的所有半导体器件,例如逻辑运算电路、电容耦合计数器、触发器等国内都可以完全自主生产。
步进电机在国外的应用主要是低功率场合,例如工业设备、打印机、传真机、软盘驱动器、医疗设备。
由于现代科技的迅速发展,在国外步进电机在驱动方面的应用逐渐被代替。
目前日本是步进电机最大的生产国,如日本伺服公司、东方公司、SANYO DENKI和NPM公司等。
世界上步进电机生产最好的公司是日本东方公司,性能、质量、生产方法都是一流的。
每年日本的步进电机销量达3亿台。
国内七十年代后期,步进电机广泛应用于卫星和雷达场合。
当时已经生产出来圆形力矩电机,但是在一些高质量控制应用中,我们还不能使用步进电机。
到了八十年代国内已经掌握了步进电机的细分控制。
经过多年的发展,步进电机功能更加强大,种类也很繁多。
步进电机以它显著的优点在工业生产和自动化控制中占据着不可动摇的地位。
伴随着科技的发展,步进电机将在更多的领域内应用。
1.3 课题主要研究内容和要求本设计采用单片机80C51作为整个步进电机控制系统的运动控制核心部件。
所选的步进电机是四相五线的,由于步进电机需要高功率驱动,单片机不能与步进电机直接相连,因此我们需要采用了电机驱动芯片ULN2003连接步进电机和单片机。
此外我用一个四位数码管显示电机转速,再加上一些独立按键来实现步进电机调速、改变转向的功能,并在数码管上显示出来。
这样就构成了一个基本的步进电机控制系统。
系统的具体功能和要求如下:1.电机转速可以平稳控制;2.通过键盘和显示器可以设置电机的转速;3.能显示电机的运动趋势;2 步进电机的控制方案—基于单片机的控制单片机控制步进电机实现了软件和硬件相结合的控制方式。
该系统采用了单片机直接控制步进电机的各相驱动线路。
由于单片机的可扩展性强,我们还可以开发一些其他功能,例如独立按键控制转速、转向,再加入数码管显示电机转动速度。
单片机对电机的控制有以下好处:(1)使电路更加简单,采用电子电路为了实现控制逻辑需要很多电子元件,而单片机绝大多数的控制电路都可以通过软件实现。
(2)可以实现较复杂的控制,单片机有更强的逻辑功能,运算速度快,精度高,有大量的存储单元。
(3)灵活性和适应性,用单片机只需要改变程序就可以达到控制的要求。
(4)无零点漂移,控制精度高。
(5)可提供人际交换,多级联网工作。
根据设计要求,采用的方案如下:硬件部分实现电机转动和速度显示功能,包括控制开关模块;电机转动模块和速度显示模块。
软件部分实现对步进电机的控制功能,主要设计思想通过控制台控制程序的开关来控制电机的转动,由电机反馈回来的数据经单片机控制显示器显示数据。
3系统硬件设计本设计的硬件电路包括独立按键控制模块、步进电机驱动模块、数码管显示模块和单片机最小系统四部分。
单片机最小系统由时钟电路和复位电路组成,保证单片机正常运行;独立按键控制模块由开关和按键组成,当按下按键时,该系统就按照该按键控制的功能运作;显示模块主要是为了显示电机的工作状态和转速;驱动电路主要是对单片机输出的脉冲进行功率放大,从而驱动电机转动。
3.1控制电路根据系统的要求,按键输入部分设置了顺时针控制、逆时针控制、加速控制、减速控制和停止、电机三种启动方式选择按键。
控制电路如图所示,当按下按键,内部程序检测P3.0~P3.7的状态变化调用相应的启动和转向程序,从而实现系统的电机的启动和正反转控制。
根据步进电机的工作原来可以知道,步进电机的转速主要通过控制通入电机的脉冲频率,从而控制电机的转速。
对单片机而言,主要的方法有:软件延时和定时中断,在此电路中电机的转速控制主要是通过软件延时控制,本设计是根据操作者设定的转速大小依据一定的公式计算得到变量maichong的大小,通过延时程序改变电机转动一个步进角的时间,从而改变电机转动的快慢。
3.2最小系统单片机的最小系统一般由时钟电路和复位电路构成。
通过时钟电路提供单片机各种操作基准,通过复位电路使单片机片内存储器初始化。
时钟电路是在引脚XT AL1和XT AL2外接一个12M的晶振,同时在晶振的两脚分别接22pf的电容。
晶振的作用是产生震荡时钟脉冲。
电容起稳定震荡频率,快速起震的作用。
复位电路使由独立按键,200Ω电阻和一个10Uf的电容构成。
复位电路使单片机从一种确定的状态开始运行。
3.3驱动电路本次设计用ULN2003来驱动步进电机,电路图如图。
通过单片机的P1.0~P1.3输出脉冲到ULN2003的1B~4B口,经信号放大后从1C~4C出口分别输出到电机的ABCD四相。
ULN2003是一种大功率驱动芯片,多用于智能仪器、PLC、步进电机控制。
由于控制步进电机需要高功率,而单片机不能直接提供给步进电机。
因此我们用ULN2003来放大信号。
ULN2003输入只需要5V的电平,但是输出可以高达50V,因此它具有工作电压高,电路增益高,可以提供大功率负载的特点,适应于各种功率驱动电路。
当对步进电机施加一系列连续不断的控制脉冲时,它可以连续不断地转动。
每一个脉冲信号对应步进电机的某一相或两相绕组的通电状态改变一次,也就对应转子转过一定的角度。
当通电状态的改变完成一个循环时,转子转过一个齿距。
四相步进电机可以在不同的通电方式下运行,常见的通电方式有单(单相绕组通电)四拍(A-B-C-D-A),双(双相绕组通电)四拍(AB-BC-CD-DA-AB-),八拍(A-AB-B-BC-C-CD-D-DA-A),通过P3.3~P3.5可以选择电机控制方式。
3.4 显示电路为了能看出步进电机的转速,我们用数码管显示电机的转速,主要是利用了单片机的P0口接一个四位的共阳极数码管。
数码管a、b、c、d、e、f、g、DP分别接P0.0~P0.7口.数码管的公共脚1~4分别接P2.0~P2.3。
3.5总体电路图4系统软件设计4.1软件设计分析本次采用的步进电机是五相四线的,根据所查该电机的工作参数我们可以看出它的工作电压时+5V,因此我们可以直接把他正极与单片机正极相连,供5v的电压。
由总体的电路图我们可以看出步进电机的四个接口与ULN2003相接。
ULN2003与单片机P1口相连。
单片机P0口接一个四位共阳极数码管。
通过上述的分析我们发现要实现系统的功能,我们要设计一下几个模块程序:主程序,延时程序,按键子程序,数码管显示程序。
当通电后,单片机首先检测控制方式选择按键,然后检测正反转键是否按下,并在数码管上有所显示,并以设定的速度运行着电动机,然后检测加减速按键是否也按下,数码管实时跟随显示速度。
按下停止键电机立马停止转动。
4.2主程序设计当我们给系统供入5V电压时,由复位电路给系统进行初始化。
然后便开始执行按键查询等待相应的操作,当有按键按下的时,程序便调用并执行相应的子程序,下图为主流程图:按键子程序:1、延时子程序:在本延时子程序当中每调用一次延时子程序延时时间是1毫秒。
2、按键响应子函数:在本设计当中按键的一端接地,另一端接单片机的对应端口,所以当按键按下,既是将单片机对应端口电平拉低。
所以在编程的时候判断按键按下是低电平有效。
如下图为电机增速和减速的子程序框图。
5仿真与调试5.1 仿真调试的操作步骤本次采用的仿真软件是proteus,采用的编程工具是keil。
具体操作如下:1)在Protues中画出系统电路图2)编写程序并在keil中编译并生成hex文件。
3)把在keil中编译生成的HEX文件载入AT89C52芯片中;4)运行仿真。
5.2 仿真结果仿真结果如下图所示:当点下proteus的play键时候,此时数码管显示速度为零,电机不转。
当按下启动按键时,接着进入控制方式选择阶段,选择完成后,接着判断正反转控制按键,如图显示为反转,初始速度设置为10,第一位的1表示电机反转,若电机正转则显示为0.接下来如果再控制加减按键,可以实现对电机速度的调节,并在数码管有个直观的转速显示。
本程序设计对速度有所限制,最大为20,最小为0,当减速到0时电机停止转动并复位,结果如图所示。
总结经过学习和努力,本次设计终于完成了,从当中我学到了很多东西。
1、我进一步了解了单片机的工作原理,掌握了步进电机控制系统的组成原理。
通过本次的设计和调试,我补充和巩固了自己已学的电子理论知识,同时也提高了动手和排除故障能力。
2、我了解了步进电机的发展,工作原理和控制方式。
步进电机应用于生活和工业中的各个方向,使我对步进电机的兴趣越来越大。
3、本次课程设计我查阅大量书籍、专业网站、论坛等,通过反复对比,采用了功能相对强大,设计相对简单的设计方法。
通过与其他人设计的对比,我学到了很多东西,找到了自己设计方案的优缺点。
应该说本次设计还是基本达到了设计的要求,通过独立按键我们可以很方便的控制电机的正反转加速和减速。