步进电机控制-C程序及仿真
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
步进电机控制-C程序及仿真
步进电机
步进电机和普通电动机不同之处是步进电机接受脉冲信号的控制。
步进电机可以直接接受数字信号,不需要进行数字与模拟量的转换,具有高精度快速启停能力。
在非超载的情况下,步进电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,即给电机加一个脉冲信号,电机则转过一个步距角。
这一线性关系的存在,加上步进电机只有周期性的误差而无累积误差等特点。
使得在速度、位置等控制领域用步进电机来控制变的非常的简单。
一、步进电机的结构和工作原理
步进电机是一种专门用于位置和速度精确控制的特种电机。
步进电机的最大特点是其“数字性”,对于微电脑发过来的每一个脉冲信号,步进电机在其驱动器的推动下运转一个固定角度(简称一步),如下图所示。
如接收到一串脉冲步进电机将连续运转一段相应距离。
同时可通过控制脉冲频率,直接对电机转速进行控制。
步进电机在构造上有三种主要类型:反应式(Variable Reluctance,VR)、永磁式(Permanent Magnet,PM)和混合式(Hybrid Stepping,HS)。
反应式
定子上有绕组、转子由软磁材料组成。
结构简单、成本低、步距角小,可达1.2°、但动态性能差、效率低、发热大,可靠性难保证。
永磁式
永磁式步进电机的转子用永磁材料制成,转子的极数与定子的极数相同。
其特点是动态性能好、输出力矩大,但这种电机精度差,步矩角大(一般为7.5°或15°)。
混合式
混合式步进电机综合了反应式和永磁式的优点,其定子上有多相绕组、转子上采用永磁材料,转子和定子上均有多个小齿以提高步矩精度。
其特点是输出力矩大、动态性能好,步矩角小,但结构复杂、成本相对较高。
混合型,因具有高精度、高转矩、微小步进角和数个优异的特征,所以刚开始在OA 关系,其它的分类上也大幅的被使用,特别是在生产量上大半是使用在盘片记忆关系的磁
头转送上。
按定子上绕组来分,共有二相、三相和五相等系列。
单定子径向分相反应式步进电机结构原理图
最受欢迎的是两相混合式步进电机,约占 97% 以上的市场份额,其原因是性价比高,配上细分驱动器后效果良好。
该种电机的基本步矩角为1.8°/步,配上半步驱动器后,步矩角减少为0.9°,配上细分驱动器后其步矩角可细分达256倍(0.007°)。
由于摩擦力和制造精度等原因,实际控制精度略低。
同一步进电机可配不同细分的驱动器以改变精度和效果。
五相混合式步进电机应用也比较广泛,其步进角一般为 0.72 度。
1. 基本结构
2. 工作原理
简单的讲,步进电机驱动器根据外来的脉冲,通过其内部的逻辑电路控制步进电机的绕组按一定的次序正反通电,从而实现其运转。
以两相1.8度步进电机为例,其主要分为4线(双极性),6线(单极性)两种方式:
4线(双极性)电机,当其绕组的通电方向顺序按照AC->BD->CA->DB 四个状态周而复始进行变化,每变化一次,电机
运转一步,即1.8度。
6线(单极性)电机,当其绕组的通电方向顺序按照OA->OB->OC->OD 四个状态周而复始进行变化,每变化一次,电机运转一步,即1.8度。
二、步进电机的术语
1.相数:产生不同对极N、S 磁场的激磁线圈对数,是指电机内部的线圈组数,目前常用的有二相、三相、四相、五相步进电机。
电机相数不同,其步距角也不同,一般二相电机的步距角为0.9°/1.8°、三相的为0.75°/1.5°、五相的为0.36°/0.72°。
用户主要靠选择不同相数的步进电机来满足自己步距角的要求。
目前应用最广泛的是两相和四相,四相电机一般用作两相,五相的成本较高。
2.拍数:完成一个磁场周期性变化所需脉冲数或导电状态用n 表示,或指电机转过一个齿距角所需脉冲数,以四相电机为例,有四相四拍运行方式即AB-BC-CD-DA-AB,四相八拍运行方式即A-AB-B-BC-C-CD-D-DA-A.
3. 步:当某组绕组通电时,每来一个脉冲电压,如果这时定子的小齿与转子没有对齐,则在磁场的作用下转子将转动一个步距角(称为一步),使转子齿与定子齿对齐,从而使步进电机向前“走”一步。
三、步进电机工作过程
1.脉冲信号的产生:
脉冲信号一般由CPU或单片机产生的,一般脉冲信号的比例为0.3-0.4左右,电机转速越高,比例则越大。
微处理器
以四相步进电机为例,四相电机工作方式有二种,四相四步为AB-BC-CD-DA;四相八步为AB-B-BC-C-CD-D-AB。
2.步进电机运转原理
如图为四相(实际为2相)式步进电机的基本构造图。
中间转子由永久磁铁所构成,左边为N极,另一边为S极。
定子有四组线圈,分别为L1、L2、L3及L4,各线圈的C 端共接电源正极,另一端经由开
关接在电源的负极,在看图8。
当把开关S1按下,则线圈A通入电流,产生N极磁场,因为磁场同性相斥、异性相吸,使转子的S极被A极吸引过来。
其次,放掉开关S1,并且立刻按下开关S2,则A 极的磁场消失,B极产生磁场,把转子的S极吸引过来,转子随着顺时针方向90度。
像这样依次让定子的四个极通入电流,就可以使转子不停的旋转。
图8 单极激磁等效驱动电路
3.步进马达的激磁方式
步进马达依定子线圈的相数不同可分成二相、四相及五相式,小型步进马达以二相式较为普遍。
单极性型(unipolar) :定子磁极极性为同一方向,如可变磁阻式步进马达,磁极线圈只有一组,所加的激磁电流为固定方向,因此单极性步进马达所需的电源较简单。
单极性驱动电路使用四只晶体管来驱动步进电机的两组相位,电机结构则如图9所示包含两组带有中间抽头的线圈,整个电机共有六条线与外界连接-图9。
这类电机有时又称为四相电机,但这种称呼容易令人区分不了又不正确,因为它其实只有两个相位,精确的说法应是双相位六线式步进电机。
六线式步进电机虽又称为单极性步进电机,实际上却能同时使用单极性或双极性驱动电路。
单极性二相步进电机驱动电路
双极性型(bipolar) :定子磁极极性为两个方向,如永久磁铁式步进马达,其转子的极性和定子磁极极性有交互变化的需要。
单一激磁线圈时其激磁方向为正负交替变化,两组磁极线圈时,一组正向激磁,另一组负向激磁,两组交替变化,使定子磁极极性变化。
以双极方式运用,其电源较为复杂。
双极性步进电机的驱动电路则如图2所示,它会使用八只晶体管来驱动两组相位。
双极性驱动电路可以同时驱动四线式或六线式步进电机,
虽然四线式电机只能使用双极性驱动电路,它却能大幅降低量产型应用的成本。
双极性步进电机驱动电路的晶体管数目是单极性驱动电路的两倍,其中四颗下端晶体管通常是由微控制器直接驱动,上端晶体管则需要成本较高的上端驱动电路。
双极性驱动电路的晶体管只需承受电机电压,所以它不像单极性驱动电路一样需要箝位电路。
双极性步进电机驱动电路
二相5线/6线步进电机内部接线图
五、步进电机的结构及控制
从结构上看,步进电机分为三相、四相、五相等类型。
以三相为例。
三相反应式步进电动机工作原理图
三相步进电机定子上有6个磁极, 线圈绕过相互正对的两个磁极构成一相,共有A—A、B—B和C—C三相。
转子是4个均匀分布的齿。
(1) 换相顺序的控制
步进电机通电换相这一过程称为脉冲分配。
以三相步进电机为例,电流脉冲的施加共有三种方式:
①单相三拍方式------按单相绕组施加电流脉冲
每次通电时仅有一相绕组通电,且每经过3 次切换控制绕组的通电状态为一循环。
②双相三拍方式-----按双相绕组施加电流脉冲
每个状态均为两个控制绕组同时通电,且每次切换电时,总有一相绕组处于通电状态,故避免了失步和振荡现象。
③三相六拍方式------单相绕组和双相绕组交替施加电流脉冲
首先A 相通电,而后再接通B 相绕组(这时A 相不断开) 即AB 两绕组同时通电;此后断开A 相绕组,B 相单独通电,依此规律循环往复. 这种方式需经过6 个切换才能完成一个循环。
(2) 步进电机的转向控制
如果给定工作方式正序换相通电,步进电机正转。
若步进电机的励磁方式为三相六拍,即A - AB- B - BC - C - CA - A。
如果按反序通电换相,即A- AC - C - CB - B - BA - A ,则电机就反转。
其他方式情况类似。
(3) 步进电机的速度控制
如果给步进电机发一个控制脉冲,它就转一步,再发一个脉冲,它会再转一步。
2 个脉冲的间隔越短,步进电机就转得越快。
调整送给步进电机的脉冲频率,就可以对步进电机进行调速,即控制脉冲的频率来控制电机的转速和加速度。
四、单片机控制步进电机的任务
系统软件程序功能的主要任务是控制步进电机的启动、按顺序发出控制命令、判断步进电机是否到达极限位置、控制步进电机的转向和运行速度的变化等。
一般数字电路的信号能量远远不足以驱动步进电机,必须要有一个与之匹配的驱动电路来驱动步进电机。
由L297、L298 组成的步进电机驱动应用电路如图5所示,该电路适用于二相双极性步进电机或四相单极性步进电机, 最高电压46 V, 每相电流可达2 A。
用2片L298和1片L297配合使用,可驱动更大功率的二相步进电机。
五、单片机控制步进电机的控制字
以三相步进电机为例。
①单相三拍方式
其状态表见表l。
其中“1”代表高电平,表示驱动的磁极绕组通电;“0”代表低电平,表示驱动的磁极绕组不通电。
表1 三相步进电机环形分配器存储状态表
状态字控制字励磁状态
0001H 0001 A
0002H 0010 B
0004H 0100 C
将01 H 送到P1 口,表示A 相通电,其余相不通电,使步进电机前进一个步距角。
可见通过改变状态表中的内容,就可以实现不同的工作方式。
②双相三拍方式
假定以8051的P1口线接步进电机的绕组,输出控制电流脉冲,其中P1.0接A,P1.1接B,P1.2接C。
控制字如下表:
③三相六拍方式
表1列出了步进电机工作在三相六拍时的控制字。
从中可以看出,步进电机第一个控制字数据为01H,从上到下输出控制字时,电机正转,自下而上输出控制字数据时,电机反转。
步进电机运行一拍的时间决定了步进电机的转速。
在输出一个控制字后加入一定的延时时间,即可控制步进电机的转速。
表1 三相六拍步进电机控制字
④另一种三相六拍步进电机控制字
⑤四相四拍步进电机控制字
⑥四相步进电机八拍控制字
//四相八拍正转控制字
uchar code forward[ ]= {0x81, 0x85, 0x84, 0x86, 0x82, 0x8A , 0x88, 0x89, 0x80};
//四相八拍反转控制字
uchar code backward[ ]= {0x89, 0x88, 0x8A , 0x82, 0x86, 0x84, 0x85, 0x81, 0x80};
******
Q:
步进电机驱动程序中的正反转控制字怎么得到的?
比如:
三相步进电机的三相六拍工作方式,正转的绕组通电顺序:A、AB、B、BC、C、CA、A,反转的通电顺序:A、AC、C、CB、B、BA、A。
我用PA0,PA1,PA2分别作为A\B\C的输入,
那么这些控制字怎么得到出来的?
const char zhzhuan[7] ={0x06,0x04,0x05,0x01,0x03,0x02,0x00};
const char fanzhuan[7]={0x06,0x02,0x03,0x01,0x05,0x04,0x00};
A:
zhzhuan:
A A
B B B
C C CA 停
110 100 101 001 011 010 000
fanzhuan:
A AC C C
B B BA 停
110 010 011 001 101 100 000
步进电机控制工作原理
沈阳航空航天大学
课程设计
(论文)
题目:基于单片机和proteus的步进电机控制
班级 *******
学号 ************
学生姓名 X X X
指导教师 X X X
目录
0. 前言 (1)
1. 电路基本理论 (1)
2. 方案设计 (1)
3. 硬件电路的工作原理 (2)
3.1步进电机模块 (2)
3.2 控制模块 (3)
3.3 LCD显示模块 (3)
4. 软件编程 (3)
4.1 程序流程图 (3)
4.2 MCS-51单片机引脚功能 (4)
4.3 源程序 (5)
5. 系统调试和结果分析 (8)
5.1 电机正转运行 (8)
5.2 电机反转运行 (9)
5.3 电机停止转动 (10)
6. 结论及进一步设想 (11)
参考文献....................................................................................................... 错误!未定义书签。
附录 1 元件清单........................................................................................ 错误!未定义书签。
课设体会....................................................................................................... 错误!未定义书签。
基于单片机和proteus的步进电机控制
*** 沈阳航空航天大学自动化学院
0. 前言
步进电机是一种将电脉冲转变为角位移的执行机构,通俗一点讲:
当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度。
可通过控制脉冲数来控制角位移量,从而达到准确的定位目的,也可通过控制脉冲的频率来控制电机的转速和加速度;从而达到调速的目的。
本文通过对步进电机的软件设计和硬件设计包括步进电机的结构、原理及应用,根据原理和硬件的设计利用c语言编写程序,经过反复运行和调试,实现单片机对步进电机的控制。
1. 电路基本理论
步进电机是机电控制中一种常用的执行机构,它的用途是将电脉冲转化为角位移,它的的驱动电路根据控制信号工作,控制信号由单片机产生。
当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度,控制换相顺序,即通电控制脉冲必须严格按照一定顺序分别控制各相的通断。
通过控制脉冲个数即可以控制角位移量,从而达到准确定位的目的。
控制步进电机的转向,即给定工作方式正序换相通电,步进电机正转,若按反序通电换相,则电机就反转。
控制步进电机的速度,即给步进电机发一个控制脉冲,它就转一步,再发一个脉冲,它会再转一步,两个脉冲的间隔越短,步进电机就转得越快。
同时通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。
2. 方案设计
基于单片机和proteus的步进电机控制电路的基本组成如图1所示。
控制台单片机步进电机
LED显示器
图1 基于单片机和proteus的步进电机控制电路的原理框图
根据设计要求,采用的方案如下。
硬件部分实现电机转动和速度显示功能,包括控制
开关模块;电机转动模块和速度显示模块。
软件部分实现对步进电机的控制功能,主要设计思想通过控制台控制程序的开关来控制电机的转动,由电机反馈回来的数据经单片机控制显示器显示数据.。
3. 硬件电路的工作原理
3.1步进电机模块(如图2所示)
图2 步进电机
功能:单片机输出的程序通过转换器和电机驱动器给步进电机一个脉冲信号,使步进电机实现正转与反转。
3.2 控制模块(如图3所示)
图3 控制模块
功能:通过控制台实现对单片机程序的开与关。
3.3 LED显示模块(如图4所示)
图4 LED显示器
功能:通过单片机输出的电机反馈信号使LED显示器显示出步进电机的转动状态。
4.软件编程
4.1 程序流程图:(如图5所示)
图5:程序流程图
4.2 MCS-51单片机引脚功能:(如图6所示)
图6:单片机引脚图
1 电源线:
VCC:+5 V电源。
VSS:地线。
2 RST:复位信号线。
当输入的复位信号延续两个机器周期以上的高电平时即为有效,用以完成单片机的复位初始化操作。
3 信号引脚介绍
开始
按键
判断按键
If(P3_5==0) If(P3_6==0) If(P3_7==0) If(P3_0==0) If(P3_1==0) 正转加速
反转停止减速
显示转动方式
P0.0 ~ P0.7: P0口8位双向口线。
P1.0 ~ P1.7 :P1口8位双向口线。
P2.0 ~ P2.7 :P2口8位双向口线。
P3.0 ~ P3.7 :P3口8位双向口线。
4 XTAL1和XTAL2:外接晶振引脚。
当使用外部振荡器时,外部振荡信号应直接加到XTAL1,而XTAL2悬空。
5 控制引脚:
ALE/-PROG、-PSEN、-EA/Vpp组成了MSC-51的控制总线。
(1) -EA/Vpp(31脚):外部程序存储器地址允许输入端。
第二功能:固化编程电压输入端。
(2) ALE/-PROG(30脚):地址锁存允许信号端。
第二功能:编程脉冲输入端。
(3) -PSEN(29脚):程序存储允许输出信号端。
4.3 源程序:
#include
#define uc unsigned char
#define ui unsigned int
sbit KEY=P3^3;
sbit P1_0=P1^0;
sbit P3_0=P3^0;
sbit P3_1=P3^1;
sbit P3_5=P3^5;
sbit P3_6=P3^6;
sbit P3_7=P3^7;
uc Flag;
uc code fan[]={0x01,0x03,0x02,0x06,0x04,0x0c,0x08,0x09};
uc code zheng[]={0x09,0x08,0x0c,0x04,0x06,0x02,0x03,0x01};
ui speed=1000,time;
void delay(ui t)
{
while(t--);
}
void xianshi(uc f) //显示转向{
P1_0=0;P0=f;
delay(5);
}
void Speedup()//加速
{
time=speed;
time=time-100;
if(time<100)
time=100;
}
void Speeddown()//减速
{
time=speed;
time=time+100;
if(time>2000)
time=2000;
}
void main()
{
uc i;
EX1=1; //外部中断1开
IT1=1; //边沿触发
EA=1; //全局中断开。