二相步进电机控制系统的设计单极性控制1.docx
- 文档编号:30322686
- 上传时间:2023-08-13
- 格式:DOCX
- 页数:29
- 大小:399.47KB
二相步进电机控制系统的设计单极性控制1.docx
《二相步进电机控制系统的设计单极性控制1.docx》由会员分享,可在线阅读,更多相关《二相步进电机控制系统的设计单极性控制1.docx(29页珍藏版)》请在冰豆网上搜索。
二相步进电机控制系统的设计单极性控制1
4.4L298驱动电路设计10
摘要
随着微电子和计算机技术的发展,步进电机的需求量与日俱增,它广泛用于打印机、电动玩具等消费类产品以及数控机床、工业机器人、医疗器械等机电产品中,其在各个国民经济领域都有应用。
研究步进电机的控制系统,对提高控制精度和响应速度、节约能源等都具有重要意义。
本控制系统的设计,由硬件设计和软件设计两部分组成,完成二相步进电机的控制。
其中,硬件设计主要包括单片机系统、按键控制模块、步进电机驱动模块、数码显示模块等功能模块的设计,以及硬件电路在Proteus上的仿真。
软件设计包括主程序以及各个模块的控制程序,最终实现对步进电机转动方向及转动模式(四拍,八拍)的控制,并且将步进电机的步进数动态显示在LED数码管上。
本系统具有智能性、实用性及可靠性的特点。
关键词:
二相步进电机单片机Proteus
二相步进电机控制系统的设计
1设计任务及要求的分析
设计的步进电机控制系统要求有以下功能:
1.二相步进电机采用单极性控制
2.用K0-K2作为通电方式选择键,K0为四相单四拍,K1为四相双四拍,K2为四相八拍
3.用K3作为启动/停止控制键
4.用K4作为方向控制
5.用K5作为加速减速控制
6.用4位LED数码管显示工作步数
7.用3个发光二极管显示状态:
正转时红灯亮,反转时黄灯亮,不转时绿灯亮
本次设计需要对二相步进电机进行单极性控制,使其能在控制下进行正转、反转、停止和四相单四拍、四相双四拍、四相八拍运行,可以通过输出不同的脉冲序列;同时利用数码管和二极管分别显示其工作步数和工作状态。
由于控制功能较为复杂,所以本系统需要采用单片机以及驱动模块进行设计。
2方案比较及认证
2.1驱动模块选择
由于单片机输出电流很小,不能驱动电机的运行,所以需要添加驱动电路。
电机的驱动模块使用芯片L298实现,控制更直接,接线简洁,采用脉冲数据控制逻辑简单,稳定性好。
2.2单片机选型
单片机以其体积小、功能齐全、价格低廉、可靠性高等优点,在各个领域都获得了广泛的应用,在我国,近几年单片机也得到了广泛的应用特别是在工业控制、智能仪表等方面。
MCS-51系列单片机以抗干扰能力强、对环境要求不高、灵活性强等别的系统所不具备的优点被广泛使用。
即使非电子计算机专业人员,通过学习一些专业基础知识以后也能依靠自己的技术力量,来开发所希望的单片机应用系统。
由于本次设计的所要实现的功能并不复杂,鉴于成本考虑,选用便宜而常用的MCS-51系列较为合适。
本次设计采用其中低功耗型80C51单片机。
3系统实现的原理说明
本次课程设计系统以单片机80c51为核心进行设计,单片机与按键、数码管、发光二极管、L298驱动模块相连接,人为操作按键,在程序控制下,单片机将通过驱动模块控制步进电机转动,并使数码管和二极管分别显示步进电机的工作步数和状态。
系统的总体原理框图如下所示:
图3-1系统总体原理框图
本系统以单片机80c51为核心的控制系统,由P1口进行开关按键的设置,具体为:
P1.0接K0四相单四拍通电方式,低电平使电机四相单四拍运转;P1.1接K1四相双四拍通电方式,低电平使电机四相双四拍运转;P1.2接K2四相八拍通电方式,低电平使电机四相八拍运转;P1.3接K3启动/停止开关,高电平为停止,低电平为启动;P1.4接K4正/反转开关,高电平为反转,低电平为正转;P1.5接K5加速控制,低电平使电机运转速度加快;P1.6接K6减速控制,低电平使电机运转速度减慢。
P2口与P0口外接4位LED数码管,显示步进步数,具体接线方式已在前面叙述,通过控制P2口的电平信号,达到片选的目的,进而实现4位数值的显示。
P0口作为输出口外接负载。
P3外接驱动电路L298的4个输入端,具体为P3.0接IN1,P3.1接IN2,P3.2接IN3,P3.3接IN4。
这样即可通过控制单片机的P2口输出电平来实现二相步进电机的启动,停止,正反转以及单四拍,双四拍,八拍运转。
另外P3.4接绿色发光二极管,使其在电机停转时亮;P3.5接红色放光二极管,使其在电机正转时亮;P3.6接黄色发光二极管,使其在电机反转时亮。
具体工作过程需通过对单片机编程来实现。
电路图为附录1.
4硬件设计说明
4.1单片机系统原理分析
80C51是一种带4K字节闪烁可编程可擦除只读存储器的低电压、高性能CMOS8位微处理器,俗称单片机.
该系列单片机由先进CMOS工艺制造,并带有非易失性Flash程序存储器,全部支持12时钟和6时钟操作,P89C51X2和P89C52X2/54X2/58X2分别包含128字节和256字节RAM、32条I/O口线、3个16位定时/计数器、6输入4优先级嵌套中断结构、1个串行I/O口、可用于多机通信I/O扩展或全双工UART以及片内振荡器和时钟电路。
其结构特点如下:
1.8位CPU
2.片内振荡器和时钟电路;)
3.32根I/O线)
4.外部存贮器寻址范围ROM、RAM64K
5.2个16位的定时器/计数器
6.5个中断源,两个中断优先级
7.全双工串行口
8.布尔处理器
图4-180C51单片机管脚图
单片机管脚如图4-1所示,下面对其各个管脚进行必要的说明。
P0、P1、P2、P3口的电平与CMOS和TTL电平兼容。
P0口的每一位口线可以驱动8个LSTTL负载。
在作为通用I/O口时,由于输出驱动电路是开漏方式,由集电极开路(OC门)电路或漏极开路电路驱动时需外接上拉电阻;当作为地址/数据总线使用时,口线输出不是开漏的,无须外接上拉电阻。
P1、P2、P3口的每一位能驱动4个LSTTL负载。
它们的输出驱动电路设有内部上拉电阻,所以可以方便地由集电极开路(OC门)电路或漏极开路电路所驱动,而无须外接上拉电阻。
当CPU不对P3口进行字节或位寻址时,内部硬件自动将口锁存器的Q端置1。
这时,P3口作为第二功能使用。
P3.0:
RXD(串行口输入);
P3.1:
TXD(串行口输出);
P3.2:
外部中断0输入;
P3.3:
外部中断1输入;
P3.4:
T0(定时器0的外部输入);
P3.5:
T1(定时器1的外部输出);
P3.6:
(片外数据存储器“写”选通控制输出);
P3.7:
(片外数据存储器“读”选通控制输出)。
EA/VPP :
访问程序存储器控制信号,当其为低电平时,对ROM的读操作限定在外部的程序存储器,当其为高电平时,对ROM的读操作是从内部存储器开始的,并可延至外部程序存储器。
ALE/PROG :
编程脉冲
PSEN :
外部程序存储器读选通信号,在读外部ROM时PSEN是低电平有效,以实现对ROM的读操作。
RST/VPD :
复位信号,当输入信号延续2个周期以上的高电平有效,用以完成单片机复位初始化操作。
XTAL :
时钟晶振输入端。
4.2二相步进电机工作原理分析
二相步进机是本次设计中试关键的一部分。
二相步进机的型号有很多,按接线来分,大体上,有五线和六线的。
设计用的是六线的。
步进电机是一种将电脉冲转化为角位移的执行机构。
当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度(称为“步距角”),它的旋转是以固定的角度一步一步运行的。
可以通过控制脉冲个数来控制角位移量,从而达到准确定位的目的;同时可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。
本次课设所使用的二相步进电机需要采用单极性的接法。
单极性则是指步进电机线圈中电流的流动方向是单向的。
单极性驱动电路可以六线式的二相步进电机。
对于二相六线式步进电机而言,2个绕组的中间抽头Vdd1和Vdd2都接高电平。
根据步进电机的工作原理,当控制器给驱动器发出脉冲信号时,驱动器经过功率放大后,电机绕组通电的顺序为
其4个状态按顺序周而复始进行变化,电机转动;若通电时序就变为
时,电机就逆向转动。
图4-2二相步进电机原理图
任务要求需要对二相步进电机进行四相单四拍,四相双四拍和四相八拍的控制。
其三者的区别在于通电时序的不一样,四相单四拍的通电方式为:
,而四相双四拍的通电方式为:
四相八拍需要在此基础上进行细分,在中间插入,其通电方式为:
。
由对应的通电方式,在结合图3-2,便可以得到对应的单片机管脚P3.0,P3.1,P3.2,P3.3的电平变化情况,绘制出步进电机的四相单四拍,四相双四拍,四相八拍控制方式表格。
如下所示:
表4-1步进电机四相单四拍控制通电方式
时序
单片机管脚位
通电的线圈
对应二进制数
转换16进制数
P1.3
P1.2
P1.1
P1.0
1
0
0
0
1
0001
01H
2
0
1
0
0
0100
04H
3
0
0
1
0
0010
02H
4
1
0
0
0
1000
08H
表4-2步进电机四相双四拍控制通电方式
时序
单片机管脚位
通电的线圈
对应二进制数
转换16进制数
P1.3
P1.2
P1.1
P1.0
1
0
1
0
1
0101
05H
2
0
1
1
0
0110
06H
3
1
0
1
0
1010
0AH
4
1
0
0
1
1001
09H
表4-3步进电机四相八拍控制通电方式
时序
单片机管脚位
通电的线圈
对应二进制数
转换16进制数
P1.3
P1.2
P1.1
P1.0
1
0
0
0
1
0001
01H
2
0
1
0
1
1010
05H
3
0
1
0
0
1000
04H
4
0
1
1
0
1001
06H
5
0
0
1
0
0001
02H
6
1
0
1
0
0101
0AH
7
1
0
0
0
0100
08H
8
1
0
0
1
0110
09H
由上述所得表格,便可以通过控制单片机I/O口输出高低电平变化来实现步进电机的四拍,八拍运转。
在编写程序时,设置好控制字,在I/O口做循环输出,便实现了单片机对步进电机的控制。
由于单片机单独代负载能力较差,步进电机与单片机之间需要接入步进电机的驱动电路。
4.3步进电机的一些基本参数
电机固有步距角:
它表示控制系统每发一个步进脉冲信号,电机所转动的角度。
电机出厂时给出了一个步距角的值,如86BYG250A型电机给出的值为0.9°/1.8°(表示半步工作时为0.9°、整步工作时为1.8°),这个步距角可以称之为“电机固有步距角”,它不一定是电机实际工作时的真正步距角,真正的步距角和驱动器有关。
步进电机的相数:
是指电机内部的线圈组数,目前常用的有二相、三相、四相、五相步进电机。
电机相数不同,其步距角也不同,一般二相电机的步距角为0.9°/1.8°、三相的为0.75°/1.5°、五相的为0.36°/0.72°。
在没有细分驱动器时,用户主要靠选择不同相数的步进电机来满足自己步距角的要求。
如果使用细分驱动器,则‘相数’将变得没有意义,用户只需在驱动器上改变细分数,就可以改变步距角。
保持转矩(HOLDINGTORQUE):
是指步进电机通电但没有转动时,定子锁住转子的力矩。
它是步进电机最重要的参数之一,通常步进电机在低速时的力矩接近保持转矩。
由于步进电机的输出力矩随速度的增大而不断衰减,输出功率也随速度的增大而变化,所以保持转矩就成为了衡量步进电机最重要的参数之一。
比如,当人们说2N.m的步进电机,在没有特殊说明的情况下是指保持转矩为2N.m的步进电机。
DETENTTORQUE:
是指步进电机没有通电的情况下,定子锁住转子的力矩。
DETENTTORQUE在国内没有统一的翻译方式,容易使大家产生误解;由于反应式步进电机的转子不是永磁材料,所以它没有DETENTTORQUE。
4.4L298驱动电路设计
由课题任务要求可知,二相步进电机需采用单极性控制,故考虑使用芯片L298来驱动步进电机。
L298N为双全桥步进电机专用驱动芯片,内部包含4信道逻辑驱动电路,是一种二相和四相步进电机的专用驱动器,可同时驱动2个二相或1个四相步进电机,内含二个H-Bridge的高电压、大电流双全桥式驱动器,接收标准TTL逻辑准位信号,可驱动46V、2A以下的步进电机,且可以直接透过电源来调节输出电压;此芯片可直接由单片机的IO端口来提供模拟时序信号。
在接入步进电机时,OUTl,OUT2,OUT3,OUT4接二相步进电机的
,二相步进电机的对应管脚以图4-5为准,input1~input4接单片机的I/O口,用来控制单片机的正反转以及四相单四拍,四相双四拍,四相八拍通电方式。
4.5四位LED数码管显示设计
任务要求需采用4位LED数码管显示工作步数,通过查阅相关资料,在仿真时采用型号7SEG-MPX4-CA共阳极数码管显示。
其PROTUS仿真图如图4-6所示:
图4-3数码管显示仿真图
单片机的P0口接数码管输入管脚ABCDEFG以及DP(可以不用,直接拉高),P2口接4位数码管的片选端口1234,7段数码管对应的显示数值与输入信号的关系可以由下表得到。
表4-4七段数码管显示功能表
单片机管脚输入
显示
十六进制
P0.0
P0.1
P0.2
P0.3
P0.4
P0.5
P0.6
A
B
C
D
E
F
G
0
0
0
0
0
0
1
O
C0H
1
0
0
1
1
1
1
1
F9H
0
0
1
0
0
1
0
2
A4H
0
0
0
0
1
1
0
3
B0H
1
0
0
1
1
0
0
4
99H
0
1
0
0
1
0
0
5
92H
1
1
0
0
0
0
0
6
82H
0
0
0
1
1
1
1
7
F8H
0
0
0
0
0
0
0
8
80H
0
0
0
0
1
0
0
9
90H
由上表可以得到显示数字与单片机管脚输入信号的对应关系。
只需要控制单片机的P0口输出信号即可显示数字,在程序设计中,定义7段显示数组为Seg[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}
即可使数码管显示数字。
5软件设计说明
5.1总体流程分析与设计
本设计包括硬件和软件两部分,设计思想是化整为零和化零为整,即电路模块化,然后再整合模块功能作用,达到要求的目的。
把原来复杂的电路分成一个个简单的模块,这样化繁为简,可以逐个击破,便于设计编程;当把分开的每一个模块都搞定,设计出来时,再通过单片机这个核心部分,将每个模块糅合在一起。
例如本设计中,可以把步进机的控制化成功能键输入部分,显示部分和二相步进机驱动电路部分。
软件模块的分析需要根据硬件电路的设计来进行,基于上述硬件电路的分析设计,对整个程序流程需要有个整体的思考与判断。
由硬件电路的设计可以看出,程序需要实现以下几个功能:
通过开关按键实现电机的启用与停止,正转与反转,以及四拍,八拍的运行方式;由4位LED数码管实现步进步数的显示;3个发光二极管显示电机的状态。
程序设计的总体思想是单片机通过判断按键输入电平变化从而选择正反转以及四八拍的工作方式。
主程序流程图如图5-1所示。
图5-1主程序流程图
5.2设置电机转动模式流程分析与设计
由硬件电路可知,电机的转动由开关K0、K1、K2、K3、K4、K5、K6来控制,我们通过80K51分别读入这六位控制数据,存放在变量Temp中。
K0按下为四相单四拍,K1按下为四相双四拍,K2按下为四相八拍,K3按下为启动,K4按下为正转抬起为反转。
设置转动模式流程图如图5-2所示。
图5-2设置电机转动模式流程图
5.3步进电机四相单四拍,四相双四拍,四相八拍流程分析与设计
步进电机通电方式的控制字被放置在几个变量数组中,通关过转动方式选择部分程序决定转动方式后,把相应转动方式所对应的数组中相应步数对应的值赋给变量P3。
变量Flag控制拍数循环,当Flag为4(四拍)或8(八拍)时,Flag值清零,重新从对应数组开头选择通电方式赋值。
变量Step用来记录步数,电机每转一下,Step值加一。
电机转动部分流程图如图5-3所示。
图5-3电机单四拍双四拍八拍正反转流程图
5.4显示模块流程分析与设计
有硬件部分分析可知,Led数码管有4个管脚读入片选信号,8个管脚读入控制信号。
本部分程序首先要对当前的步数值进行位数分离,将个、十、百、千位分别提取出来,然后通过片选信号选择位数读入控制字,依次进行显示。
由于单片机的计算过程非常快,我们还设置了延时程序,所以看起来各位是同时显示的。
数码管显示步数流程图图5-4所示。
图5-4数码管显示步数流程图
5.5步进电机速度控制分析与设计
通过速度控制按键改变速度控制变量Speed,通过定时器0对电机步进控制脉冲之间进行延时,延时到Speed时,Delay=1表示延时时间到。
6调试记录及结果分析
6.1总体硬件仿真设计
硬件的仿真需要将软件与硬件结合起来才能真正完成整个设计工作。
我们采用的是PROTUS仿真软件得到了系统的硬件图,参见附录1;使用keiluVision4软件的集成环境调试程序,程序代码请参见附录,在该集成环境下,创建一工程,将程序装入该工程下,调试运行无误后,该工程会自动生成.hex文件,在PROTUS仿真环境里,在单片机中载入该文件,这样便实现了单片机程序的载入。
在系统完成后测试系统,检查硬件和软件是否能够协调运行,并对系统出现的情况进行分析,看是否能够达到系统创作之初所设想的效果,如达不到则重新修改系统的硬件结构或者修改软件的程序部分,直到达到设计需要为止。
本系统的设计思路为:
首先从整体上划分出各功能模块,然后硬件和软件同时进行依次完成各个功能模块,最后将各个模块联系起来完成整个系统。
具体工作过程需通过对单片机编程来实现。
6.2调试与仿真结果分析
在硬件调试的过程中,遇到了很多问题。
主要有:
k5处的开关需要一个单刀三掷开关,可是软件中找不到合适的,就先用了个稍微麻烦的开关代替:
在步进电机与驱动电路的连接中,需要准确的接好各个管脚,因为程序里的控制字对应着这些管脚电平的变化,不能随便接,单片机的输出口与驱动电路的输出口也需要一一对应,否则电机无法按正常的设计运转。
经过调试以及对仿真电路图及程序的改正,系统得以实现任务的要求,对步进电机进行控制,仿真成功。
图6-1为电机正转时的仿真图,电机顺时针旋转,红灯亮。
图6-2为电机反转时的仿真图,电机逆时针旋转,黄灯亮。
图6-3为电机停止时仿真图,绿灯亮。
图6-1步进电机正传仿真图
图6-2步进电机反转仿真图
由仿真图可见,此系统实现了对步进电机的正反转以及停止的控制,能够利用数码管显示步数,通过发光二级管显示步进电机运行状态,此系统设计合理,满足设计要求。
小结与心得体会
本次设计,设计涉及的内容比较广,如数字电路技术部分,微形计算机控制技术尤其得数字控制技术部分和步进机结构原理工作方式以及数控中等部分,也有学过的80c51单片机。
这些内容,不是单一存在,而是互相渗透牵连万千的。
在了解每部分内容的同时,还要思考它们的联系。
这样才能收到效果。
如步进机,我们了解它的工作原理,知道它是是一种将电脉冲转化为角位移的执行机构。
当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度(称为“步距角”),它的旋转是以固定的角度一步一步运行的,而它需要的脉冲从哪来呢,这就涉及单片机了,可以通过单片机设定脉冲输给,单片机还可以通过脉冲频率设定来控制步进机的转动频率即可以控制转速。
还有LED的工作,我们可以再数字电路技术里学习到它显示的原理等等,这些知识单一存在时没意义的,所以我们学习应该会联系。
通过本次设计令我在回忆复习老师课堂讲的理论知识的同时,也进一步达到了学以致用的目的,将课本所学的知识用到了实践上,结合软件和硬件进行,充分锻炼了自己的理论能力和动手能力。
总的来说,设计过程也遇到了种种困难,但在对硬件原理结构的学习中,通过找资料,思考锻炼了自学的能力;在编程时遇到困难以也学会了如何利用编译软件进行调试,达到最终期望的结果,得到编程训练;不懂时,通过同学间的讨论交流,学习借鉴也达到了相互合作的目的,完成任务,增进了同学间的合作友谊。
有遇到了种种困难的苦闷,也有遇难而上,解决困难时的喜悦,也锻炼了我的耐心与坚持,令我受益匪浅.
参考文献
[1]于海生.[计算机控制技术》.北京:
机械工业出版社.2007年
[2]陈冬云.《ATmega128单片机原理与开发指导》.北京:
机械工业出版社.2005年
[3]王彦平.《RPOTEL99电路设计指南》.北京:
清华大学出版社.2000年
[4]沈精虎.《Protel99入门与提高》.北京:
人民邮电出版社.2007年
[5]吴金戌.《8051单片机时间与应用》.北京:
清华大学出版社,2003年
[6]胡辉.《单片机原理及应用设计》.北京:
中国水利水电出版社.2007年
附录1:
附录2:
/***********************************************************/
/*步进电机程序*/
/*P1^0为四相单四拍,P1^1为四相双四拍,P1^2为四相八拍*/
/*P1^3为启动/停止控制、P1^4方向控制、P1^5加速、P1^6减速*/
/*用4位LED数码管显示工作步数。
*/
/*用3个发光二极管显示状态*/
/*正转时红灯亮,反转时黄灯亮,不转时绿灯亮*/
/*编写人:
曹媛媛*/
/*时间:
2014-07-03*/
/***********************************************************/
#include
#defineucharunsignedchar
#defineuintunsignedint
#defineSegDataP0//数码管数据口
#defineKeyDataP1//按键控制数据口
#defineMotorDataP3//电机控制数据口
sbitWela1=P2^0;//数码管位选1
sbitWela2=P2^1;//数码管位选2
sbitWela3=P2^2;//数码管位选3
sbitWela4=P2^3;//数码管位选4
sbitLedGreen=P3^4;//控制绿灯-停止
ucharPositiveSingleFour[]={0xd1,0xd4,0xd2,0xd8};//步进电机正相
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 步进 电机 控制系统 设计 极性 控制
![提示](https://static.bdocx.com/images/bang_tan.gif)