基于C语言的步进电机调速_第1页
基于C语言的步进电机调速_第2页
基于C语言的步进电机调速_第3页
基于C语言的步进电机调速_第4页
基于C语言的步进电机调速_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、课 程 设 计(论文)题目 基于C语言的步进电机调速 目 录0. 前言31. 步进电机的基本理论42. 方案设计42.1 步进电机52.2 8255芯片53. 硬件电路的工作原理53.1 步进电机硬件电路图63.2 驱动选择84. 软件编程85. 系统调试和结果分析86. 结论及进一步设想14参考文献15附录1 元件清单16课设体会17基于C语言的步进电机调速摘要:步进电机是将电脉冲信号转变为角位移或线位移的开环控制元件。在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,即给电机加一个脉冲信号,电机则转过一个步距角。这一线性关系的存在,加上步进电机只

2、有周期性的误差而无累积误差等特点。使得在速度、位置等控制领域用步进电机来控制变的非常的简单。步进电机的调速一般是改变输入步进电机的脉冲的频率来实现步进电机的调速,因为步进电机每给一个脉冲就转动一个固定的角度,这样就可以通过控制步进电机的一个脉冲到下一个脉冲的时间间隔来改变脉冲的频率,延时的长短来具体控制步进角来改变电机的转速,从而实现步进电机的调速。在本方案中,利用计算机控制教学实验模型系统,通过计算机对8255PB口输出电平信号的控制,实现步进电机速度、方向、及旋转角度的计算机控制。关键词:步进电机;方向控制;转速控制0. 前言步进电机最早是在1920年由英国人所开发。1950年后期晶体管的

3、发明也逐渐应用在步进电机上,这对于数字化的控制变得更为容易。以后经过不断改良,使得今日步进电机已广泛运用在需要高定位精度、高分解性能、高响应性、信赖性等灵活控制性高的机械系统中。在生产过程中要求自动化、省人力、效率高的机器中,我们很容易发现步进电机的踪迹,尤其以重视速度、位置控制、需要精确操作各项指令动作的灵活控制性场合步进电机用得最多。步进电机作为执行元件,是机电一体化的关键产品之一, 广泛应用在各种自动化控制系统中。随着微电子和计算机技术的发展,步进电机的需求量与日俱增,在各个国民经济领域都有应用。步进电机是将电脉冲信号变换成角位移或直线位移的执行部件。步进电机可以直接用数字信号驱动,使用

4、非常方便。一般电动机都是连续转动的,而步进电动机则有定位和运转两种基本状态,当有脉冲输入时步进电动机一步一步地转动,每给它一个脉冲信号,它就转过一定的角度。步进电动机的角位移量和输入脉冲的个数严格成正比,在时间上与输入脉冲同步,因此只要控制输入脉冲的数量、频率及电动机绕组通电的相序,便可获得所需的转角、转速及转动方向。在没有脉冲输入时,在绕组电源的激励下气隙磁场能使转子保持原有位置处于定位状态。因此非常适合于单片机控制。步进电机还具有快速启动、精确步进和定位等特点,因而在数控机床,绘图仪,打印机以及光学仪器中得到广泛的应用。步进电动机已成为除直流电动机和交流电动机以外的第三类电动机。传统电动机

5、作为机电能量转换装置,在人类的生产和生活进入电气化过程中起着关键的作用。步进电机可以作为一种控制用的特种电机,利用其没有积累误差(精度为100%)的特点,广泛应用于各种开环控制。现在比较常用的步进电机包括反应式步进电机(VR)、永磁式步进电机(PM)、混合式步进电机(HB)和单相式步进电机等。永磁式步进电机一般为两相,转矩和体积较小,步进角一般为7.5度 或15度;反应式步进电机一般为三相,可实现大转矩输出,步进角一般为1.5度,但噪声和振动都很大。反应式步进电机的转子磁路由软磁材料制成,定子上有多相励磁绕组,利用磁导的变化产生转矩。混合式步进电机是指混合了永磁式和反应式的优点。它又分为两相和

6、五相:两相步进角一般为1.8度而五相步进角一般为 0.72度。这种步进电机的应用最为广泛,也是本次细分驱动方案所选用的步进电机。1. 步进电机的基本理论步进电机的工作原理是将电脉冲信号转换成相位移的电机 ,其机械位移和转速分别与输入电机绕组的脉冲个数和脉冲频率成正比 ,每一个脉冲信号可使步进电机旋转一个固定的角度.脉冲的数量决定了旋转的总角度 ,脉冲的频率决定了电机运转的速度.当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度(称为“步距角”),它的旋转是以固定的角度一步一步运行的。可以通过控制脉冲个数来控制角位移量,从而达到准确定位的目的;同时可以通过控制脉冲频率

7、来控制电机转动的速度和加速度,从而达到调速的目的。本设计选择四相八拍的工作方式,步进电机的步进过程可以用下图1-1所示。图1-1 步进电机的工作原理图图1-1是一个四相反应式步进电机,其定子的每相都有一对磁极,每个磁极都有一个齿,即磁极本身,故四相步进电机有四对磁极8个齿,其转子有五个齿,分别称为0,1,2,3,4,5齿。直流电源通过开关四个开关分别对步进电机的A,B,C,D相绕组轮流通电。开始时,开关SB接通电源,SA、SC、SD断开,B相磁极和转子0、3号齿对齐,同时,转子的1、4号齿就和C、D相绕组磁极产生错齿,2、5号齿就和D、A相绕组磁极产生错齿当开关SC接通电源,SB、SA、SD断

8、开时,由于C相绕组的磁力线和1、4号齿之间磁力线的作用,使转子转动,1、4号齿和C相绕组的磁极对齐。而0、3号齿和A、B相绕组产生错齿,2、5号齿就和A、D相绕组磁极 产生错齿。依次类推,A、B、C、D四相绕组轮流供电,则转子会沿着A、B、C、D方向转动。2. 方案设计2.1 步进电机步进电机电路的基本组成如图1所示。步进电机的驱动原理是通过每相线圈中的电流的顺序切换,来使电机作步进旋转。驱动电路由脉冲信号来控制,所以调节脉冲信号的频率便可改变步进电机的转速。步进电机的励磁顺序如图2-4。表2-2 步进电机的励磁顺序 123456785+4-3-2-1-按这种顺序切换,步进电机正方向旋转。2.

9、2 8255芯片图2-1 8255芯片引脚8255工作原理:8255有8条数据引脚D0D7,它们全部是双向,三态,用来与数据总线相连接;另外,还有5条输入控制引脚,分别是: RESET: 复位输入信号,高电平有效.当RESET有效时,将梭鱼哦内部寄存器,包括控制寄存器清零,而且把A,B,C三个都设为输入方式,对应的PA7PA0,PB7PB0,PC7PC0引脚均为高阻态. CS:芯片选中信号,输入低电平有效.只有当它为低电平时,8255才被CPU选中. A0和A1:芯片内部寄存器的选中信号.当有效时,8255被选中,再由A0,A1的编码决定选中通道A,B,C,还是控制寄存器. RD:读信号.输入

10、低电平有效.当它为低电平时,由CPU读出8255的数据或者状态信息. WR:写信号.输入低电平有效当它为低电平时,由CPU将数据或命令写到8255.3. 硬件电路的工作原理3.1 步进电机硬件电路图根据上述的设计方案,数据的输出、输入采用TDN实验箱上的8255单元完成。通过对每相线圈中的电流的顺序切换(实验中的步进电机有四相线圈,每次有二相线圈有电流,有电流的相顺序变化),来使电机作步进式旋转。驱动电路由脉冲信号来控制,所以调节脉冲信号的频率便可改变步进电机的转速。实验的硬件线路图如下图3-1。 图3-1 步进电机硬件线路图图中PB10、PB11、PB12、PB13、四个端口的各路电平步序如

11、表3-2所示步序PB13PB12PB11PB10对应B输出值1000101H2001103H3001002H4011006H5010004H611000CH7100008H8100109H 表3-2 8255端口各路电平步序按表3-2写出的电平步序编写C语言程序。在一个通电循环内,步进电机的转角恒为一个齿距角。所以,可以通过改步进电机通电循环次序来改变转动方向,可以通过改变通电频率来改变其角频率。运用8255芯片的输出功能,通过编程实现输出四个信号分别给步进电机的四相A、B、C、D ,并通过输出时信号的循环次序,来设定步进电机的转动方向及输出信号的频率以便设定步进电机的转动频率。初始状态时,开

12、关SB接通电源,SA、SC、SD断开,B相磁极和转子5、3号齿对齐,同时,转子的1、4号齿就和C、D相绕组磁极产生错齿,2、5号齿就和D、A相绕组磁极产生错齿当开关SC接通电源,SB、SA、SD断开时,由于C相绕组的磁力线和1、4号齿之间磁力线的作用,使转子转动,1、4号齿和C相绕组的磁极对齐。而0、3号齿和A、B相绕组产生错齿,2、5号齿就和A、D相绕组磁极 产生错齿。依次类推,A、B、C、D四相绕组轮流供电,则转子会沿着A、B、C、D方向转动。步进电机在单单仅给予电压时,电机是不会动作的,必须由脉冲产生器提供位置(脉波数)、速度的脉冲信号指令,以及驱动器驱动电流流过电机内部线圈、依顺序切换

13、激磁相序的方式才能够让电机运 转。所以欲使步进电机动作的必要系统组成有: (1)脉冲产生器:给予角度(位置移动量)、动作速度及运转方向之脉冲信号的电机驱动指令。(2)步进驱动器:依控制器所投入的脉冲信号指令,提供电流来驱动步进电机动作。(3)步进电机:提供转矩动力输出来带动负载。所以步进电机系统构成简单,不需要速度感应器、位置传感器, 即能依照脉冲产生器所输入的脉冲来做到速度及位置的控制。3.2 驱动选择步进电机可以选用专用的电机驱动模块,也可以自己构建驱动电路。一般有以下几种选择:专用驱动模块,如L298,FT5754等,这类驱动接口简单,这类可以驱动步进电机,直流电机等。本设计选用的是达林

14、顿驱动器ULN2803,这个芯片可以一次驱动八线步进电机。8255的PB10、PB11、PB12、PB13发送信号给驱动器,然后驱动器的四根线把信号递给电机,使电机实现正反转、速度及旋转角度等。电机部分接12V直流电源。4. 软件编程正反转程序流程图转速快慢程序流程图根据设计要求,软件编程部分采用C语言或C+来控制步进电机的调速等。步进电机的方向控制:通过改变步进电机控制输出字的输出顺序来控制步进电机的转动方向。当顺序输出时步进电机正转,反向输出时步进电机反转。在控制程序中通过设置一个方向变量f(0或1)来表示电机的转动方向,改变f的值并利用中断来使步进电机的转动方向改变。中断子程序IRQ6实

15、现对方向控制。中断子程序IRQ6:它是在主程序的作用下,通过将脉冲信号接到8088CPU中断6上,在,脉冲信号的作用下,实现对步进电机转动方向的控制,以实现使步进电机正反转的功能。中断子程序6具体程序如下:void interrupt irq6(void)f=!f;outp(0x20,0x20); return ;步进电机的转速控制:通过改变步进电机驱动信号的脉冲频率来控制步进电机的转速。频率升高时步进电机转速加快,频率降低时步进电机转速下降,在程序中通过软件延时的手段来实现。设置软件延时常数M通过对M大小的改变来实现对步进电机速度的控制。中断子程序IRQ7实现对速度控制。中断子程序IRQ7:

16、若将脉冲信号接到8088CPU的中断7上,通过脉冲信号,来实现对步进电机转动速度的控制。它包含了3极变速系统,并能够无限循环,而不会陷入死区。中断子程序7流程图如图4-1: 图4-1 中断子程序7流程图中断子程序7具体程序如下:void interrupt irq7(void) switch(s)case 0: M=5000 ;break ;case 1: M=800 ;break ;case 2: M=10000 ;break ;s+;if(s=3)s=0;outp(0x20,0x20); return ;主程序设计:设计所用的程序共分为三个部分,分别是主程序、中断子程序6和中断子程序7。通

17、过这两个中断程序来实现对步进电机转动方向和转动速度的控制。主程序主要用来定义变量和实现使四相八拍步进电机转动的功能,它包含了8255和8259初始化,以及对中断作出响应,调控步进电机转动。主程序如下:void main() int n=0,m_ip;outp(0x63,0x90); if(_CS=0) m_ip=0x2000; _asm push ds xor ax,ax mov ds,ax mov ax,offset irq6 add ax,m_ip mov si,0038h mov si,ax mov ax,cs mov si,003ah mov si,ax mov ax,offset i

18、rq7 add ax,m_ip mov si,003ch mov si,ax mov ax,cs mov si,003eh mov si,ax cli pop ds程序清单#include <stdio.h>#include <stdlib.h>#include <conio.h>void loop(int time);static int b8=0x08,0x0c,0x04,0x06,0x02,0x03,0x01,0x09; /步进电机通电步序 四相八拍int f=0,s=0,M=20000 ; / 设置软件延时的时间M void interrupt ir

19、q6(void) /中断子程序irq6f=!f; /设置方向参数f 通过改变f outp(0x20,0x20); 来获取不同的转动方向 return ; void interrupt irq7(void) / 中断子程序irq7 switch(s) /设置速度参数s 根据s不同的值选case 0: M=5000 ;break ; 择不同的延迟时间,以获得不同的case 1: M=800 ;break ; 速度case 2: M=10000 ;break ;s+;if(s=3)s=0;outp(0x20,0x20); return ; void main() / 主函数int n=0,m_ip;

20、outp(0x63,0x90); /向8255控制口输出控制字 初始化8255 if(_CS=0) m_ip=0x2000; else m_ip=0x00; _asm push ds / 初始化 xor ax,ax mov ds,ax mov ax,offset irq6 /填IRQ6偏移地址 add ax,m_ip mov si,0038h mov si,ax mov ax,cs mov si,003ah mov si,ax / 填IRQ6的段基址 mov ax,offset irq7 / 填IRQ7偏移地址 add ax,m_ip mov si,003ch mov si,ax mov ax

21、,cs mov si,003eh mov si,ax cli / 填IRQ7的段基址 pop dsoutp(0x21,(inp(0x21)&0x3f); _asm STI; / 开中断for(;) /电机转动 并且进入循环,等待中断 outp(0x61,bn); /实现正反转 输出通电步序loop(M); /每输出一步均延时if(f=0) /正向输出 if(n=7) n=0; n+; else /反向输出 if(n=0) n=7; n-; void loop(int time) /延时程序 int i; for(i=time;i>=0;i-) return;5. 系统调试和结果分

22、析a. 控制步进电机连续转动,按图3-1步进电机实验线路连接电路。b. 打开Visual Micosoft C+ 6.0连机软件,输入C语言程序,进行编译,编译连接、调试。c. 测试步进电机是否可以正常运转,若不能,检查机箱连接是否错误,直到电机可以正常运转。d. 运行C语言程序进行调试,如在中断子程序6中,如果参数f设置为!f时,观察电机是否反转,若不能,检查并修改程序。e. 当电机可以运转时,在程序中设置不同电机速度并进行调试,观察电机的速度是否有变化,若不明显,将延时时间增长,再观察。6. 结论及进一步设想实际上步进电机在运行时是带有一定量的负载,当运转时会存在许多误差,同时因为负载的存在可能引起失步和震荡。这就使步进电机不能按预定的规律运行,从而是很难达到转速精度的要求。为准确测量电机的转速稳定度,须选用高精度测量仪器。参考文献1 刘复华. 单片机及其应用系统. 北京:清华大学出版社,19922 李斌,董慧颖. 可重组机器人研究和发展现状. 沈阳工业学院学报,2000,19(4):23-273 于海生,等. 微型计算机控制技术. 北京:清华大学出版社,1999.4 陈理壁. 步进电机及其应用. 上海:上海科学技术出版社,1989.5

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论