步进电机的控制1.docx
- 文档编号:13132598
- 上传时间:2023-06-11
- 格式:DOCX
- 页数:23
- 大小:69.88KB
步进电机的控制1.docx
《步进电机的控制1.docx》由会员分享,可在线阅读,更多相关《步进电机的控制1.docx(23页珍藏版)》请在冰点文库上搜索。
步进电机的控制1
指导教师评定成绩:
审定成绩:
重庆邮电大学
自动化学院
自动控制原理课程设计报告
设计题目:
单位(二级学院):
自动化学院
学生姓名:
专业:
自动化
班级:
学号:
指导教师:
设计时间:
2010年6月
重庆邮电大学自动化学院制
目录
目录2
一、设计题目3
1题目内容3
2实现目标3
3设计要求3
4设计安排3
二、设计报告正文4
1步进电机的概论5
2步进电机的驱动控制系统6
3系统设计思路8
4步进电机的控制电路8
三、设计总结8
四、参考文献8
一、设计题目
1题目内容
基于51单片机的步进电机调速设计
2实现目标
1)具有与PC机串口通信的功能;
2)具有与数码管显示或者LED指示灯显示状态(数码管显示的速度并不代表电机实际速度,只是一个感性的认识)
3设计要求
1)绘制原理图,PCB;
2)完成单片机所有代码编写;
3)设计PC机简易显示界面;
4设计安排
三个人一组,为期一周,小组成员合作,共同完成设计要求。
二、设计报告正文
摘要:
步进电机是一种将电脉冲转换成相应角位移或者线位移的电磁机械装置。
在非超载的情况下,电机的转速,停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,即给电机加一个脉冲信号,电机则转过一个步距角。
它具有快速启停能力,在电机的负荷不超过它能提供的动态转矩时,可以通过输入脉冲来控制它在一瞬间的启动或者停止。
由于其精确性以及其良好的性能在实际当中得到了广泛的应用。
本文首先介绍了步进电机的分类、技术指标、步进电机的工作原理以及步进电机的驱动原理。
然后主要以51系列单片机AT89S52为控制核心设计了步进电机(型号42BYG016)控制系统,从系统的硬件电路以及软件的设计方面实现了通过液晶对步进电机的加速,匀速,减速以及正反转做出显示。
经过对所设系统的测试,结果表明仿真控制系统的随动性能好,抗干扰能力强,稳定性好。
【关键词】:
单片机、步进电机、串口通信、液晶显示
1步进电机的概论
1.1工作原理
步进电机是将电脉冲信号转变为角位移或线位移的执行机构。
在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,即给电机加一个脉冲信号,电机则转过一个步距角。
这一线性关系的存在,加上步进电机只有周期性的误差而无累积误差等特点,使得在速度、位置等控制领域用步进电机来控制变的非常的简单。
步进电机多应用在需要精确定位的场合。
1.2励磁方式
步进电机的励磁方式分为全步励磁和半步励磁两种。
其中全步励磁又有一相励磁和二相励磁之分;半步励磁又称为——一二相励磁。
假设每旋转一圈需要200个脉冲信号来励磁,可以算出每个励磁信号能使步进电动机前进1.8°,简要介绍如下。
1)相励磁——在每一个瞬间,步进电机只有一线圈导通。
没送一个励磁信号,步进电机旋转1.8°,这是三项励磁方式中最简单的一种。
STEP
A
B
A
B
1
1
0
0
0
2
0
1
0
0
3
0
0
1
0
4
0
0
0
1
表2.1一相励磁顺序表
2)二相励磁——在每一个瞬间,步进电动机有两个线圈同时导通。
每送一个励磁信号,步进电机就旋转1.8°。
1.3步进电机的分类
1)磁阻式步进电动机(反应式):
是一种将电脉冲信号转换成角位移的执行元件,定转子磁路均由软磁材料制成,只有控制绕组,基于磁导变化而产生转矩,其性能特点是步距角小,起动和运行频率较高,断电时无定位转矩,消耗功率较大。
2)感应子式永磁步进电动机:
转子为感应子式结构型式,也称混合式,兼顾永磁式和磁阻式两类电机优点,它具有步距角小,有较高的起动和运行频率的特点。
需要正负脉冲供电,消耗功率较小,有定位转矩。
3)永磁式步进电动机:
凡在结构上采用永久磁钢的步进电动机,其特点是控制功率小,电磁阻尼大,步距角大,起动频率低,需要正、负脉冲供电,有定位转矩。
4)电磁式步进电动机:
无需一般步进电动机所需的专用电源,施加直流电即可工作,控制简便,应用于监测系统中。
1.4步进电机的技术指标
1.4.1步进电机的静态指标
1)相数:
产生不同对极N、S磁场的激磁线圈对数。
常用m表示。
2)拍数:
完成一个磁场周期性变化所需脉冲数或导电状态用n表示,或指电机转过一个齿距角所需脉冲数,以四相电机为例,有四相四拍运行方式即AB-BC-CD-DA-AB,四相八拍运行方式即A-AB-B-BC-C-CD-D-DA-A.
3)步距角:
对应一个脉冲信号,电机转子转过的角位移用θ表示。
θ=360度(转子齿数J*运行拍数),以常规二、四相,转子齿为50齿电机为例。
四拍运行时步距角为θ=360度/(50*4)=1.8度(俗称整步),八拍运行时步距角为θ=360度/(50*8)=0.9度(俗称半步)。
4)定位转矩:
电机在不通电状态下,电机转子自身的锁定力矩(由磁场齿形的谐波以及机械误差造成的)
5)保持转矩:
电机在额定静态电作用下,电机不作旋转运动时,电机转轴的锁定力矩。
此力矩是衡量电机体积(几何尺寸)的标准,与驱动电压及驱动电源等无关。
1.4.2步进电机的动态指标
1)步距角精度:
步进电机每转过一个步距角的实际值与理论值的误差。
用百分比表示:
误差步距角*100%。
不同运行拍数其值不同,四拍运行时应在5%之内,八拍运行时应在15%以内。
2)失步:
电机运转时运转的步数,不等于理论上的步数。
称之为失步。
3)失调角:
转子齿轴线偏移定子齿轴线的角度,电机运转必存在失调角,由失调角产生的误差,采用细分驱动是不能解决的。
4)最大空载起动频率:
电机在某种驱动形式、电压及额定电流下,在不加负载的情况下,能够直接起动的最大频率。
5)最大空载的运行频率:
电机在某种驱动形式,电压及额定电流下,电机不带负载的最高转速频率。
6)运行矩频特性:
电机在某种测试条件下测得运行中输出力矩与频率关系的曲线称为运行矩频特性,这是电机诸多动态曲线中最重要的,也是电机选择的根本依据。
2步进电机的驱动控制系统
控制系统的组成方框图如下:
2.1脉冲信号的产生
脉冲信号由单片机AT89S52的I/O口产生,一般的脉冲信号的占空比为0.3-0.4左右,电机转速越高,占空比则越大。
本实验采用的占空比为0.5。
2.2信号分配
感应子式不仅以二、四相电机为主,二相电机工作方式有二相四拍和二相八拍两种,具体分配如下:
二相四拍为
,步距角为1.8度;二相八拍为
步距角为0.9度。
本设计采用步距角为1.8度。
2.3功率放大
功率放大是驱动系统最为重要的部分。
步进电机在一定转速下的转矩取决于它的动态平均电流而非静态电流(而样本上的电流均为静态电流)。
平均电流越大电机力矩越大,要达到平均电流大这就需要驱动系统尽量克服电机的反电势。
因而不同的场合采取不同的的驱动方式,到目前为止,驱动方式一般有以下几种:
恒压、恒压串电阻、高低压驱动、恒流、细分数等。
步进电机一经定型,其性能取决于电机的驱动电源。
步进电机转速越高,力距越大则要求电机的电流越大,驱动电源的电压越高。
电压对力矩影响如下:
2.4功率放大细分驱动器
在步进电机步距角不能满足使用的条件下,可采用细分驱动器来驱动步进电机,细分驱动器的原理是通过改变相邻(A,B)电流的大小,以改变合成磁场的夹角来控制步进电机运转的。
2.5步进电机的硬件电路图
2.5.1AT89C51外围电路设计
AT89C51外围电路设计包含有三部分的设计:
键盘模块,晶振模块及复位模块。
1)键盘设计:
有两种考虑方式,需要上拉电阻的方式和不需要上拉电阻的方式。
由于单片内部设有小的上拉电阻,当外围电路很小时,是可以不考虑前一种方式的。
最后我们选择了第一种方式。
下图中为单片机系统,其P1.0-P1.7口分别连接到LCD1602的D0-D7引脚,与P3.2,P3.3,P3.4,P3.5相连的按键开关分别控制步进电机的加速,减速,正转,反转。
P2.0,P2.1,P2.2分别接LCD1602的RS,RW,E引脚。
2.6
2.7
图1步进电机的键盘与LCD设计图
2)晶振设计。
晶振有一个石英晶体和两个二极管组成。
他们形成一个电容三点式振荡器。
二极管一般选择20-40pF。
其连接方式为石英晶体与两二极管并联的形式:
图2步进电机的晶振设计
3)复位电路设计:
一般复位也有两种形式:
上电直接复位和手动按键复位。
我们选择了上电直接复位。
2.5.2步进电机与驱动电路连接设计
采用L297和L298实现的步进电机驱动电路见图4,该电路为固定斩波频率的PWM恒流斩波驱动方式,适用两相双极性步进电机,最高电压46V,每相电流可达2A。
用一片L298和一片L297配合使用,可驱动更大功率的两相步进电机。
L298的IN1–IN4分别与单片机的输出端口连接,L298的OUT1–OUT4分别与步进电机的四相输入相连接。
加入的八个二极管起到续流的作用,当步进电机由于某种原因突然停止运转时,其内部的电感将产生与之前时刻同向同大小的一个电流,这个电流通过二极管流失掉了,如果没有这八个二极管,L298将很容易被烧坏。
L298是一款比较昂贵的芯片。
图3步进电机的驱动电路
3系统设计思路
此次我们设计的是一个步进电机控制系统,主要有51系列单片机AT89S51,串行输入/输出接口,LCD显示器,以及其他元件设计而成。
通过开关来控制系统的启动,停止,加速,减速,以及转向工作,同时液晶也会在实验板上象征性的显示相应的速度。
注意,LCD显示的速度并不代表点击实际速度,只是给大家一个感性的认识。
最后根据思路所设计出来的硬件电路和编写了相应的程序,详细的设计将会在下面说明。
图4步进电机原理图
AT89C51的功能可引脚介绍:
AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—FalshProgrammableandErasableReadOnlyMemory)的低电压,高性能CMOS8位微处理器,俗称单片机。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
1.主要特性:
· 8031CPU与MCS-51兼容
·4K字节可编程FLASH存储器(寿命:
1000写/擦循环)
·全静态工作:
0Hz-24KHz
·三级程序存储器保密锁定
·128*8位内部RAM
·32条可编程I/O线
·两个16位定时器/计数器
· 6个中断源
·可编程串行通道
·低功耗的闲置和掉电模式
·片内振荡器和时钟电路
2.管脚说明:
VCC:
供电电压。
GND:
接地。
P0口:
P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。
当P1口的管脚第一次写1时,被定义为高阻输入。
P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。
在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。
P1口:
P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。
P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。
在FLASH编程和校验时,P1口作为第八位地址接收。
P2口:
P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。
并因此作为输入时,P2口的管脚被外部拉低,将输出电流。
这是由于内部上拉的缘故。
P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。
在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。
P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
P3口:
P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。
当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。
作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。
P3口也可作为AT89C51的一些特殊功能口,如下表所示:
口管脚备选功能
P3.0RXD(串行输入口)
P3.1TXD(串行输出口)
P3.2/INT0(外部中断0)
P3.3/INT1(外部中断1)
P3.4T0(记时器0外部输入)
P3.5T1(记时器1外部输入)
P3.6/WR(外部数据存储器写选通)
P3.7/RD(外部数据存储器读选通)
P3口同时为闪烁编程和编程校验接收一些控制信号。
对于51系列单片机的软件开发,传统的方法是在PC机上采用开发工具进行程序设计、编译、调试,待程序调试通过之后生成目标文件下载至单片机硬件电路再进行硬件调试。
这种方法只有硬件电路完成之后才能进行系统功能测试,若此时发现硬件电路存在设计问题且必须进行修改时就会显著影响系统开发的成本和周期。
为此,本文采用了系统软硬件协同仿真的开发方法,使得硬件电路实现前的功能测试成为可能。
同时硬件电路的软件化仿真为硬件电路的设计与实现提供了有力的保障。
其中在Keil uVision2集成开发环境下,实现步进电机控制系统的程序设计、编译、调试,并最终生成目标文件 *.hex,而由英国Proteus Labcenter electronics公司所提供的EDA工具Proteus则利用该目标文件 *.hex 实现对步进电机控制系统硬件电路功能的测试。
步驱动芯片L297和L298功能介绍
L297芯片是一种硬件环分集成芯片.它可产生四相驱动信号,用于计算机控制的两相双极或四相单极步进电机它的心脏部分是一组译码器它能产生各种所需的相序.这一部分是由两种输入模式控制,方向控制(CW/CCW)和HALF/FULL以及步进式时钟CLOCK.它将译码器从一阶梯推进至另一阶梯。
译码器有四个输出点连接到输出逻辑部分,提供抑制和斩波功能所需的相序。
因此L297能产生三种相序信号,对应于三种不同的工作方式:
即半步方式(HALFSTEP);基本步距(FULLSTEP,整步)一相激励方式;基本步距两相激励方式。
脉冲分配器内部是一个3bit可逆计数器,加上一些组合逻辑.产生每周期8步格雷码时序信号,这也就是半步工作方式的时序信号。
此时HALF/FULL信号为高电。
若HALF/FULL取低电平,得到基本步距工作方式。
即双四拍全阶梯工作方式。
L297另一个重要组成是由两个PWM斩波器来控制相绕组电流,实现恒流斩波控制以获得良好的矩频特性。
每个斩波器由一个比较器、一个RS触发器和外接采样电阻组成,并设有一个公用振荡器,向两个斩波器提供触发脉冲信号。
图中,频率f是由外接16脚的RC网络决定的,当R>10kΩ时,f=1/0.69RC。
当时钟振荡器脉冲使触发器置1,电机绕组相电流上升,采样电阻的R上电压上升到基准电压Uref时,
较器翻转,使触发器复位,功率晶体管关断,电流下降,等待下一个振荡脉冲的到来。
这样,触发器输出的是恒频PWM信号,调制L297的输出信号,绕组相电流峰值由Uref确定。
L297的CONTROL端的输入决定斩波器对相位线A、B、C、D或抑制线INH1和INH2起作用。
CONTROL为高电平时,对A、B、C、D有控制作用;而为低电平时,则对INH1和INH2起控制作用,从而可对电动机转向和转矩进行控制。
L298芯片是一种高压、大电流双全桥式驱动器,其设计是为接受标准TTL逻辑电平信号和驱动电感负载的,例如继电器、圆筒形线圈、直流电动机和步进电动机具有两抑制输入来使器件不受输入信号影响。
每桥的三级管的射极是连接在一起的,相应外接线端可用来连接外设传感电阻。
可安置另一输入电源,使逻辑能在低电压下工作。
L298芯片是具有15个引出脚的多瓦数直插式封装的集成芯片。
图中.AT89C52通过串口经MAX232电平转换之后与微机相连.接受上位机指令。
向L297发出时钟信号、正反转信号、复位信号及使能控制等信号。
电路中,电阻R13,R15用来调节斩波器电路的参考电压,该电压将与通过管脚13,14所反馈的电位的大小比较,来确定是否进行斩波控制,以达到控制电机绕组电流峰值、保护步进电机的目的
由于L297内部带有斩波恒流电路,绕组相电流峰值由Uref确定。
当采用两片L297通过L298分别驱动步进电机的两绕组,且通过两个D/A转换器改变每相绕组的Uref时,即组成了步进电机细分驱动电路。
另外,为了有效地抑制电磁干扰,提高系统的可靠性,在单片机与步进电动机驱动回路中利用两个16引脚光电耦合器件TLP521-4组成如图所示的隔离电路。
其作用是切断了单片机与步进电动机驱动回路之间电的直接联系,实现了单片机与驱动回路系统地线的分别联接.防止处于大电流感性负载下工作的驱动电路产生的干扰信号以及电网负载突变产生的干扰信号通过线路串入单片机,影响单片机的正常工作。
三、设计总结
在本设计系统中,主要控制步进电机的运动,使其能方便调速。
设计中利用串口通信,实现了单片机和PC机的连接。
这次实习的过程是很有意义的,从中我们学到了很多。
在拿到题目时我们一起对题目进行了分析,一起进行了讨论。
我们大概了解到了本次设计所需要的元件以及设计步骤。
在经过讨论之后,大家首先去熟悉步进电机的工作原理,然后根据其工作原理通过控制脉冲频率来控制转速运动和加速运动达到调速的目的。
在Proteus绘图部分,这是初次接触这样的软件,绘制原理图相对比较简单,很多器件都几乎可以在元件库中找到,这样用proteus绘制图的难度远比protel绘制图简单,这样节省了时间。
PCB图的制作并没有我们想的那么简单,由于是第一次绘制PCB图,在绘图过程当中遇到了一定的困难,就是在电路原理图完成之后,却在生成PCB文件的有些器件出现了问题,为解决出现的这一问题,我们进行了很多的测试,后来发现,在电路元件的的命名上面,我们重复命名了元件名,而剩下的器件没有显示的原因,起初我们以为是在PCB图中没有我们所需要的元件,我们又想办法向封装库添加新的封装lib文件,但仍没有生成。
后来知道是由于我们没有完全的掌握proteus软件的用法,缺少了元器件的封装(footprint)的步骤。
通过这次的实习,我们更加深入的了解了步进电机的工作原理、芯片AT89c51的功能,及基于单片机的一些设计电路。
还学习了一些很重要的软件,知道了他们的用法和功能,比如protel、Proteus等。
通过编写程序,也提高了自己的片成能力。
另外,我深刻地认识到,团队的合作在实习中的重要性,在本来没有头绪的情况下,经过了大家的一起讨论,问题变得简单了许多,而且,在仿真的过程中,我们先各自地做了,然后在一起讨论后进行了对方案地优化。
分工明确,也让我们的实习效率提高了不少。
我喜欢这次课程设计,用keil的仿真,用proteus画图,这种实际的操作和自己想法的实现,都让我从中获得了一种在书本中没有获得的兴奋感和满足感!
我会在以后的学习中,改进学习中的不足之处。
四、参考文献
【1】张毅刚,彭喜元.单片机原理及应用.高等教育出版.2003
【2】、马忠梅.单片机的C语言应用程序设计.北京:
北京航空航天出版社.2003.
【3】郭天祥.51单片机及其C语言程序开发实例.高等教育出版社.2002.
附录
基于单片机控制步进电机调速设计程序
#include"AT89X51.h"
intdelay();
voidinti_lcd();
voidshow_lcd(int);
voidcmd_wr();
voidShowState();
voidclock(unsignedintDelay);
voidDoSpeed();//计算速度
//正转值
#defineRIGHT_RUN1
//反转值
#defineLEFT_RUN0
sbitRS=0xA0;
sbitRW=0xA1;
sbitE=0xA2;
charSpeedChar[]="SPEED(n/min):
";
charStateChar[]="RUNSTATE:
";
charSTATE_CW[]="CW";
charSTATE_CCW[]="CCW";
charSPEED[3]="050";
unsignedintRunSpeed=50;//速度
unsignedcharRunState=RIGHT_RUN;//运行状态
//***********************************************************************************
main()
{
intstate_start1;
/*定时器设置*/
TMOD=0x66;//定时器0,1都为计数方式;方式2;
EA=1;//开中断
TH0=0xff;//定时器0初值FFH;
TL0=0xff;
ET0=1;
TR0=1;
TH1=0xff;//定时器1初值FFH;
TL1=0xff;
ET1=1;
TR1=1;
IT0=1;//脉冲方式
EX0=1;//开外部中断0:
加速
IT1=1;//脉冲方式
EX1=1;//开外部中断1:
减速
P0_0=0;
inti_lcd();
DoSpeed();
ShowState();
while
(1)
{
state_start1=P3_0;
if(state_start1==0)
{
P0_0=1;
clock(RunSpeed);
P0_1=P0_1^0x01;
}
}
}
//定时器0中断程序:
正转
voidt_0(void)interrupt1
{
RunState=RIGHT_RUN;
P0_0=1;
P1=0x01;
cmd_wr();
ShowState();
}
//定时器1中断:
反转
voidt_1(void)interrupt3
{
RunState=LEFT_RUN;
P0_0=0;
P1=0x01;
cmd_wr();
ShowState();
}
//中断0:
加速程序
voidSpeedUp()interrupt0
{
if(RunSpeed>=12)
RunSpeed=RunSpeed-2;
DoSpeed();
P1=0x01;
cmd_wr();
ShowState();
}
//中断1:
减速程序
voidSpeedDowm()interrupt2
{
if(RunSpeed<=100)
RunSpeed=RunSpeed+2;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 步进 电机 控制