|
|
2012届毕业生
毕业设计说明书
题 | 目: 基于单片机的步进电机的控制器设计 |
|
院系名称: 信息科学与工程学院
专业班级: 电子信息科学与技术
学生姓名: 学 | 号: |
指导教师: 教师职称:
2012 年月日
毕业 设 计 中 文 摘 要
摘要
步进电机控制方式的实现有多种,可以采用电子电路控制,PLC控制和单片机控制的方式。近些年来随着科技的飞速发展,单片机的应用正在不断深入,同时带动传统控制检测的更新,用单片机控制步进电机显得更加灵活和方便。本设计是用AT89C52单片机作为核心部件进行逻辑控制及信号产生,用单片机技术和C语言编程设计来进行步进电机的控制。通过人手动按开关实现步进电机的启动与停止。此外此系统还添加了步进电机的正转反转,加速及减速,屏幕显示功能。同
时本文也通过了proteus 软件的仿真,在仿真结果过能看出近似真实的效果。 |
2
毕业 设 计 外 文 摘 要
TitleThe design of the control system of
Step—motor
Abstract
Steppermotor control can be achieved in different ways, can be used earlyanalogcircuits,digital circuits or a combination of analog and digital circuitmeans. With therapiddevelopment of science and technology in recent years, theapplication of SCM
core component of the AT89C52, as the signal generated by logic control and |
softwaresimulation in proteus, too can be seen that the approximation of thetrue effect of the simulation results.
Keywords stepper motor microcontroller | AT89C52 proteus simulation |
3
目次
摘要....................................................................................................................................IAbstract..................................................................................................................................II1 绪论..................................................................................................................................1 1.1课题研究的目的和意义................................................................................1 1.2国内外研究现状............................................................................................2 1.3课题研究的主要内容和要求........................................................................32 步进电机常见的控制方案论证......................................................................................4 2.1基于电子电路控制........................................................................................4 2.2 基于PLC控制..............................................................................................5 2.3基于单片机控制............................................................................................73 系统硬件电路设计..........................................................................................................9
3.1 控制电路........................................................................................................9 |
5仿真与调试....................................................................................................................225.1 仿真调试的操作步骤..................................................................................23
5.2仿真结果......................................................................................................24
总结..................................................................................................................................26致谢..................................................................................................................................27参考文献........................................................................................................................28
4
1 绪论
1.1 课题研究的目的和意义
步进电机是将电脉冲信号转变为角位移或线位移的开环控制元步进电机件。
在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数, 而不受负载变化的影响,当步进驱动器接收到一个脉冲信号,它就驱动步进电机 按设定的方向转动一个固定的角度,称为“步距角”,它的旋转是以固定的角度 |
一步一步运行的。可以通过控制脉冲个数来控制角位移量,从而达到准确定位的
目的;同时可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调
速的目的。
正是由于步进电机具有突出的优点,所以成了机电一体化的关键产品之一,
广泛应用在各种自动化控制系统中。随着微电子和计算机技术的发展,步进电机
的需求量与日俱增,在各个国民经济领域都有应用。比如在数控系统中就得到广 |
革命性变革。优点明显的步进电机被广泛应用在电子计算机的许多外围设备中,
例如打印机,纸带输送机构,卡片阅读机,主动轮驱动机构和存储器存取机构等,
步进电机也在军用仪器,通信和雷达设备,摄影系统,光电组合装置,阀门控制,
数控机床,电子钟,医疗设备及自动绘图仪,数字控制系统,工具机控制,程序
控制系统以及许多航天工业的系统中得到应用。因而,对于步进电机控制的研究
也就显得尤为重要了。
1.2 国内外研究现状
步进电机是国外发明的。中国在文化大革命中已经生产和应用,例如江苏、
浙江、北京、南京、四川都生产,而且都在各行业使用,驱动电路所有半导体器
件都是完全国产化的,当时是全分立元器件构成的逻辑运算电路,还有电容耦合
输入的计数器,触发器,环形分配器。
5
国外在大功率的工业设备驱动上,目前基本不使用大扭矩步进电动机,因为
从驱动电路的成本,效率,噪音,加速度,绝对速度,系统惯量与最大扭矩比来
比较,比较不划算,还是用直流电动机,加电动机编码器整体技术和经济指标高。
一些少数高级的应用,就用空心转杯电机,交流电机。
国外在小功率的场合,还使用步进电机,例如一些工业器材,工业生产装备,
打印机,复印件,速印机,银行自动柜员机。国外用许多现代的手段将步进电机
排挤出驱动应用,除了前面提到的旋转编码器,打印机还使用光电编码带或感应
编码带配合直流电动机,实现闭环直线位移控制。
国内过去是用大力矩步进电动机实现机床数控,有实力的公司现在也采用交
流电动机驱动数控机床,在驱动设备的主要差距,是国外对交流电动机的控制理
论与工程分析和应用能力强,先进的控制理论作为软件,写在控制器内部。
总的来说,步进电机是一种简易的开环控制,对运用者的要求低,不适合在大功
率的场合使用。
生产了环形力矩电机,在高品质的控制场合,有时还不能使用步进电机。步进电 |
1.3 课题主要研究内容和要求
本设计所选的步进电机是四相五线步进电机,采用的方法是利用单片机控制
步进电机的驱动。当步进驱动器接收到单片机给它的一个脉冲信号,它就驱动步
进电机按设定的方向转动一个固定的角度。因此可以通过控制脉冲个数来控制角
位移量,从而达到准确定位的目的;通过控制脉冲频率来控制电机转动的速度和
加速度,从而达到调速的目的。
本设计采用单片机AT89C52来作为整个步进电机控制系统的运动控制核心
部件,采用了电机驱动芯片ULN2003构成了整个系统的驱动部分,再加上作为
执行部件的步进电机来构成了一个基本的步进电机控制系统。系统的具体功能和
要求如下: | |
6
2.独立按键实现步进电机的启停、加速、减速、正转、反转的控制;3.能实现步进电机的转速调节,最低转速为1min/圈,最高转速为3S/圈;4.步进电机的转速由数码管显示。
7
2 步进电机常见的控制方案论证
2.1、基于电子电路的控制
步进电机受电脉冲信号控制,电脉冲信号的产生、分配、放大全靠电子元器件的动作来实现。由于脉冲控制信号的驱动能力一般都很弱,因此必须有功率放大驱动电路。步进电机与控制电路、功率放大驱动电路组成一体,构成步进电机驱动系统。此种控制电路设计简单,
功能强大,可实现一般步进电机的细分任务。这个系统由三部分组成:脉冲信号产生电路、脉冲信号分配电路、功率放大驱动电路。系统组成如图1.1所示。
|
和适当的处理,自动给出脉冲链,使步进电机每一步响应控制信号的命令,从而只要控制策略正确电机不可能轻易失步[4]。该方案多通过一些大规模集成电路来控制其脉冲输出频率和脉冲输出数,功能相对较单一,如需改变控制方案,必须需重新设计,因此灵活性不高。
2.1、基于PLC的控制
PLC也叫可编程控制器,是一种工业上用的计算机。PLC作为新一代的工业控制器,由于具有通用性好、实用性强、硬件配套齐全、编程简单易学和可靠性高等优点而广泛应用于各行业的自动控制系统中。步进电机控制系统有PLC、
环形分配器和功率驱动电路组成。控制系统采用PLC 来产生控制脉冲。通过PLC |
8
相应的绕组。PLC 控制的步进电机可以采用软件环形分配器,也可采用硬件环形 |
分配器。采用软件环形分配器占用PLC资源较多,特别是步进电机绕组相数大于4时,对于大型生产线应该予以考虑。采用硬件环形分配器,虽然硬件结构稍微复杂些,但可以节省PLC资源,目前市场有多种专用芯片可以选用。步进电机功率驱动电路将PLC输出的控制脉冲放大,达到比较大的驱动能力,来驱动步进电机。
采用软件来产生控制步进电机的环型脉冲信号,并用PLC中的定时器来产生速度脉冲信号,这样就可以省掉专用的步进电机驱动器,降低硬件成本。但由于PLC的扫描周期一般为但由于PLC的扫描周期一般为几毫秒到几十毫秒,相应的频率只能达到几百赫兹,因此,受到PLC工作方式的限制及其扫描周期的影响,步进电机不能在高频下工作,无法实现高速控制。并且在速度较高时,由
于受到扫描周期的影响,相应的控制精度就降低了。
2.3、基于单片机的控制
采用单片机来控制步进电机,实现了软件与硬件相结合的控制方法。用软件 |
采用软件编程的办法实现脉冲的分配。
本方案有以下优点:(1)单片机软件编程可以使复杂的控制过程实现自动控制和精确控制,避免了失步、振荡等对控制精度的影响;(2)用软件代替环形分配器,通过对单片机的设定,用同一种电路实现了多相步进电机的控制和驱动,大大提高了接口电路的灵活性和通用性;(3)单片机的强大功能使显示电路、键盘电路、复位电路等外围电路有机的组合,大大提高系统的交互性。
基于以上优点,本次设计采用基于单片机的控制方案。
根据设计要求,采用的方案如下。硬件部分实现电机转动和速度显示功能,包括控制开关模块;电机转动模块和速度显示模块。软件部分实现对步进电机的控制功能,主要设计思想通过控制台控制程序的开关来控制电机的转动,由电机
反馈回来的数据经单片机控制显示器显示数据.。 设计框图如下: |
|
9
10
3 系统硬件设计
本设计的硬件电路只要包括控制电路、最小系统、驱动电路、显示电路四大部分。最小系统只要是为了使单片机正常工作。控制电路只要由开关和按键组成,由操作者根据相应的工作需要进行操作。显示电路主要是为了显示电机的工作状态和转速。驱动电路主要是对单片机输出的脉冲进行功率放大,
从而驱动电机转动。
3.1控制电路
根据系统的控制要求,控制输入部分设置了顺时针控制,逆时针控制,加速控制,减速控制和停止按键。控制电路如图2所示。当按下按键,内部程序检测P0.1-P0.4的状态变化来调用相应的启动和换向程序,从而实现系统的电机的启动和正反转控制。
根据步进电机的工作原理可以知道,步进电机转速的控制主要是通过控制通
件延时和定时中断在此电路中电机的转速控制主要是通过定时器的中断来实现 |
11
图2控制电路原理图
3.2最小系统
单片机最小系统或者称为最小应用系统,就是用最少的元件组成的单片机可以工作的系统,对51系列单片机来说,最小系统一般应该包括:单片机、复位电路、晶振电路。
复位电路:使用了独立式键盘,单片机的P1 口键盘的接口。该设计要求只 |
12
使单片机进入复位状态,晶振电路用22PF的电容和一12M晶体振荡器组成为整个电路提供时钟频率。如图3示。
晶振电路:8051单片机的时钟信号通常用两种电路形式电路得到:内部震荡方式和外部中断方式。在引脚XTAL1和XTAL2外部接晶振电路器(简称晶振)或陶瓷晶振器,就构成了内部晶振方式。由于单片机内部有一个高增益反相放大器, 就构成了自激振荡器并产生振荡时钟脉冲。内部振荡方式的外部当外接晶振后,
电路如图5示。其电容值一般在5~30pf,晶振频率的典型值为12MHz,采用6MHz的情况也比较多。内部振荡方式所得的时钟信号比较稳定,实用电路实用较多。
3.3 驱动电路
本次设计用ULN2003来驱动步进电机,电路图如图4所示。通过单片机的P2.0~P2.3输出脉冲到ULN2003的1B~4B口,经信号放大后从1C~4C口分别输出到电机的ABCD四相。
ULN2003 是大电流驱动阵列,多用于单片机、智能仪表、PLC、数字量输出卡等控制电路中。可直接驱动继电器等负载。输入5VTTL电平,输出可达
500mA/50V。 ULN2003 是高耐压、大电流达林顿陈列,由七个硅NPN达林顿管组成该电路的特点如下:ULN2003 的每一对达林顿都串联一个2.7K的基极电阻,在5V的工作电压下它能与TTL和CMOS 电路直接相连,可以直接处理原先需要标准逻辑缓冲器ULN2003是高压大电流达林顿晶体管阵列系列产品,具有电流增益
13
高、工作电压高、温度范围宽、带负载能力强等特点,适应于各类要求高速大功率驱动的系统。
本设计所用的步进电机是28BYJ48型四相八拍电机,电压为DC5V—DC12V。当对步进电机施加一系列连续不断的控制脉冲时,它可以连续不断地转动。每一个脉冲信号对应步进电机的某一相或两相绕组的通电状态改变一次,也就对应转子转过一定的角度(一个步距角)。当通电状态的改变完成一个循环时,转子转 四相步进电机可以在不同的通电方式下运行,常见的通电方式有单过一个齿距。
(单相绕组通电)四拍(A-B-C-D-A),双(双相绕组通电)四拍(AB-BC-CD-DA-AB-),八拍(A-AB-B-BC-C-CD-D-DA-A。。。)
14
橙 | 黄 | 粉 | 蓝 | 十六制(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 |
由此可得电机逆时针旋转的相{0x08,0x0c,0x04,0x06,0x02,0x03,0x01,0x09}
图4 步进电机驱动电路 | |
15
3.4显示电路
在该步进电机的控制器中,电机可以正反转,可以加速、减速,其中电机转速的等级分为十级,为了方便知道电机转速的等级,这里设计了电机转速和电机的工作状态的显示电路。在显示电路中,主要是利用了单片机的P0口接一个两位的共阳极数码管。数码管a、b、c、d、e、f、g、dp分别接P0.0~P0.7口.数码管的公共角1,2分别接p2.0,p2.1。
本次所用的数码管参数和管脚图如下:
16
图5步进电机显示电路
3.5总体电路图
把各个部分的电路图组合成总电路图,如图6所示。
17
|
18
4 系统软件设计
4.1软件设计分析
从该系统的设计要求可知,该系统的输入量为速度和方向,速度应该有增减
变化,通常用加减按钮控制速度,这样只要2根口线,再加上一根方向线盒一根
启动信号线共需要4根输入线。系统的输出线与步进电机的绕组数有关。这里选
的步进电机,该电机共有四相绕组,工作电压为+5V,可以个单片机共用一个电
源。步进电机的四相绕组用P1口的P1.0~P1.3控制,由于P1口驱动能力不够,
因而用一片2003增加驱动能力。用P0口控制第一数码管用于显示正反转,用P2
口控制第二个数码管用于显示转速等级。数码管采用共阳的。
通过分析可以看出,实现系统功能可以采用多种方法,由于随时有可能输入
加速、加速信号和方向信号,因而采用中断方式效率最高,这样总共要完成4个
部分的工作才能满足课题要求,即主程序部分、定时器中断部分、外部中断0和
外部中断1 部分,其中主程序的主要功能是系统初始参数的设置及启动开关的检 |
19
4.2主程序设计
当给系统供电以后,通过单片机复位电路对系统进行上电复位系统经过初始
化以后,便开始执行按键查询等待相应的操作,当有按键按下的时候程序便调用
并执行相应的子程序,其具体的主流程图4.1如下所示:
开始
系统初始化
按键判断 | N |
Y
相应按键子程序
对相应的系统参数进行初始化,包括系统上电默认运行参数设定,包括两相
四拍的工作方式,初始速度档位是30转/分,系统中断设定,定时器设定,载入
定时器初值和默认的工作参数等,具体流程图如图4.2所示。
20
开始
定时器中断允许
定时器0工作方式2
载入定时器初值
定时器0和定时器1开启
载入默认工作参数
按键子程序:
1、延时子程序:在本延时子程序当中每调用一次延时子程序延时时间是1毫秒。
2、按键响应子函数:在本设计当中按键的一端接地,另一端接单片机的对应端口,所以当按键按下,既是将单片机对应端口电平拉低。所以在编程的时候判断按键按下是低电平有效。图4.3画出的是电机增速和减速的子程序框图。
21
程序入口 程序入口
N判断增速按键按下 N 判断减速按键按下
Y Y
去抖动 去抖动
N再次判断 N 再次判断
Y Y
Y Y判断是否是最高速 判断是否是最低速
NN
速度档位加1 速度档位减1
结束
C 语言程序如下:
#include<reg52.h>
#include<intrins.h>
#define ucharunsigned char
#define uint unsigned int
uchar codeccw[]={0x08,0x04,0x02,0x01}; //逆时针旋转相序
//ucharcode cw[]={0x01,0x02,0x04,0x08}; //顺时针旋转相序
//ucharcode speed[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d};
//uchar codetable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,
数码管显示表 | //0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};//共阴极 |
uchar code table_anode[]={ //共阳极0~f 数码管编码 22
0xc0,0xf9,0xa4,0xb0,//0~3
0x99,0x92,0x82,0xf8,//4~7
0x80,0x90,0x88,0x83,//8~b
0xc6,0xa1,0x86,0x8e//c~f
};
ucharcode ccw8[]={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^4;//逆时针转
sbitkeycw=P3^5;//顺时针转
sbit pause=P3^6;//暂停 | |
sbit fir=P2^0;//第一数码管sbit sec=P2^1;//第二数码管 | |
|
voidspeedctl();//按键控制转速
voiddisplay();//速度显示函数
voiddelaynms(uint aa);//1ms延时函数
voidmain()
{
init();
while(1)
{
speedctl( ); | |
23
}
}
voidwind_init()
{
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 中断 | |
} | |
{ void speedctl() |
速
{
n++;
if(n==11)
n=10;
while(!inc)
display();
time=0;
}
else if(dec==0) | //减速 |
24
if(n==0)
n=1;
while(!dec)
display();
time=0;
}
switch(n)
{
case1:
t=937; //60/64转速一分钟一圈里
面转一圈937ms,基准速度一分钟一圈
rpm=1;
break;
t=187;
rpm=5;
break;
case 4:
t=133;
rpm=7;
break;
case 5:
t=104;
rpm=9; | |
25
t=85;
rpm=11;
break;
case 7:
t=72;
rpm=13;
break;
case 8:
t=62;
rpm=15;
break;
case 9:
t=55;
break;
}
}
voiddirec()
{
if(keyccw==0)
{
flag=1;
time=0; | |
26
{
flag=2;
time=0;
}
elseif(pause==0)
flag=0;
}
voiddisplay()
{
fir=1;
sec=0;
P0=table_anode[rpm/10];
} | delaynms(17); |
voiddelaynms(uint aa)
{
ucharbb;
while(aa--)
{
for(bb=0;bb<250;bb++); //1ms基准延时程序
}
}
void timer0() interrupt 1 | TH0=(65536-1000)/256; | |
{ | ||
|
27
TL0=(65536-1000)%256;
time++;
if(flag==1)//逆时针转
{
if(time==t)
{
time=0;
P1=ccw[i];
i++;
if(i==4)
i=0;
}
}
if(i>0)
i--;
elseif (i==0)
i=3;
P1=ccw[i];
}
}
}
28
5 仿真与调试
5.1仿真调试的操作步骤
本次采用的仿真软件是proteus,采用的编程工具是keil。具体操作如下:1)在Protues中画出系统电路图 2)编写程序并在keil中编译并生成hex文件。
3)把在keil中编译生成的HEX文件载入AT89C52芯片中;4)运行仿真。
5.2 仿真结果
仿真结果如下图所示:
当点下proteus 的play键时候,此时数码管显示速度为零,电机不转。
29
当按加速按键时候,速度会从01一直加到19。共有十个速度等级
30
31
32
按下逆时针按键,电机会以所显示的速度逆时针转动。顺时针亦同。
33
总结
经过为期一学期的学习和努力,本次设计顺利完成,具体结论如下:
1、采用单片机作为控制核心,利用其强大的功能,把键盘电路和数码管显
示电路,电机驱动电路,电机电流检测电路有机的结合起来,组成一个操作方便,
交互性强的简单系统。
2、通过系统的设计实现了预期的设计目标,完成了全部的设计任务,具体
功能如下:完成了整个系统的硬件设计和软件编程,能通过键盘电路控制步进电
机的转速控制,能实现启动、正转、反转、加速、减速控制,实现转速最低1转
/分,最高转速20转/分;通过编程实现了通过单片机能输出两相四拍和两相八拍
的脉冲控制序列。驱动电路能提供5V,0.3A的驱动信号;整个电机的转速,转
动方向,检测到的电机电流的大小等都能通过数码管显示出来;整个的成果形式
是最终以步进电机控制电路板的形式展示出来了。 |
后续工作:
1、在本次设计中更多的是注重整体功能的实现,注重的是操作简单,所以
本系统采用了开环控制的方式,电机也是选用的最常用的反应式步进电机。通过
在本设计中的学习和查阅资料,想要得到更高性能的控制,可以选用混合式步进
电机,采用闭环的细分驱动电路。
2、本系统在设计的过程中由于没有考虑到单片机的端口有限,所以在本设
计中键盘扫描部分只用了四个按键,所以就出现了一个按键叠加很多功能的控制,
比如有一个键能同事实现对电机工作模式,电机正反转,电机电流显示,电机停
止等的控制,那么这样的情况在实际生产生活中操作起来略显不方便,所以建议
以后有做类似设计任务的时候,预先考虑全面,争取一个键控制一个功能。
34
致谢
本次设计是在孙福艳老师的精心指导下完成的。从论文的选题到各个研究阶
段,自始自终得到了她的悉心指导,为本设计的完成倾注了大量的心血。孙老师
学识渊博,为人处世认真负责,时刻监督我设计进度,同时在设计需要的时候都
能马上帮我解决。孙老师严谨求实的科研态度、执着追求的敬业精神以及平易近
人的工作作风,使我终生受益。她不仅一直对我的课题研究和论文进行了具体的
指导;而且在思想上,也给我提供了很大的帮助和支持。在此,向孙老师表示衷
心的感谢和深深的敬意!
同时也要感谢信息科学与工程学院的全体老师,感谢他们的帮助与教导,使
我在河南工业大学度过了愉快而又充实的大学生活,不仅学习专业理论知识、提
高了科研能力,还加强了自身修养、得到了为人处事等全方面的锻炼。在本次设
计中我也得到同学和朋友的大力支持和帮助,同时感谢他们四年来的支持和关怀。 |
主要参考文献
35
[1]张洪润,蓝清华.单片机应用技术教程[M]. 北京:清华大学出版社,1997.
[2]秦曾煌.电[M]. 北京:高等出版社,1999.
[3]常斗南,等.可编程序控制器原理、应用、实验[M]. 北京:出版
社,1998.
[4]于海生,等.微型控制技术[M]. 北京:清华大学出版社,1999.
[5]王福瑞,等.单片机微机测控系统设计大全[M]. 北京:北京航空航天大学出
版社,1998.
[6]陈理壁.步进电机及其应用[M]. 上海:上海科学技术出版社,1989.
[7]刘保延,等.步进电机及其驱动控制系统[M]. 哈尔滨:哈尔滨工业大学出版
[8] 季维发,过润秋,严武升等. 机电一体化技术[M] .北京:工业出版 |
[10]刘国荣.单片微型计算机技术[M]. 北京:机械工业出版社,1996.
[11]王福瑞.单片微机测控系统设计大全[M]. 北京:北京航空航天大学出版
社,1998.
[12]何立民.单片机应用技术选编[M]. 北京:北京航空航天大学出版社,1993.
[13]潘新民等:单片微型计算机实用系统设计1北京:人民邮电出版社,1992.
[14]王润孝,秦现生编著1机床数控原理与系统1西北工业大学出版社,1997.
[15] 李伯成,侯伯李等编1IBM- PC 微机应用系统设计1西安电子科技大 36
37