利用单片机控制步进电机

  • 格式:doc
  • 大小:127.00 KB
  • 文档页数:6

利用单片机控制步进电机

[Abstract] The drive signal of stepmotor is mainly given by some dedication circuit now. To certain extent , this is devoid of dexterity and reliability. So , the author designs a stepmotor control system by using singlechip , which have real-time and interchange. The data can be input the with keyboard , and stepmotor was controlled by these data. According to the demand ,users can set the working model of step motor in real-time。 [Key Words]Singlechip ;Stepmotor;system;control

一.引言 目前 ,步进电机在工业生产及一些仪器上应用十分广泛 ,但步进电机 的驱动信号往往还是用一些专用的模拟芯片控制器或者是信号发生器来产 生 ,缺乏灵活性、可靠性。在一些智能化要求较高的场合 ,用模拟芯片控 制器及信号发生器来控制步进电机有一定的局限 ,可以采用单片机控制步 进电机以改进其性能。 以步进电机为驱动装置构成的控制系统 ,具有价格低、控制简单、容 易维护等优点。且步进电机作为离散化执行元件 ,在数控及其它自动化设 备中得到广泛应用。但由于步进电机常工作在开环状态 ,其失步或过冲直 接影响控制精度。因此 ,如何控制步进电机使其避免失步或过冲是提高步 进驱动系统控制精度的有效方法。步进电机是一种能将电脉冲信号转换成 角位移和线位移的执行元件 ,步进驱动器是由缓冲寄存器.环行分配器、控 制逻辑及正反转控制门组成 ,能把输入的电脉冲转换成环行脉冲 ,以便控 制步进电机 ,功率放大器提高其驱动能力。则控制脉冲频率 ,对应控制步 进电机的速度;控制脉冲个数 ,对应控制步进电机运转的步距角。因此 ,步 进电机的转速与脉冲频率成正比;步进电机运转步距角的多少与脉冲的个数 成正比 ,即脉冲频率越高 ,脉冲数越多 ,步进电机运转的速度和步距角越 大。则对步进电机脉冲的有效控制 ,即可实现对步进驱动系统控制精度的提高。

二.实现原理及相关结构

1.分析与原理 以反应式步进电机为例 ,其典型结构图如图1 所示: 这是一个四相步进电 机 ,当相控制绕组接通脉冲电流时 ,在磁拉力作用下使相的定、转子对齐 ,相邻的 B 相和 D 相的定、转子小齿错开。若换成 B 相通电 ,则磁拉力 使 B 相定、转子小齿 对齐(转过) ,而与 B 相相邻的 C 相和 A 相的定转子小齿又错开 ,即步进 电机转过一个步距角。若按 A →B →C →D →A …规律循环顺序通电 ,则 步进电机按一定方向转动。若改变通电顺序为 A → D →C →B →A ,则电 机反向转动。这种控制方式称为四相单四拍。若按 AB →BC →CD →DA → AB 或 A →AB →B →BC →C →CD →D →DA →A 顺序通电则称为四相双 拍或四相单、双八拍。无论采用哪种控制方式 ,在一个通电循环内 ,步进 电机的转角恒为一个齿距角。所以 ,可以通过改变步进电机通电循环次序 来改变转动方向 ,可以通过改变通电频率来改变其角频率。运用单片机的 输出功能 ,通过编程实现输出四个信号分别给步进电机的四相 A、B、C、 D,并通过输出时信号的循环次序 ,来设定步进电机的转动方向及输出信号 的频率以便设定步进电机的转动频率。因此可以得出如下的结论: (1).步进电机的工作方式:实际使用的步进电机以双四拍的方式工作.若以 AB →BC →CD →DA →AB 次序通电为正转,AD →DC →CB →BA →AD通电 为反转. (2)运动速度的控制:从图2可以看出,当改变CP脉冲的周期时,ABCD四相 绕组高低电平的宽度将发生变化,这就导致通电和断电变化的速率发生变 化,使电机转速发生变化,所以调节 CP 脉冲的周期就可以控制步进电机 的运动速度。

图2 (3)旋转角度的控制:因为每输入一个CP脉冲,就使步进电机四相绕组的状 态变化一次,并相应地旋转一个角度,所以步进电机的旋转角度由输入的 CP脉冲数确定。 因此我们不难得出实现原理:采用单片机产生 A、B、C、D 的四相信号 , 当采用单片机进行控制时 ,需要在单片机和步进电机中间设隔离电路以使 强弱电分离。由于步进电机的驱动电流相对较大 ,可增设放大电路来提供 步进电机的工作电流。系统电路由五部分组成 ,即单片机、隔离、放大、 电源及步进电机。 2.三相步进电机控制电路原理图如图3 三相六拍进/退一步子程序: F1 DATA 30H F2 DATA 31H ...... N IT: MOV F1,# 0DBH ;初位相 CLR F0 ;初位相 ...... UP: MOV A, F1 ;前进一步子程序,取位相 MOV C, F0 ;取位相 CPL A CPL C RLC A SJMP OUT DOWN: MOV A, F1 ;后退一步子程序 MOV C, F0 CPL A CPL C RRC A OUT: MOV F1, A ;保留位相 MOV F0, C ;保留位相 ANL A,#07H ;保留低三位 MOV F2,P1 ANL F2,#0F8 ;保留P1高5位 ORL A,F2 MOV P1,A ;合并后送出 RET 调用进/退程序一次,步进电机走动一步.每步之间必须有延时,不等的延时 可以使电机有不同的转速.如果F1赋初值# 49H去掉程序中的A反.C取反指令 ,即为双三拍方式运行子程序.程序中增加一计数器对进退作加减计数,便可 实现软件对转动定位.

三.硬件部分

(1)单片机电路 本系统是基于提高智能化及灵活性而 设计的 ,对于步进电机的转动方向、转速和转矩数通过键盘输入相应指令 ,由单片机输出步进电机控制信号来实现。用数码管显示输入的转速、方向 和转矩数 ,并在工作时 ,显示剩下的转矩数。运用可编程的并行接口芯片 8255 作为键盘及显示器接口。关于步进电机控制信号通过 8051 的 P1 口 来给出。为了增加步进电机工作的灵活性 ,在启动步进电机工作之后 ,当 有键按下 ,设置产生外部中断 ,达到灵活控制步进电机的目的 。 (2)隔离电路部分 由于步进电机的大功率、高电平会对微型计算机产生比较严重的干扰 ,不 能直接把单片机产生的控制信号直接连在步进电机上 ,需要进行强弱电隔 离。在实际运用中 ,对于强弱电隔离一般采用电子开关方法 ,这里我们采 用光电隔离的方法。 (3)放大电路及步进电机部分 由于步进电机工作需要较大的功率 ,所以需要使用功率放大器来提供步进 电机的工作电流 ,将光电隔离器送来的弱电信号变为强电信号。可以采用 集成功放 ,也可以采用分立元件。为降低成本 ,我们采用分立元件组成的 放大电路 ,如图 4 所示:

设计中采用了晶体管单电压型驱动电路 ,具有控 制方便、调试容易、电路简单和成本低等优点。同时考虑到功率管关断时 会产生较高的自感电势 ,它和电源电压迭加后可能使晶体管击穿 ,在电路 中采用续流二极管加稳压管保护. (4)电源电路部分 由于系统中包含弱电和强电两部分 ,需要提供两种电源电压 ,这里采用集 成稳压器 CW7805 和CW7824 来分别提供 + 5V 和 + 24V 电源 ,两电源不 共地。其中一路给单片机供电 ,另一路给步进电机供电。 (5)步进机接口电路部分设计 步进电机接口电路是驱动和控制各种励磁方式的 3 相、4相步进电机的通 用电路 ,可以通过对单片机系统的设定 ,用同一种电路 ,实现各种不同的 功能 ,从而大大提高了接口电路的灵活性和通用性. a.用按键 S1 实现 3 相、相步进电机的转换 b.用 P1.4 和 P1.3 实现励磁模式的切换 c.用 CP 脉冲的不同分配来控制励磁顺序和通电方式 d. 用 P1. 5 来实现控制步进电机的正反转 e.用Em(14脚)对励磁信号进行检测 f.用 C0(15 脚)对输入脉冲进行检测:用 C0(15 脚)可以用来检测时钟信号 ,可接上示波器观察 C0(15 脚)的输出波形. 还可利用 C0 的变化实现对加 到电机上的高电压进行控制.

四.软件部分 在单片机控制步进电机系统中 ,相应的控制信号由单片机来产生 ,根据需 要通过键盘输入步进电机的转动方向、转动速率及转矩数 ,在工作时用数 码管来显示剩下的转矩数。所以 ,软件部分由四大模块组成:系统监控、键 盘扫描及处理、显示程序、控制信号产生程序。 (1).系统监控模块 在监控模块中 ,应完成系统的启动 ,进行键盘,得到相应键值 ,完成对步进 电机转动方向、转动速率及转动的转矩数的设置 ,并启动步进电机按照要 求进行工作。为增加控制的灵活性 ,键盘输入数据及启动命令采用中断的 方式来实现。所以监控程序只完成对系统的初始化设置 ,通过键盘中断 , 实现键盘扫描及处理程序的跳转。 (2).键盘扫描及处理、显示模块 本模块应完成对键盘有无键按下进行确认 ,当有键按下时 ,确定按键值 , 并根据所得键值进行处理(包括所按键是不是输入键还是执行键。如是输入 键 ,启动数据输入程序;如是执行键就启动产生, 步进电机控制信号程序) 。显示模块主要是完成在进行数据输入时 ,显示输入的数据值(转矩数、转 动方向、转动速率及运行方式) ,其流程如图 4 所示:

(3).控制信号产生模块 本模块根据从键盘上输入的数据 (包括转矩数、转动方向、转动速率及运 行方式) ,产生步进电机控制信号 ,通过程序 8051 的 P1 口输出 ,其流程 图如图 5 所示: