步进电机控制系统设计.docx
《步进电机控制系统设计.docx》由会员分享,可在线阅读,更多相关《步进电机控制系统设计.docx(26页珍藏版)》请在冰点文库上搜索。
步进电机控制系统设计
毕业设计论文
论文题目:
基于单片机的步进电机控制电路板设计
摘要
随着微电子和计算机技术的发展,步进电机的需求量与日俱增,它广泛用于打印机、电动玩具等消费类产品以及数控机床、工业机器人、医疗器械等机电产品中,其在各个国民经济领域都有应用。
研究步进电机的控制系统,对提高控制精度和响应速度、节约能源等都具有重要意义。
步进电机是一种能将电脉冲信号转换成角位移或线位移的机电元件,步进电机控制系统主要由步进控制器,功率放大器及步进电机等组成。
采用单片机控制,用软件代替上述步进控制器,使得线路简单,成本低,可靠性大大增加。
软件编程可灵活产生不同类型步进电机励磁序列来控制各种步进电机的运行方式。
本设计是采用AT89C51单片机对步进电机的控制,通过IO口输出的时序方波作为步进电机的控制信号,信号经过芯片ULN2003驱动步进电机;同时,用4个按键来对电机的状态进行控制,并用数码管动态显示电机的转速。
系统由硬件设计和软件设计两部分组成。
其中,硬件设计包括AT89C51单片机的最小系统、电源模块、键盘控制模块、步进电机驱动(集成达林顿ULN2003)模块、数码显示(SM420361K数码管)模块、测速模块(含霍尔片UGN3020)6个功能模块的设计,以及各模块在电路板上的有机结合而实现。
软件设计包括键盘控制、步进电机脉冲、数码管动态显示以及转速信号采集模块的控制程序,最终实现对步进电机转动方向及转动速度的控制,并将步进电机的转动速度动态显示在LED数码管上,对速度进行实时监控显示。
软件采用在Keil软件环境下编辑
第1章绪论
1.1课题背景
当今社会,电动机在工农业生产、人们日常生活中起着十分重要的作用。
步进电机是最常见的一种控制电机,在各领域中得到广泛应用。
步进电机作为执行元件,是机电一体化的关键产品之一,广泛应用在各种自动化控制系统中。
随着微电子和计算机技术的发展,步进电机的需求量与日俱增,在各个国民经济领域都有应用。
步进电机是一种将电脉冲转化为角位移的执行机构。
当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度(称为“步距角”),它的旋转是以固定的角度一步一步运行的。
可以通过控制脉冲个数来控制角位移量,从而达到准确定位的目的;同时可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。
步进电机可以作为一种控制用的特种电机,其优点是结构简单、运行可靠、控制方便。
尤其是步距值不受电压、温度的变化的影响、误差不会长期积累的特点,给实际的应用带来了很大的方便。
它广泛用于消费类产品(打印机、照相机、雕刻机)、工业控制(数控机床、工业机器人)、医疗器械等机电产品中。
研究步进电机的控制和测量方法,对提高控制精度和响应速度、节约能源等都具有重要意义。
控制核心采用C51芯片,它以其独特的低成本,小体积广受欢迎,当然其易编程也是不可多得的优点为此,本文设计了一个单片机控制步进电机的控制系统,可以实现对步进电机转动速度和转动方向的高效控制。
1.2设计目的及系统功能
本设计的目的是以单片机为核心设计出一个单片机控制步进电机的控制系统。
本系统采用AT89C51作为控制单元,通过键盘实现对步进电机转动方向及转动速度的控制,并且将步进电机的转动速度动态显示在LED数码管上。
图1-1总体设计框图
设计的步进电机控制系统应具有以下功能:
1.步进电机的启停控制
2.步进电机的正反转控制
3.步进电机的加速控制
4.步进电机的减速控制
5.步进电机转速的动态显示
第2章控制系统硬件分析与设计
2.1步进电机
2.1.1步进电机概述
步进电机是一种能够将电脉冲信号转换成角位移或线位移的机电元件,它实际上是一种单相或多相同步电动机。
单相步进电动机有单路电脉冲驱动,输出功率一般很小,其用途为微小功率驱动。
多相步进电动机有多相方波脉冲驱动,用途很广。
使用多相步进电动机,单路电脉冲信号可先通过脉冲分配器转换为多相脉冲信号,在经功率放大后分别送入步进电动机各相绕组。
每输入一个脉冲到脉冲分配器,电动机各相的通电状态就发生变化,转子会转过一定的角度(称为步距角)。
正常情况下,步进电机转过的总角度和输入的脉冲数成正比;连续输入一定频率的脉冲时,电动机的转速与输入脉冲的频率保持严格的对应关系,不受电压波动和负载变化的影响。
由于步进电动机能直接接收数字量的输入,所以特别适合于微机控制。
2.1.2步进电机的特性
步进电机转动使用的是脉冲信号,而脉冲是数字信号,这恰是计算机所擅长处理的数据类型。
从20世纪80年代开始开发出了专用的IC驱动电路,今天,在打印机、磁盘器等的OA装置的位置控制中,步进电机都是不可缺少的组成部分之一。
总体上说,步进电机有如下优点:
1.不需要反馈,控制简单。
2.与微机的连接、速度控制(启停和反转)及驱动电路的设计比较简单。
3.没有角累积误差。
4.停止时也可保持转距。
5.没有转向器等机械部分,不需要保养,故造价较低。
6.即使没有传感器,也能精确定位。
7.根椐给定的脉冲周期,能够以任意速度转动。
但是,这种电机也有自身的缺点:
1.难以获得较大的转矩
2.不宜用作高速转动
3.在体积重量方面没有优势,能源利用率低。
4.超过负载时会破坏同步,高速工作时会发出振动和噪声。
2.1.3步进电机的种类
目前常用的步进电机有三类:
表2-1步进电机分类
类别
结构
步距
力矩
动态性能
反应式步进电动机(VR)
采用高导磁材料构成齿状转子和定子
小
小
较差
永磁式步进电动机(PM)
转子采用多磁极圆筒形的永磁铁,其外侧配置齿状定子吸引和排斥力产生转动
大
大
好
混合步进电动机(HB)
这是PM和VR的复合产品,其转子采用齿状的稀土永磁材料,定子则为齿状的突起结构
小
大
好
2.1.4永磁步进电机的控制原理
在本设计以常用的永磁式步进电机为例,用单片机控制步进电机。
图2-1是CZ-2801型永磁步进电机的外形图,图2-2是该电机的接线图。
图2-1CZ-2801型永磁步进电机外形图图2-2CZ-2801型永磁步进电机接线图
从图中可以看出,电机共有四组线圈,四组线圈的一个端点连在一起引出,这样一共有5根引出线。
要使用步进电机转动,只要轮流给各引出端通电即可。
将COM端标识为C,只要AC、BC或/AC、/BC,轮流加电就能驱动步进电机运转,加电的方式可以有多种,如果将COM端接正电源,那么只要用开关元件(如三极管),将A、B或/A、/B轮流接地。
不难设计出控制电路,因其工作电压为12V,因此用一块开路输出达林顿驱动器(这里用ULN2003,关于ULN2003将在后面介绍)作为驱动,通过P1.0、P1.3来控制各线圈的接通与切断。
开机时,P1.0、P1.3均为高电平,依次将P1.0、P1.2(或P1.1、P1.3反向)切换为低电平即可驱动步进电机运行。
如果要改变电机的转动速度只要改变两次接通之间的时间。
改变转速,只要改变P1.0、P1.2(或P1.1、P1.3反向)轮流变低电平的时间即可达到要求,因为不会影响到其他功能的实现,这个时间可以用延时来实现,。
这里以定时的方式来实现。
下面首先计算一下定时时间。
按要求,最低转速为20转/分,而上述步进电机的步距角为7.5,即每48个脉冲为1周,即在最低转速时,要求为960脉冲/分,相当于62.5ms/脉冲。
而在最高转速时,要求为100转/分,即48000脉冲/分,相当于12.5ms/脉冲。
可以列出下表:
表2-2步进电机转速与定时器定时常数关系
转速
单步时间(ms)
TH0
TL0
20
62.5
1F
0
21
59.52380952
29
B6
22
56.81818182
33
74
23
54.34782609
3C
59
24
52.08333333
44
80
25
50
4C
0
26
48.07692308
52
EC
27
46.2962963
59
55
28
44.64285714
5F
49
…
…
…
…
93
13.44086022
CF
9C
94
13.29787234
D0
20
95
13.15789474
D0
A1
96
13.02083333
D1
20
97
12.88659794
D1
9B
98
12.75510204
D2
14
99
12.62626263
D2
8B
100
12.5
D3
0
表中不仅计算出了TH0和TL0,而且还计算出了在这个定时常数下,真实的定时时间,可以根据这个计算值来估算真实速度与理论速度的误差值。
表中TH0和TL0是根据定时时间算出来的定时初值,这里用到的晶振是12.000M。
有了上述表格,程序就不难实现了,使用定时/计数器T0为定时器,定时时间到后切换输出脚即可。
2.2步进电机控制系统的组成
步进电机控制系统共分为六个模块:
单片机最小系统模块、键盘控制模块、数码显示模块、测速模块、步进电机驱动模块和电源模块。
1.单片机最小系统主要由复位电路和时钟电路组成。
复位电路为单片机系统提供可靠复位,使单片机能正常启动。
时钟电路采用外部时钟方式,保证单片机个功能部件都是以时钟频率为基准,有条不紊地一拍一拍地工作。
2.键盘控制模块包括方向控制键、加速键和减速键、启停键,分别与单片机的P2.0、p2.1、p2.2和P2.3相连。
实现对步进电机的控制。
并且键盘上连接有发光二极管,以指示键盘状态。
3.数码显示模块采用共阴极数码管来动态显示步进电机的实际转动速度。
利用I/O口为数码管的com端提供低电平。
二号单片机的P1口提供数码管的段选信号,P2.6和P2.7控制数码管的位选信号。
4.测速模块采用开关霍尔片对安放在步进电机转盘上的小磁片的磁信号进行检测,步进电机转盘每次带动小磁片经过霍尔片时,其都将有脉冲信号从霍尔片输出。
单片机外部中断口对信号进行采集。
5.步进电机驱动模块选用七个NPN达林顿连接晶体管ULN2003为步进电机提供脉冲信号,驱动步进电机转动。
该模块与单片机的P1.0—P1.3相连。
6.电源模块是通过将市电220V转变为直流12V和直流5V分别供给驱动模块和单片机模块。
2.2.1单片机最小系统
近年,由于CHMOS技术的进步,大大地促进了单片机的CMOS化。
CMOS芯片除了低功耗特性之外,还具有功耗的可控性,使单片机可以工作在功耗精细管理状态。
这也是今后以80C51取代8051为标准MCU芯片的原因。
因为单片机芯片多数是采用CMOS(金属栅氧化物)半导体工艺生产。
CMOS电路的特点是低功耗、高密度、低速度、低价格。
采用双极型半导体工艺的TTL电路速度快,但功耗和芯片面积较大。
随着技术和工艺水平的提高,又出现了HMOS(高密度、高速度MOS)和CHMOS工艺。
CHMOS和HMOS工艺的结合。
目前生产的CHMOS电路已达到LSTTL的速度,传输延迟时间小于2ns,它的综合优势已在于TTL电路。
因而,在单片机领域CMOS正在逐渐取代TTL电路。
单片机是通过内部总线把计算机的各主要部件接为一体,其内部总线包括地址总线、数据总线和控制总线。
其中,地址总线的作用是在进行数据交换时提供地址,CPU通过它们将地址输出到存储器或I/O接口;数据总线的作用是在CPU与存储器或I/O接口之间,或存储器与外设之间交换数据;控制总线包括CPU发出的控制信号线和外部送入CPU的应答信号线等。
考虑到经济和可靠性的要求,本设计中采用AT89C51单片机,它宏晶科技设计生产的单时钟/机器周期(1T)的单片机。
是高速/低功耗/超强抗干扰的新一代8051单片机。
指令代码完全兼容传统8051,但速度快8-12倍。
1.AT89C51单片机参数:
工作电压:
5.5V—3.8V/3.3V
Flash程序存储器字节:
4K
定时器T0、T1:
有
中断优先级:
2
2.AT89C51单片机优点:
超低功耗
超强抗干扰,超强抗静电
输入输出口多,最多有40个I/O
速度快,1个时钟/机器周期,可用低频率晶振
2.2.2键盘控制电路
键盘在单片机应用系统中能实现向单片机输入数据、传送命令等功能,是人工干预单片机的主要手段。
键盘实质是一组按键开关的集合。
键盘所用开关为机械弹性开关,利用了机械触点的合、断作用。
一个电压信号在机械触点的断开、闭合过程中,都会产生抖动,一般为5—10ms;两次抖动之间为稳定的闭合状态,时间由按键动作所决定;第一次抖动前和第二次抖动后为断开状态。
按键的闭合与否,反映在输出电压上就是呈现出高电平或低电平。
通过对输出电平的高低状态的检测,便可确认按键按下与否。
在本设计中,高电平表示按键断开,低电平表示按键闭合状体。
并且,为了能直观形象的表示按键闭合与否,还为每个按键相应增加了发光二极管,按键断开时,发光二极管灭,当有键闭合时,相应的发光二极管变亮。
为了确保单片机对一次按键动作只确认一次按键,必须消除抖动的影响。
消除按键抖动通常采用硬件、软件两种方法。
由于硬件消抖电路设计复杂,本设计中没有采用,在此不再详细叙述;软件消抖适合按键较多的情况,方便简单。
其原理是在第一次检测到有键按下时,执行一段延时10ms的子程序后在确认该键电平是否仍保持闭合状态电平,如果保持闭合状态电平则确认为真正有键按下,从而消除了抖动的影响。
其原理图如图2-3所示:
图2-3键盘控制模块原理图
2.2.3LED数码显示电路
发光二极管LED是一种通电后能发光的半导体器件,其导电性质与普通二极管类似。
LED数码显示器就是由发光二极管组合而成的1种新型显示器件。
在单片机系统中应用非常普遍。
LED数码显示器是1种由LED发光二极管组合显示字符的显示器件。
它使用了8个LED发光二极管,其中7个用于显示字符,1个用于显示小数点。
LED数码显示器有两种连接方法:
(1)共阳极接法。
把发光二极管的阳极连在一起构成公共阳极,使用时公共阳极接+5V,每个发光二极管的阴极通过电阻与输入端相连。
当阴极端输入低电平时,段发光二极管就导通点亮,而输入高电平时则不点亮。
(2)共阴极接法。
把发光二极管的阴极连在一起构成公共阴极,使用时公共阴极接地。
每个发光二极管的阳极通过电阻与输入端相连。
当阳极端输入高电平时,段发光二极管就导通点亮,而输入低电平时则不点亮。
在本设计中所采用的是共阴极LED数码显示器,其内部结构如图2-4所示:
图2-4LED数码管结构图
这里用四位一体数码管SM420361K:
型号:
SM420361K-12P
类别:
4位一体共阴
规格:
长×宽×高-30.1×14.1×7.3mm
管脚标号:
12-9-8-6公共脚、A-11、B-7、C-4D-2、E-1、F-10、G-5、DP-3
在本设计中采用数码管动态显示转速,数码显示电路通过交替向P2.6和P2.7输出低电平,使得与这两个端口连接的数码管公共端交替为低电平,从而为数码管提供导通回路,通过对交替时间的控制实现数码管在视觉上的不间断显示。
通过P1口输出段选信号,控制了数码管显示的内容。
如图2-5所示:
图2-5数码管显示电路
2.2.4测速电路介绍
开关型霍尔传感器的原理及应用
开关型霍尔传感器可分为单稳态和双稳态,内部均有5个部分,即由稳压源、霍尔电势发生器、差分放大器、施密特触发器以及输出级组成。
双稳态传感器具有两组对称的施密特整形电路。
图2-6是单稳态开关集成霍尔元件UGN3020的功能图及输出特性。
图2-6UGN3020功能特性曲线
对于开关型传感器的正值规定是:
用磁铁的S极接近传感器的端面所形成的B值为正值。
由图2-6看出,当B=0时,V0为高电平;当外磁场增至BOP时,输出V0由高电平转为低电平。
外磁场由BOP降至BrP时,输出V0由低电平反向,BrP被称为释放点。
对于UGN3020,BOP=0.022T,BRP=0.0165T,VOL=80~150mV,VOH=4V,工作电压为4.5V~24V。
UGN3020可组成转速计探头。
该探头由霍尔元件UGN3020和磁钢组成测量电路。
将具有10个齿的圆盘固定于被测对象的旋转主轴上。
当圆盘齿经过测量磁路的间隙时,霍尔元件输出高电平,其他时间输出为低电平;这样圆盘每转一周,电路输出10个脉冲,脉冲经过分频后,用频率计即可测出被测对象的实际转速。
本设计采用的测速电路原理图如下图所示:
图2-7测速电路
2.2.5步进电机驱动电路
本系统的设计目的为了高效控制步进电机的转动,因此需要将单片机发出的脉冲转化为步进角度,才能控制步进电机转动,我们在这里采用ULN2003为步进电机提供脉冲信号。
ULN2003七NPN达林顿连接晶体管是低逻辑电平数字电路(如TTL,CMOS或PMOS/NMOS)和大电流高电压要求的灯、继电器、打印机锤和其他类似负载间的接口的理想器件。
广泛用于计算机,工业和消费类产品中。
所有器件有集电极开路输出和用于瞬变抑制的续流箝位二极管。
ULN2003的设计与标准TTL系列兼容。
它的管脚连接图如图2-8所示:
图2-8ULN2003管脚连接图
图2-9ULN2003芯片内部结构
其主要特性为:
表2-3ULN2003主要特性表
极限值(若无其他规定,Tamb=25℃)
参数名称
符号
数值
单位
输入电压
VIN
30
V
输入电流
IIN
25
mA
功耗
PD
1
W
工作环境温度
Topr
-20to+85
℃
贮存温度
Tstg
-55to+150
℃
ULN2003芯片概述与特点:
ULN2003芯片是高耐压、大电流达林顿阵列,由7组达林顿晶体管阵列和相应的电阻网络以及钳位二极管网络构成,具有同时驱动7组负载的能力,为单片双极型大功率高速集成电路。
功率电子电路大多要求具有大电流输出能力,以便于驱动各种类型的负载。
功率驱动电路是功率电子设备输出电路的一个重要组成部分。
ULN2003芯片高压大电流达林顿晶体管阵列产品属于可控大功率器件。
步进电机驱动电路的工作过程是:
首先从P1口输出00000001B,由于单片机与ULN2003连接只用到了P1.0—P1.3,所以ULN2003与单片机连接的四个管脚中每时刻只有一个管脚处于导通状态(采用单拍方式对步进电机控制),其他管脚处于断开状态。
这样就使得与ULN2003连接的步进电机只有一个引出端导通。
该系统驱动原理图如图2-10:
图2-10步进电机驱动原理图
2.2.6电源设计
在此系统中因要用到两路电源,再三考虑购买了一个输出为交流9V(电压表实测电压在12V左右)的适配器,然后通过4个IN4007(图中未标出)搭建的整流桥,分出两路一路引出供驱动器,另一路再经LM7805降为5V,完全符合要求,同时避免了电路设计中电路板上存在的大电源干扰等问题。
电路电源设计如下图所示:
图2-11电源原理图
其中电源端口和LM7805封装图如下图所示:
图2-12电源端口和LM7805封装图
第3章控制系统软件分析与设计
3.1程序设计前期准备
3.1.1程序设计平台
考虑到程序的易读性和简练,程序设计采用C语言。
程序编辑平台采用Keil。
图3-1Keil软件界面
3.1.2程序设计思路
步进电机控制系统的软件需要同时完成读取键盘、处理键盘、控制步进电机转动、控制数码管动态显示等任务,这就必须通过中断技术来实现。
在本设计中,主程序采用查询方式扫描键盘端口,检测按键动作是否发生,若有按键动作则处理键盘,根据按键值修改相应参数值,实现键盘的实时处理功能。
定时器0中断服务程序控制步进电机的转动:
根据当前显示的速度进行键盘手动改变T0定时时间常数,设置TH0和TL0的值,达到对转速精确控制的目的;根据转动方向控制位的值,控制脉冲信号循环移动的方向,达到对转动方向控制的目的。
说明如下:
1.单片机接受键盘信息,改变系统内部变量值。
2.单片机输出脉冲信号,控制步进电机转动。
3.单片机根据步进电机实际转动值,控制数码管显示。
3.2程序流程图
3.2.1主程序流程图
步进电机控制系统的主程序在对整个系统初始化后主要完成读键盘和处理键盘的功能,如图3-2所示:
图3-2步进电机控制系统主程序流程图
系统上电复位后,先调用初始化子程序,对步进电机各端口,相关参数进行初始化,设置T0工作方式控制时间常数。
初始化完成后,步进电机处于停止状态,T0定时器处于关闭状态。
然后循环调用读键盘子程序和键盘处理子程序,等待中断,以便实现步进电机转动控制。
3.2.2读键盘子程序流程图
首先初始化实际键值参数为0FH,然后扫描P2口,与初始值比较,相等则说明没有键按下,不相等则软件消抖,以便确认是否真的有键按下。
延时10ms后再次扫描P2口,第二次与初始值比较,若相等则表明前一次比较不相等是由抖动产生;如果相等则表明确实有键按下。
执行键盘之程序里的指令,将相应的变量值改变,为键盘处理子程序做准备。
图3-3扫描键盘字程序流程图
3.2.3键盘处理子程序流程图
按键处理子程序流程图如图3-3所示:
图3-3键盘处理子程序流程图
步进电机的启停控制通过启停定时器T0来实现,因为定时器T0控制着脉冲信号的输出,关闭定时器T0也就阻止了脉冲信号的输出。
3.2.4电机控制中断程序流程图
定时器中断0服务程序流程图如图3-4所示:
图3-4定时器中断0服务程序流程图
定时器中断0服务程序的中断时间由当前的转速决定。
进入中断程序后,首先要保护现场,再根据当前值设置TH0和TL0的值。
然后判断转动方向控制位的值,如果是0则控制脉冲信号P1.0、P1.2输出,如果是1则控制脉冲信号P1.1、P1.3输出。
最后恢复现场,返回,等待下次中断。
通过用当前转速控制中断时间,控制了脉冲的输出频率,也就到达了控制步进电机转动速度的目的;通过检测方向控制位的电平,选择脉冲信号P1.0、P1.2与P1.1、P1.3间的切换,控制了步进电机各引出端的接通顺序,也就到实现了步进电机转动方向的控制。
各模块控制的详细程序附于最后。
第4章调试与改进
4.1调试与改进
在系统完成后测试系统,检查硬件和软件是否能够协调运行,并对系统出现的情况进行分析,看是否能够达到系统创作之初所设想的效果,如达不到则重新修改系统的硬件结构或者修改软件的程序部分,直到达到设计需要为止。
本系统的设计思路为:
首先从整体上划分出各功能模块,然后硬件和软件同时进行依次完成各个功能模块,最后将各个模块联系起来完成整个系统。
在硬件调试的过程中,遇到了很多问题。
主要有:
1.确定步进电机的使用方法,和控制模式。
此处尤为重要,这是整个系统的基础,也是确定软件是否能控制步进电机思路的开端。
2.键盘设计完成后,在多次运行过程中发现按键是否按下难以直观准确判断,在此处进行改进设计,为每一个按键接上一个发光二极管,当有键按下时,相对应的发光二极管变亮,使得按键动作形象直观。
并以此方法测试步进电机控制程序。
3.向电源插座送入12V直流电源,测量LM7805输出脚对地电压,是否为5V左右,这个电压的测量可以直接在L7805的OUT脚和GND之间完成。
4.单片机应用(电源)注意事项:
在电源两端应该加一个47uF以上的电解电容和一个0.1