文档库 最新最全的文档下载
当前位置:文档库 › 基于单片机控制的步进电机控制器

基于单片机控制的步进电机控制器

基于单片机控制的步进电机控制器
基于单片机控制的步进电机控制器

单片机原理与应用技术课程设计报告(论文)

基于单片机控制的步进电机控制器

专业班级:电气113班

姓名:吕志斌

时间:2013.11.25---2013.12.14

指导教师:邵峰徐君鹏

2013年12 月14日

单片机课程设计任务书

1.设计目的与要求

设计出一个基于单片机控制的步进电机控制器。准确地理解有关要求,独立完成系统设计,要求所设计的电路具有以下功能:

(一)基本功能要求

1.实现步进电机的正反转控制

2.实现步进电机的加速控制

3.实现步进电机的减速控制

(二)扩展功能要求

实现电机的正反转状态指示及速度快慢指示。

2.设计内容

(1)画出电路原理图,正确使用逻辑关系;

(2)确定元器件及元件参数;

(3)进行电路模拟仿真;

(4)SCH文件生成与打印输出;

3.编写设计报告

写出设计的全过程,附上有关资料和图纸,有心得体会。

4.答辩

在规定时间内,完成叙述并回答问题。

论文结构清晰,层次分明,理论严谨

基于单片机控制的步进电机控制器

电气113班吕志斌

摘要:步进电机是一种纯粹的数字控制电机,是将电脉冲信号转变为角位移或线位移的开环控制元件。本文应用单片机AT89C51和步进电机驱动器L298,构建了步进电机控制器和驱动器为一体的步进电机控制系统。通过AT89C51和脉冲分配器(又称逻辑转换器)完成步进电机的各种运行控制方式,实现步进电机在4相8拍的工作方式下的正反转控制和加减速控制。

整个系统采用模块化设计,结构简单,可靠,通过人机交互换接口可实现各功能设置,操作简单,易于掌握。该系统可应用于步进电机在机电一体化控制等大多数场合。

实践证明,基于单片机控制的步进电机比传统的步进控制器具有更好的性能,更加简单、方便、可靠。本设计的主要研究对象就是开环伺服系统中最常用的执行器件——步进电机。

关键词:步进电机 AT89C51 电机驱动正反转控制 LED显示

1 引言:

步进电机是一种进行精确步进运动的机电执行元件,它广泛应用于工业机械的数字控制,为使系统的可靠性、通用性、可维护性以及性价比最优,根据控制系统功能要求及步进电机应用环境,确定了设计系统硬件和软件的功能划分,从而实现了基于8051单片机的四相步进电机的开环控制系统。控制系统通过单片机存储器、I/O接口、中断、键盘、LED显示器的扩展、步进电机的环形分频器、驱动及保护电路、人机接口电路、中断系统及复位电路、单电压驱动电路等的设计,实现了四相步进电机的正反转,急停等功能。为实现单片机控制步进电机系统在数控机床上的应用,系统设计了两个外部中断,以实现步进电机在某段时间内的反复正反转功能,也即数控机床的刀架自动进给运动,随着单片机技术的不断发展,单片机在日用电子产品中的应用越来越广泛,自六十年代初期以来,步进电机的应用得到很大的提高。人们用它来驱动时钟和其他采用指针的仪器,打印机、绘图仪,磁盘光盘驱动器、各种自动控制阀、各种工具,还有机器人等机械装置。此外作为执行元件,步进电机是机电一体化的关键产品之一,被广泛应用在各种自动化控制系统中,随着微电子和计算机技术的发展,它的需要量与日俱增,在各个国民经济领域都有应用。步进电机是机电数字控制系统中常用的执行元件,由于其精度高、体积小、控制方便灵活,因此在智能仪表和位置控制中得到了广泛的应用,大规模集成电路的发展以及单片机技术的迅速普及,为设计功能强,价格低的步进电机控制驱动器提供了先进的技术和充足的资源。

2 总体设计方案

本设计的硬件电路只要包括控制电路、最小系统、驱动电路、显示电路四大部分。最小系统只要是为了使单片机正常工作。控制电路只要由开关和按键组成,由操作者根据相应的工作需要进行操作。显示电路主要是为了显示电机的工作状态和转速。驱动电路主要是对单片机输出的脉冲进行功率放大,从而驱动电机转动。

总体设计方案的框图如下图1所示。

2.1步进电机的概念

步进电机是一种将电脉冲转化为角位移的执行机构。通俗一点讲:当步进驱动器接收到一个

图1系统总框图

脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度(及步进角)。我们可以通过控制脉冲个数来控制角位移量,从而达到准确定位的目的;同时我们也可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。

在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,即给电机加一个脉冲信号,电机则转过一个步距角。这一线性关系的存在,加上步进电机只有周期性的误差而无累积误差等特点。使得在速度、位置等控制领域用步进电机来控制变的非常的简单。

图2.1步进电机外观图

2.2 步进电机工作原理

2.2.1步进电机的静态指标及术语

相数:产生不同队N 、S 磁场的激磁线圈对数,常用m 表示。

拍数:完成一个磁场周期性变化所需脉冲用n 表示,或指电机转过一个齿距角所需脉冲数,以四相电机为例,有四相四拍运行方式即AB →BC →CD →DA →AB,四相八拍运行方式即A →AB →B →BC →C →CD →D →DA →A 。

AT89C51芯片

电源及时钟电路 LED 状态 显示电路

L298步进电机驱动芯片

按键控制 电路

步进电机

步距角:对应一个脉冲信号,电机转子转过的角位移用θ表示。θ=360度(转子齿角运行拍数),以常规二、四相,转子齿角为50齿角电机为例。四相运行时步距角为θ=360度/(50*4) =1.8度,八拍运行时步距角为θ=360度/(50*8)=0.9度。

定位转矩:电机在不通电的状态下,电机转子自身的锁定力矩(由磁场齿形的谐波以及机械误差造成的)。

静转矩:电机在额定静态作业下,电机不做旋转运动时,电机转轴的锁定力矩。此力矩是衡量电机体积的标准,与驱动电压及驱动电源等无关。虽然静态转矩与电磁激磁匝数成正比,与定子和转子间的气隙有关。但过分采用减小气隙,增加励磁匝数来提高静转矩是不可取的,这样会造成电机的发热及机械噪音。

2.2.2步进电机工作原理

电机的U1、V1、W1接电源,分别有三个开关控制,U2、V2、W2分别接地。如果给处于错齿状态的相通电,则转子在电磁力的作用下,将向磁导率最大(即最小磁阻位置)位置转动,即向趋于对齿的状态转动。

步进电机是一种感应电机,它的工作原理是利用电子电路,将直流电变成分时供电的,多相时序控制电流,用这种电流为步进电机供电,步进电机才能正常工作,驱动器就是为步进电机分时供电的,多相时序控制器。以反应式步进电机为例:

如A相通电,B,C相不通电时,由于磁场作用,齿1与A对齐,(转子不受任何力以下均同)。如B相通电,A,C相不通电时,齿2应与B对齐,此时转子向右移过1/3π,此时齿3与C偏移为1/3π,齿4与A偏移(π-1/3π)=2/3π。如C相通电,A,B相不通电,齿3应与C对齐,此时转子又向右移过1/3π,此时齿4与A偏移为1/3π对齐。如A相通电,B,C相不通电,齿4与A对齐,转子又向右移过1/3π这样经过A、B、C、A分别通电状态,齿4(即齿1前一齿)移到A相,电机转子向右转过一个齿距,如果不断地按A,B,C,A……通电,电机就每步(每脉冲)1/3π,向右旋转。如按A,C,B,A……通电,电机就反转。由此可见:电机的位置和速度由导电次数(脉冲数)和频率成一一对应关系。而方向由导电顺序决定。不过,出于对力矩、平稳、噪音及减少角度等方面考虑。往往采用A-AB-B-BC-C-CA-A这种导电状态,这样将原来每步1/3π改变为1/6π。甚至于通过二相电流不同的组合,使其1/3π变为1/12π,1/24π,这就是电机细分驱动的基本理论依据。不难推出:电机定子上有m相励磁绕阻,其轴线分别与转子齿轴线偏移1/m,2/m……(m-1)/m,1。并且导电按一定的相序电机就能正反转被控制——这是旋转的物理条件。只要符合这一条件我们理论上可以制造任何相的步进电机,出于成本等多方面考虑,市场上一般以二、三、四、五相为多。

2.3 步进电机的特点

2.3.1 步进电机的特点

1. 一般步进电机的精度为步进角的3-5%,角位移与输入脉冲数严格成正比,没有累计误差,具有良好的跟随性。

2. 步进电机外表不允许较高的温度。

步进电机温度过高首先会使电机的磁性材料退磁,从而导致力矩下降乃至于失步,因此电机外表允许的最高温度应取决于不同电机磁性材料的退磁点;一般来讲,磁性材料的退磁点都在摄

氏130度以上,有的甚至高达摄氏200度以上,所以步进电机外表温度在摄氏80-90度完全正常。

3. 步进电机的力矩会随转速的升高而下降。

当步进电机转动时,电机各相绕组的电感将形成一个反向电动势;频率越高,反向电动势越大。在它的作用下,电机随频率(或速度)的增大而相电流减小,从而导致力矩下降。

4. 步进电机自身的噪声和振动较大,带惯性负载的能力较差。

5. 由步进电机与驱动电路组成的开环数控系统,既非常简单、廉价,又非常的可靠。同时,它也可以与角度反馈环节组成高性能的闭环数控系统。

6. 步进电机的动态响应快,易于启停,正反转及变速。

7. 速度可在相当宽的范围内平滑调节,低速下仍能保证获得大转矩,因此,一般可以不用减速器而直接驱动负载。

8. 步进电机只能通过脉冲电源供电才能运行,它不能直接使用交流电源和直流电源。

2.3.2四相步进电机的脉冲分配规律

目前,对步进电机的控制主要有分散器件组成的环形脉冲分配器、软件环形脉冲分配器、专用集成芯片环形脉冲分配器等。本设计利用单片机进行控制,主要是利用软件进行环形脉冲分配。四相步进电机的工作方式为四相单四拍,双四拍和四相八拍工作的方式。各种工作方式在电源通电时的时序与波形分别如图1 a, b, c所示。本设计的电机工作方式为四相单四拍,根据步进电机的工作的时序和波形图,总结出其工作方式为四相单四拍时的脉冲分配规律,四相双四拍的脉冲分配规律,在每一种工作方式中,脉冲的频率越高,其转速就越快,但脉冲频率高到一定程度,步进电机跟不上频率的变化后电机会出现失步现象,所以脉冲频率一定要控制在步进电机允许的范围内。

3.硬件设计

本设计的硬件电路只要包括控制电路、晶振和复位电路、驱动电路、LED显示电路四大部分。电源及时种模块是为了使单片机正常工作。控制电路只要由开关和按键组成,由操作者根据相应的工作需要进行操作。显示电路主要是为了显示电机的工作状态和转速。驱动电路主要是对单片机输出的脉冲进行功率放大,从而驱动电机转动。

在使用单片机80C51和驱动电路时我们有必要先了解一下89C51和L298芯片。

89C51单片机

ATMEI公司生产的89C51单片机是一种低功耗/低电压高性能的8位单片机,它采用CMOS 和高密度非易失性存储技术,而且其输出引脚和指令系统都与MCS-51兼容;片内的Flash ROM 允许在系统内改编程序或用常规的非易失性编程器来编程,内部除CPU外,还包括256字节RAM, 4个8位并行I/O口,5个中断源,2个中断优先级,2个16位可编程定时计数器,89C51单片机是一种功能强、灵活性高且价格合理的单片机,完全满足本系统设计需要。

L298

L298是SGS公司的产品,比较常见的是15脚Multiwatt封装的L298N,内部同样包含4通道逻辑驱动电路。可以方便的驱动两个直流电机,或一个两相步进电机。L298是一款单片集成的高电压、高电流、双路全桥式电机驱动,设计用于连接标准TTL逻辑电平,驱动电感负载(诸如继电器、线圈、DC和步进电机)。L298提供两个使能输入端,可以在不依赖于输入信号的情况下,使能或禁用L298器件。L298低位晶体管的发射器连接到一起,而其对应的外部端口则可

用来连接一个外部感应电阻。L298还提供一个额外的电压输入,所以其逻辑电路可以工作在更低的电压下。L298 特性:L298工作电压高达46V ;总DC电流达4A ;低饱和电压;L298具有过温保护功能;逻辑“0”输入电压高达1.5V(高抗噪性) 。

3.1控制电路

根据系统的控制要求,控制输入部分设置了正转控制,反转控制,加速控制和减速控制和停止控制按钮,分别是K1, K2, K3 K4,K5控制电路如图所示。通过K1, K2状态变化来实现电机的正转和反转功能。当K1, K2的状态变化时,内部程序检测P3.2和P3.3的状态来调用相应的正转和反转换相程序,发现系统的电机的启动和正反转控制。

根据步进电机的工作原理可以知道,步进电机转速的控制主要是通过控制通入电机的脉冲频率,从而控制电机的转速。对于单片机而言,主要的方法有:软件延时和定时中断在此电路中电机的转速控制主要是通过定时器的中断来实现的,该电路控制电机加速度主要是通过K2, K3的断开和闭合,从而控制外部中断根据按键次数,改变速度值存储区中的数据(该数据为定时器的中断次数),这样就改变了步进电机的输出脉冲频率,从而改变了电机的转速。

图3.1 控制电路图

3.2晶振和复位电路

单片机的晶振和复位电路,素质用最少的元件组成的单片机可以工作的系统,对51系列单片机来说,最小系统一般应该包括:单片机、复位电路、晶振电路。

复位电路使用了独立式键盘,单片机的P1口键盘的接口。该设计要求只需1个键对步进电机的状态进行控制,但考虑到对控制功能的扩展,使用了1路独立式键盘。复位电路采用手动复位,所谓手动复位,是指通过接通一按钮开关,使单片机进入复位状态,晶振电路用100PF的电容和一个12M晶体振荡器组成为整个电路提供时钟频率,如图3.2.1所示。

晶振电路:8051单片机的时钟信号通常用两种电路形式电路得到:内部震荡方式和外部中断方式。在引脚XTAL 1和XTAL2外部接晶振电路器(简称晶振)或陶瓷晶振器,就构成了内部晶振方式。由于单片机内部有一个高增益反相放大器,当外接晶振后,就构成了自激振荡器并产生振荡时钟脉冲。内部振荡方式的外部电路如图示。其电容值一般为30pf,晶振频率的典型值为12MHz,采用6MHz的情况也比较多。内部振荡方式所得的时钟信号比较稳定,实用电路实用较多。

图3.2.1晶振和复位电路

图3.2.2晶振电路

3.3驱动电路

步进电动机不能直接接到工频交流或直流电源上工作,而必须使用专用的步进电动机驱动器,它由脉冲发生控制单元、功率驱动单元、保护单元等组成。驱动单元与步进电动机直接耦合,也可理解成步进电动机微机控制器的功率接口,这里予以介绍。通过L298构成比较多的驱动电路,电路图如图所示。通过单片机的P1.0~P1.3输出脉冲到ULN2803的1B~4B口,经信号放大后从1C~4C口分别输出到电机的A, B, C, D相。

其中VCC和VS,ENA和ENB都接高电源,SENSA,SENSB和GND接电位,这样就可以通过L298的输入和输出来驱动步进电机。具体电路如下图3.3所示。

3.4显示电路

在该步进电机的控制器中,电机可以正反转,可以加速、减速,其中电机转速的等级分为七级,为了方便知道电机的运行状态和电机的转速的等级,这里设计了电机转速和电机的工作状态的显示电路。在显示电路中,主要是利用了单片机的P1口。采用4个LED发光二级光作显示。第一个数码管接P1.4第二三四个二极管分别接P1.5--P1.7口,用于显示电机正反转状态,正转时

LED灯D8亮,反转时LED灯D7亮,不转时灯灭。电路如图3.4所示。

图3.3驱动电路

图3.4 LED显示电路

4.步进电机的控制

4.1 步进电机的速度控制

步进电机的速度控制是通过单片机发出的步进脉冲频率来实现,对于软脉冲分配方式,可以采用调整两个控制字之间的时间间隔来实现调速,对于硬脉冲分配方式,可以控制步进脉冲的频率来实现调速。控制步进电机的速度的方法可有两种:

1. 软件延时法:改变延时的时间长度就可以改变输出脉冲的频率,但这种方法CPU长时间等待,占用大量的机时,因此没有实践价值。

2. 定时器中断法:在中断服务子程序中进行脉冲输出操作,调整定时器的定时常数就可以实现调速,这种方法占有的CPU时间较少,在各种单片机中都能实现,是一种比较实用理想的调速方法。

定时器法利用定时器进行工作,为了产生步进脉冲,要根据给定的脉冲频率和单片机的机器周期来计算定时常数,这个定时器决定了定时时间,当定时时间到而使定时器产生溢出时发生中断,在中断子程序中进行改变P1.0的电平状态的操作,这样就可以得到一个给定频率的方波输出,改变定时常数,就可以改变方波的频率,从而实现调速。

4.2 步进电机的位置控制

步进电机的位置控制,指的是控制步进电机带动执行机构从一个位置精确地运行到另一个位置,步进电机的位置控制是步进电机的一大优点,它可以不用借助位置传感器而只需要简单的

开环控制就能达到足够的位置精度,因此应用很广。步进电机的位置控制需要两个参数:

1. 第一个参数:步进电机控制执行机构当前的位置参数(我们称为绝对位置),绝对位置时有极限的,其极限时执行机构运动的范围,超越了这个极限就应报警。

2. 第二个参数:从当前位置移动到目标位置的距离我们可以用折算的方式将这个距离折算成步进电机的步数,这个参数是外界通过键盘或可调电位器旋钮输入的,所以折算的工作应该在键盘程序或A/D转换程序中完成。

对步进电机位置控制的一般作法是:步进电机每走一步,步数减1,如果没有失步存在,当执行机构到达目标位置时,步数正好减到0,因此,用步数等于0来判断是否移动到目标位,作为步进电机停止运行的信号。

4.3 步进电机的加减速控制

步距角和转速大小不受电压波动和负载变化的影响,也不受各种环境条件诸如温度、压力、振动、冲击等影响,而仅仅与脉冲频率成正比,通过改变脉冲频率的高低可以大范围地调节电机的转速,并能实现快速起动、制动、正反转、加减速,而且有自锁的能力,不需要机械制动装置,不经减速器也可获得低速运行。它每转过一周的步数是固定的,只要不丢步,角位移误差不存在长期积累的情况,主要用于数字控制系统中,精度高,运行可靠。如采用位置检测和速度反馈,亦可实现闭环控制。

步进电机驱动执行机构从A点到B点移动的时,要经历升速,恒速,减速过程,如果启动时一次将速度升到给定速度,由于启动频率超过极限启动频率,步进电机就有失步现象,因此会造成不能正常启动,如果到终点时突然停下来,由于惯性作用,步进电机会发生过冲现象,会造成位置精度降低。如果升速非常缓慢的升降速,步进电机虽然不会发生失步和过冲现象,但影响执行机构的工作效率,所以,对步进电机的加减速要有严格的要求,那就是保证在不失步和过冲的前提下,用最快的速度(或最短的时间)移动到有可能指定位置。为满足加减速要求,步进电动机运行通常按照加减速曲线进行。图5.1是加减速运行曲线。加减速运行曲线没有一个固定的模式,一般根据经验和实验得到的。最简单的是匀加速和匀减速曲线,如下图4.3.1和4.3.2所示:

图4.3.1 匀加减速

其加减速曲线都是直线,因此容易编程实现。按直线加速时,加速度是不变的,因此要求转矩也应该是不变的。但是,由于步进电动机的电磁转矩玉转速时非曲线关系,因而加速度玉频率也应该是非曲线关系。因此,实际上当转速增加时,转矩下降,所以,按直线加速时,有可能造成因转矩不足而产生失步的现象。

5.软件设计

通过分析可以看出,实现系统功能可以采用多种方法,由于随时有可能输入加速、加速信号和方向信号,因而采用中断方式效率最高,这样总共要完成4个部分的工作才能满足课题要求,

图4.3.2 瞬时加减速

即主程序部分、定时器中断部分、外部中断0和外部中断1部分,其中主程序的主要功能是系统初始参数的设置及启动开关的检测,若启动开关合上则系统开始工作,反之系统停止工作;定时器部分控制脉冲频率,它决定了步进电机转速的快慢;两个外部中断程序要做的工作都是为了完成改变速度这一功能。下面分析主程序与定时器中断程序及外部中断程序。

5.1主程序设计

主程序中要完成的工作主要有系统初始值的设置、系统状态的显示以及各种开关状态的检测判断等。其中系统初始状态的设置内容较多,该系统中,需要初始化定时器、外部中断;对P1口送初值以决定脉冲分配方式,速度值存储区送初值决定步进电机的启动速度,对方向值存储区送初值决定步进电机旋转方向等内容。若初始化P3=1,即高电状态,速度和方向初始值均设为0,就意味着步进电机按四相单四拍运行,系统上电后在没有操作的情况下,步进电机不旋转,显示方向的LED灯不亮,显示速度状态的LED灯也不亮。流程图如下图所示。

5.2 程序框图

根据设计任务,可画出控制步进电机正反转,加减速控制。我们以正转开始键K1键为例来说明,其它反转键,加速键,减速键,停止键的程序流图与此相同。程序流图如下图5.2。

6.设计总结

本设计通过单片机AT89C51和步进电机的驱动电路控制步进电机的正反转,加减速,以实现进电机的运动控制。该设计实现了占用CPU时间少,效率高;易于控制步进电机的转向转速;提高了步进电机的步进精度等。再有,本设计过程考虑比较周全,可以方便灵活地控制步进电机的运行状态,以满足不同用户的要求,因此常把单片机步进电机控制电路称之为可编程步进电机控制驱动器。步进电机控制(包括控制脉冲的产生和分配)使用软件方法,即用单片机实现,这样既简化了电路,也减低了成本。

基于单片机的步进电机控制系统性能优于传统的步进控制器,具有相应快,控制方便可靠等一系列优点,在机电一体化、数模转换装置、计算机外围设备中得到广泛地应用,发展前景广阔。

7.结束语

通过这次课题设计,经过自己动手查找资料,修改程序,自己动手画原理图,仿真图,并进行仿真和修改。然后通过添加元器件封装,和对原理图布线。我对单片机知识有了更进一步的了解和学习,进一步巩固了自己的知识。这次课题设计确实学的了许多,也收获了许多。感谢老师,在这次课题设计期间给予我的帮助与耐心讲解,也感谢老师给了我们这样一个机会。

Y N

N Y

图5.2程序流图

参考文献

[1] 李建忠,单片机原理及应用[M].西安电子科技大学出版社,2008年2月第2版:32-52,244-277 [2] 杨天明,电机与拖动,高等教育出版社 [M].2013年5月:45-51 [3] 徐君鹏 ,单片机实验指导. 河南科技学院机电学院 [J ],28-47.

[4] 石磊 张国强,Altium Designer 电路设计,清华大学出版社[M] .2009年11月:23-35 [5] 康华光,电子技术基础 ,高等教育出版社, 2005年7月第5版:56-65

[5]孙笑辉,韩曾晋. 减少感应电动机直接转矩控制系统转矩脉动的方法[J]. 电气传动, 2008: 8-21

开始

初始化 K1=1 ?

延时去抖

K1仍然=1 ?

加速

附件1: C语言程序

#include

#define uint unsigned int

sbit zz=P3^2;

sbit fz=P3^3;

sbit jias=P3^4;

sbit jians=P3^5;

sbit stop=P3^6;

sbit ledzz=P1^4;

sbit ledfz=P1^5;

sbit ledjias=P1^6;

sbit ledjians=P1^7;

unsigned char code FFW[8]={0xfe,0xfc,0xfd,0xf9,0xfb,0xf3,0xf7,0xf6}; //反转unsigned char code FFZ[8]={0xf6,0xf7,0xf3,0xfb,0xf9,0xfd,0xfc,0xfe}; //正转void motor_ffw();

uint rate,K1,K2;

void delay1(uint nms)

{

uint i,j;

for(i=nms;i>0;i--)

for(j=110;j>0;j--);

}

void delay()

{

unsigned int k,t;

t=rate;

while(t--)

{

for(k=0; k<50; k++)

{ }

}

}

void motor_ffw()

{

unsigned char i;

if(K1==1)

for (i=0; i<8; i++)

{

P2 = FFZ[i];

delay();

}

if(K2==1)

for (i=0; i<8; i++)

{

P2 = FFW[i];

delay();

}

}

void key()

{

if(zz==0)

{

delay1(10);

if(zz==0)

{K1=1;K2=0;ledzz=0;ledfz=1;ledjias=1;ledjians=1;} }

if(fz==0)

{

delay1(10);

if(fz==0)

{K2=1;K1=0;ledzz=1;ledfz=0;ledjias=1;ledjians=1;} }

if(jias==0)

{

delay1(10);

if(jias==0)

{rate=rate-10;ledzz=1;ledfz=1;ledjias=0;ledjians=1;

if(rate==0) rate=10;

}

}

if(jians==0)

{

delay1(10);

if(jians==0)

{rate=rate+10;ledzz=1;ledfz=1;ledjias=1;ledjians=0;} }

if(stop==0)

{

delay1(10);

if(stop==0)

{P2=0xff;K1=0;K2=0;}

}

}

void main()

{

rate=100;

while(1)

{

key();

motor_ffw();

}

}

附件2:仿真图

附件3

附件4:布线图

单片机控制步进电机和数码管显示

一、设计任务书 设计内容:用80C51单片机设计一个步进电机控制器 设计要求: 1.用8015设计一个四相步进电机。 2.可控制步进电机的启动与停止,正转与反转。 3.10档速度调节。 4.点动控制。 5.可显示电机运行参数。 二、设计总体方案 (一)控制方式的选择 控制主要用于电机速度和方向的转换。控制方式有按键控制和开关控制两种。按键较开关而言,操作更加简便,故选按键控制。 方案一:独立按键。独立按键可自由连接,线路简单。 方案二:编码式键盘。编码式键盘的按键接触点接于74LS148芯片。当键盘上没有闭合时,所有按键都断开,当某一键闭合时,该键对应的编码由74LS148输出。 本次设计所需按键不多,不需要采用复杂编码,考虑硬件条件、线路连接和经济性等方面,选择方案一。 (二)电机电路设计方案的选择 由于条件的限制,对于电机的选择只能是实验台上最小步距角18°的电机,其中已包含了驱动电路。 (三)单片机的选择 方案一:AT89C51高性能8位单片机,内部集成CPU、存储器、寄存器、I/O接口,从而构成较为完整的计算机,价格便宜。 方案二:C8051F005单片机,该单片机是完全集成的混合信号系统及芯片,具有8051兼容的微控制器内核,与MCS-51指令集完全兼容。除了具有标准8052的数字外设部件,片内还继承了数据采集和控制系统中常用的模拟部件和其他数字外设及功能部件,执行速度快,但价格较贵。 本次课程设计是在仿真环境下进行,没有太过考虑单片机选择的问题,但就设计本身来讲,从物美价廉的角度考虑,选择方案一较合适。 (四)显示方案的选择 方案一:采用LED数码管。LED数码管是轮流现实的,其利用人烟的视觉暂留特性,使人感觉不到数码管闪动,看到每只数码管都常亮。利用其显示必须不停给数码管数据输入口循环赋值,显示内容较多,编程和接线较为复杂。 方案二:采用LCD1602液晶显示器。LCD1602具有功率小,效果明显,变成容易等优点,且它最多能显示2×16个字符,可以轻松满足设计要求。 由上可知,LCD1602液晶显示器的优点突出,故选择方案二。 (五)软件部分的选择 软件部分的选择主要是指编程语言的选择,编译调试工具根据设计平台选择伟福软件。编程语言主要有以下两种方案。

基于51系列单片机控制步进电机调速实验 (自动保存的)

基于51系列单片机控制步进电机调速实验 实验指导书 仇国庆编写 重庆邮电大学自动化学院 自动化专业实验中心 2009年2月

基于51系列单片机控制步进电机调速实验 实验目的及要求: 1、熟悉步进电机的工作原理 2、熟悉51系列单片机的工作原理及调试方法 3、设计基于51系列单片机控制的步进电机调速原理图(要求实现电机的速度反馈测量,测量方式:数字测量) 4、实现51系列单片机对步进电机的速度控制(步进电机由实验中心提供,具体型号42BYG )由按钮控制步进电机的启动与停止;实现加速、匀速、和减速控制。速度设定由键盘设定,步进电机的反馈速度由LED 数码管显示。 实验原理: 步进电机控制原理 一般电动机都是连续旋转,而步进电动却是一步一步转动的,故叫步进电动机。步进电机是数字控制电机,它将脉冲信号转变成角位移,即给一个脉冲信号,步进电机就转动一个角度,因此非常适合于单片机控制。步进电机可分为反应式步进电机(简称VR)、永磁式步进电机(简称PM)和混合式步进电机(简称HB)。因此步进电动机是一种把脉冲变为角度位移(或直线位移)的执行元件。步进电动机的转子为多极分布,定子上嵌有多相星形连接的控制绕组,由专门电源输入电脉冲信号,每输入一个脉冲信号,步进电动机的转子就前进一步。由于输入的是脉冲信号,输出的角位移是断续的,所 以又称为脉冲电动机。随着数字控制系统的发展,步进电动机的应用将 逐渐扩大。 步进电机区别于其他控制电机的最大特点是,它是通过输入脉冲信号来 进行控制的,即电机的总转动角度由输入脉冲数决定,而电机的转速由 脉冲信号频率决定。步进电机的驱动电路根据控制信号工作,控制信号 可以由单片机产生。 电机转子均匀分布着很多小齿,定子齿有三个励磁绕阻,其几 何轴线依次分别与转子齿轴线错开。0、1/3て、2/3て,(相邻 两转子齿轴线间的距离为齿距以て表示),即A与齿1相对齐, B与齿2向右错开1/3て,C与齿3向右错开2/3て,A'与齿5相对齐,(A'就是A,齿5就是齿1)下面是定转子的展开图:(图2所示)

基于单片机的步进电机控制系统

编号: 综合智能电子 实训 (论文)说明书题目: 院(系):使用科技学院 专业:电子信息工程 学生姓名: 学号: 指导教师: 2010年 1 月 6 日

目录 引言 第1章简介 1.1 步进电机 第2章步进电机原理 2.1 步进电机的工作原理 2.1.1结构及基本原理 2.1.2 电机的步进顺序 第3章系统的硬件设计 3.1 系统设计方案 3.2 主从机硬件部件介绍 3.2.1A T89S51简介 3.2.2 TGI2864E简介 3.2.3MAX485 串行通信 3.2.4TIP122 3.2.5 MOC70T2 3.3 LCD显示电路设计 3.4 电机驱动模块设计 第4章系统的软件实现 4.1 系统软件主流程图 4.2 系统初始化流程图 4.3 部分子程序 第五章总结 致谢 参考文献 摘要:本文使用单片机、步进电机驱动芯片、字符型LCD和键盘阵列,构建了集步进电机控制器和驱动器为一体的步进电机控制系统。二维工作台作为被控对象通过步进电机驱动滚珠丝杆在X/Y轴方向联动。文中讨论了一种以最少参数确定一条圆弧轨迹的插补方法和步进电机变频调速的方法。步进电机控制系统的开发采用了软硬件协同仿真的方法,可以有效地减少系统开发的周期和成本。最后给出了步进电机控制系统的使用实例。

关键词:步进电机控制系统,插补算法,变频调速,软硬件协同仿真 In this paper, microcontroller, stepper motor driver chips, character LCD and keypad array, build a set of stepper motor controller and driver as one of the stepping motor control system. Two-dimensional table as a charged object by stepper motor drive ball screw in X / Y axis linkage. This paper discusses a minimum of parameters to determine the trajectory of a circular interpolation method and the method of frequency control stepper motor. Stepper motor control system has been developed using the software and hardware co-simulation method, can effectively reduce the system development cycle and cost. Finally, the stepper motor control system application examples.

基于单片机的步进电机驱动控制

基于单片机的步进电机驱动控制 一、步进电机概述 1.步进电机的定义 步进电机指的是以数字脉冲信号作为电机线或教位移的控制信号,并以数字脉冲频率对电机的转速进行控制的动力控制系统。 在负载正常范围的情况下,步进电机的运行状态只和数字脉冲发生器提供的信号的频率和脉冲占空比有关,一般情况下,电机的状态不受负载的影响。电机的运行角度只和每次所给予的脉冲信号强度有关,而电机的运行速度也只和脉冲信号的频率有直接关 系。这种采用弱点控制强电的控制方式使得步进电机在速度、位移等控制领域有着普通电机不能比拟的优势。 2.驱动控制系统框图 步进电机控制系统有着精确控制、运行稳定的特性,这一其他电机不能比拟的优势使得步进电机得到了广泛的应用。而一般对步进电机控制系统的驱动必须要包含脉冲信 号发生部分,功放部分和驱动控制部分等几个模块电路,我们根据这些通过的模块电路,可将步进电机控制系统的通用框图绘制如下: 在上图的步进电机驱动控制系统方框图中,控制步进电机运行状态的脉冲信号一 般由集成芯片产生,可以是单片机、等智能芯片,也可以是一般的数字电路集成芯片。信号分配环节则要根据步进电机的型号来选择,如四相步进电机有四相四拍和四相 八拍种信号分配的方式;两相步进电机有两相四拍和八拍等脉冲加载形式。功放部分 在驱动环节上显得尤为重要。动态平均电流是步进电机转矩大小的决定因素,前提条件 是电机的速度。电机力矩与平均电流成正比,驱动系统对电机的反电势消弱越多,则平 均电流就越大。 我们一般可以用恒压和恒压串电阻的方法来驱动,或者在条件允许的情况下我们可以用高低压驱动、恒流和细分数等方法来驱动实际的应用过程种,多采用数字集成驱 动芯片作为步进电机的驱动手段。 二、现阶段国内外步进电机驱动的常用方式 1.变频器控制方式 使用变频器对步进电机进行驱动控制时,可以很好的解决步进电机在启动和停止时 容易失步的问题,提高了系统的控制精度。但是变频器的应用成本较高,结构和操作也 比较复杂,无形中提高步进电机的控制难度。 2.PLC控制方式 使用ABB、西门子、欧姆龙等国际知名生产制造商研发的系列产品可以 实现对步进电机的理想化控制,但是基于核心的步进电机控制系统成本高昂,且 难以实现精确控制,在本系统中不太适合。 3.单片机控制方式 随着嵌入式系统在工业控制领域中的广泛应用,以单片机特别是系列单片机 作为控制核心的步进电机控制电路在生产生活领域得到了普及,单片机有着大规模数字

完整的单片机控制步进电机程序

#include "reg52.h" #include "INTRINS.H" #include #include #define uint unsigned int #define uchar unsigned char void check_addr(void); /*地址核对*/ uchar code slave_addr[4]={00, 01, 02, 255}; /*从机地址*/ uchar idata T0low, T0high,common_count,input_order,cmd_in_permit,interval; uchar sent_ok,speed_change,start_up,start_end,address_true,i; uint y1; uint code add[100]={60006,62771,63693,64154,64430,64614,64746,64845,64922,64983,65033,65075,651 11,65141,65167,65190,65211,65229,65245,65260,65273,65285,65296,65306,65315,65323,65331 ,65339,65345,65352,65358,65363,65368,65373,65378,65382,65387,65390,65394,65398,65401,6 5404,65407,65410,65413,65416,65418,65421,65423,65425,65428,65430,65432,65434,65435,654 37,65439,65441,65442,65444,65445,65447,65448,65450,65451,65452,65453,65455,65456,65457 ,65458,65459,65460,65461,65462,65463,65464,65465,65466,65467,65468,65469,65469,65470,6 5471,65472,65472,65473,65474,65475,65475,65476,65477,65477,65478,65478,65479,65480,654 80,65481}; sbit P2_0=P2^0; /*作输入步进电机的脉冲信号发送口*/ sbit P2_2=P2^2; /*作输入步进电机的旋转方向信号发送口*/ sbit P1_0=P1^0; /*作串口输出信号的使能口, P1_0=0时接通串口,输出信号*/ sbit WD=P1^7; /*看门狗*/ main() { P2_0=0; P2_2=0; /*步进电机的旋转方向待试验后确定*/ P1_0=1; /*开机时需要关断,串口发送功能,需要时再接通*/ WD=1; /*看门狗先为1,电平翻转为喂狗*/ i=0; common_count=0; cmd_in_permit=0; input_order=0; interval=0; address_true=1; speed_change=0; start_up=0;

51单片机控制四相步进电机解析

51单片机控制四相步进电机 2009年07月21日星期二 12:44 51单片机控制四相步进电机 2009-03-01 18:53 接触单片机快两年了,不过只是非常业余的兴趣,实践却不多,到现在还算是个初学者吧。这几天给自己的任务就是搞定步进电机的单片机控制。以前曾看过有关步进电机原理和控制的资料,毕竟自己没有做过,对其具体原理还不是很清楚。今天从淘宝网买了一个EPSON的UMX-1型步进电机,此步进电机为双极性四相,接线共有六根,外形如下 图所示: 详细内容: https://www.wendangku.net/doc/2b12633188.html,/31907887_d.h tml

拿到步进电机,根据以前看书对四相步进电机的了解,我对它进行了初步的测试,就是将5伏电源的正端接上最边上两根褐色的线,然后用5伏电源的地线分别和另外四根线(红、兰、白、橙)依次接触,发现每接触一下,步进电机便转动一个角度,来回五次,电机刚好转一圈,说明此步进电机的步进角度为360/(4×5)=18度。地线与四线接触的顺序相反,电机的转向也相反。 如果用单片机来控制此步进电机,则只需分别依次给四线一定时间的脉冲电流,电机便可连续转动起来。通过改变脉冲电流的时间间隔,就可以实现对转速的控制;通过改变给四

线脉冲电流的顺序,则可实现对转向的控制。所以,设计了如下电路图: C51程序代码为: 代码一 #include static unsigned int count; static unsigned int endcount; void delay(); void main(void)

51单片机控制步进电机程序及硬件电路图

#include static unsigned int count; //计数 static int step_index; //步进索引数,值为0-7 static bit turn; //步进电机转动方向 static bit stop_flag; //步进电机停止标志 static int speedlevel; //步进电机转速参数,数值越大速度越慢,最小值为1,速度最快static int spcount; //步进电机转速参数计数 void delay(unsigned int endcount); //延时函数,延时为endcount*0.5毫秒 void gorun(); //步进电机控制步进函数 void main(void) { count = 0; step_index = 0; spcount = 0; stop_flag = 0; P1_0 = 0; P1_1 = 0; P1_2 = 0; P1_3 = 0; EA = 1; //允许CPU中断 TMOD = 0x11; //设定时器0和1为16位模式1 ET0 = 1; //定时器0中断允许 TH0 = 0xFE;

TL0 = 0x0C; //设定时每隔0.5ms中断一次TR0 = 1; //开始计数 turn = 0; speedlevel = 2; delay(10000); speedlevel = 1; do{ speedlevel = 2; delay(10000); speedlevel = 1; delay(10000); stop_flag=1; delay(10000); stop_flag=0; }while(1); } //定时器0中断处理 void timeint(void) interrupt 1 { TH0=0xFE; TL0=0x0C; //设定时每隔0.5ms中断一次count++; spcount--; if(spcount<=0) { spcount = speedlevel; gorun(); } } void delay(unsigned int endcount) { count=0; do{}while(count

51单片机驱动步进电机的方法(详解)

51单片机驱动步进电机的方法2019.02 这款步进电机的驱动电压12V,步进角为7.5度. 一圈360 度, 需要48 个脉冲完成!!! 该步进电机有6根引线,排列次序如下:1:红色、2:红色、3:橙色、4:棕色、5:黄色、6:黑色。 采用51驱动ULN2003的方法进行驱动。 ULN2003的驱动直接用单片机系统的5V电压,可能力矩不是很大,大家可自行加大驱动电压到12V。 ;****************************************************************************** ;*************************步进电机的驱动*************************************** ; DESIGN BY BENLADN911 FOSC = 12MHz 2005.05.19

;--------------------------------------------------------------------------------- ; 步进电机的驱动信号必须为脉冲信号!!! 转动的速度和脉冲的频率成正比!!! ; 本步进电机步进角为7.5度. 一圈360 度, 需要48 个脉冲完成!!! ;--------------------------------------------------------------------------------- ; A组线圈对应P2.4 ; B组线圈对应P2.5 ; C组线圈对应P2.6 ; D组线圈对应P2.7 ; 正转次序: AB组--BC组--CD组--DA组(即一个脉冲,正转7.5 度) ;---------------------------------------------------------------------------------- ;----------------------------正转-------------------------- ORG 0000H LJMP MAIN ORG 0100H MAIN: MOV R3,#144 正转3 圈共144 脉冲 START: MOV R0,#00H START1: MOV P2,#00H MOV A,R0 MOV DPTR,#TABLE MOVC A,@A+DPTR JZ START 对A 的判断,当A = 0 时则转到START MOV P2,A LCALL DELAY INC R0 DJNZ R3,START1 MOV P2,#00H LCALL DELAY1 ;-----------------------------反转------------------------ MOV R3,#144 反转一圈共144 个脉冲 START2: MOV P2,#00H

用单片机控制步进电机

用单片机控制步进电机 步进电机是机电控制中一种常用的执行机构,它的用途是将电脉冲转化为角位移,通俗地说:当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度(及步进角)。通过控制脉冲个数即可以控制角位移量,从而达到准确定位的目的;同时通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。 一、步进电机常识 常见的步进电机分三种:永磁式(PM),反应式(VR)和混合式(HB),永磁式步进一般为两相,转矩和体积较小,步进角一般为7.5度或15度;反应式步进一般为三相,可实现大转矩输出,步进角一般为1.5度,但噪声和振动都很大。在欧美等发达国家80年代已被淘汰;混合式步进是指混合了永磁式和反应式的优点。它又分为两相和五相:两相步进角一般为1.8度而五相步进角一般为 0.72度。这种步进电机的应用最为广泛。 二、永磁式步进电机的控制 下面以电子爱好者业余制作中常用的永磁式步进电机为例,来介绍如何用单片机控制步进电机。 图1是35BY型永磁步进电机的外形图,图2是该电机的接线图,从图中可以看出,电机共有四组线圈,四组线圈的一个端点连在一起引出,这样一共有5根引出线。要使用步进电机转动,只要轮流给各引出端通电即可。将COM端标识为C,只要AC、 C、BC、 C,轮流加电就能驱动步进电机运转,加电的方式可以有多种,如果将COM端接正电源,那么只要用开关元件(如三极管),将A、、B、轮流接地。 下表列出了该电机的一些典型参数: 表1 35BY48S03型步机电机参数 型号步距角相数电压电流电阻最大静转距定位转距转动惯量 35BY48S03 7.5 4 12 0.26 47 180 65 2.5 有了这些参数,不难设计出控制电路,因其工作电压为12V,最大电流为0.26A,因此用一块开路输出达林顿驱动器(ULN2003)来作为驱动,通过P1.4~P1.7来控制各线圈的接通与切断,电路如图3所示。开机时,P1.4~P1.7均为高电平,依次将P1.4~P1.7切换为低电平即可驱动步进电机运行,注意在切换之前将前一个输出引脚变为高电平。如果要改变电机的

最新51单片机控制四相步进电机电路图汇总

51单片机控制四相步进电机电路图

51单片机控制四相步进电机 接触单片机快两年了,不过只是非常业余的兴趣,实践却不多,到现在还算是个初学者吧。这几天给自己的任务就是搞定步进电机的单片机控制。以前曾看过有关步进电机原理和控制的资料,毕竟自己没有做过,对其具体原理还不是很清楚。今天从淘宝网买了一个EPSON的UMX-1型步进电机,此步进电机为双极性四相,接线共有六根,外形如下图所 示: 拿到步进电机,根据以前看书对四相步进电机的了解,我对它进行了初步的测试,就是将5伏电源的正端接上最边上两根褐色的线,然后用5伏电源的地线分别和另外四根线(红、兰、白、橙)依次接触,发现每接触一下,步进电机便转动一个角度,来回五次,电机刚好转一圈,说明此步进电机的步进角度为360/(4×5)=18度。地线与四线接触的顺序相反,电机的转向也相反。 如果用单片机来控制此步进电机,则只需分别依次给四线一定时间的脉冲电流,电机便可连续转动起来。通过改变脉冲电流的时间间隔,就可以实现对转速的控制;通过改变给四线脉冲电流的顺序,则可实现对转向的控制。所以,设计了如下电路图:

C51程序代码为: 代码一 #include static unsigned int count; static unsigned int endcount; void delay(); void main(void) { count = 0; P1_0 = 0; P1_1 = 0; P1_2 = 0; P1_3 = 0;

EA = 1; //允许CPU中断TMOD = 0x11; //设定时器0和1为16位模式1 ET0 = 1; //定时器0中断允许TH0 = 0xFC; TL0 = 0x18; //设定时每隔1ms中断一次 TR0 = 1; //开始计数 startrun: P1_3 = 0; P1_0 = 1; delay(); P1_0 = 0; P1_1 = 1; delay(); P1_1 = 0; P1_2 = 1; delay(); P1_2 = 0; P1_3 = 1; delay(); goto startrun; } //定时器0中断处理 void timeint(void) interrupt 1

基于51单片机的步进电机控制-

基于51单片机的步进电机控制 [摘要]本课程设计的内容是利用51单片机,达到控制步进电机的启动、 停止、正转、反转、两档速度和状态显示的目的,使步进电机控制更加灵活。步进电机驱动芯片采用ULN2803,ULN2803具有大电流、高电压,外电路简单等优点。利用四位数码管增设电机状态显示功能,各项数据更直观。实测结果表明,该控制系统达到了设计的要求。 关键字:步进电机、数码管、51单片机、ULN2803 一步进电机与驱动电路 1.1 什么是步进电机 步进电机是一种将电脉冲转化为角位移的执行机构。通俗一点讲:当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度(及步进角)。可以通过控制脉冲个数来控制角位移量,从而达到准确定位的目的;同时也可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。 1.2 步进电机的种类 步进电机分永磁式(PM)、反应式(VR)、和混合式(HB)三种。永磁式步进一般为两相,转矩和体积较小,步进角一般为7.5度或15度;反应式步进一般为三相,可实现大转矩输出,步进角一般为1.5度,但噪声和振动都很大。在欧美等发达国家80年代已被淘汰;混合式步进是指混合了永磁式和反应式的优点。它又分为两相和五相:两相步进角一般为1.8度而五相步进角一般为0.72度。这种步进电机的应用最为广泛。 1.3 步进电机的特点 1.精度高一般的步进电机的精度为步进角的3-5%,且不累积。可在宽广的频率范围内通过改变脉冲频率来实现调速,快速起停、正反转控制及制动等,这是步进电动机最突出的优点 2.过载性好其转速不受负载大小的影响,不像普通电机,当负载加大时就会出现速度下降的情况,所以步进电机使用在对速度和位置都有严格要求的场合; 3.控制方便步进电机是以“步”为单位旋转的,数字特征比较明显,这样就给计算机控制带来了很大的方便,反过来,计算机的出现也为步进电机开辟了更为广阔的使用市场;

单片机步进电机控制实训报告.doc

单片机课程设计——步进电动机系统实训报告 李会民 电子工程系应用电子高职(3)08-1班 二00九年十二月

步进电机控制实训报告 一、实验要求 利用P0输出脉冲序列,74LS244输入开关量,开关K2-K8控制步进电机转换(分6挡).K0,K1控制步进电机转向.必须要K2-K8中一开关和K0,K1中一开关同时为‵1′时步进电机才启动,其他情况步进电机不工作. 步进电机驱动原理是通过对它每线圈中的电流的顺序切换来使电机作步进式旋转.驱动电路由脉冲信号来控制,所以调节脉冲信号的频率便可改变步进电机的转速.微电脑控制电机步进电机最合适. 二、实验目的 (a)了解步进电机控制的基本原理 (b)掌握控制步进电机转动编程方法 三、单片机控制原理及电路连线 单片机是用来为步进电机进行控制的,给电机提供时序脉冲,让电机以某一种方式进行运转。硬件部分设计 AT89C51 外围电路设计包含有三部分的设计:键盘模块,晶振模块及复位模块。 通过按键的输入,单片机作为控制的中心决定步进电机的正转,反转,启动及停止等操作。同时通过单片机实现电子时钟控制步进电机。 键盘设计。考虑有两种方式:需要上拉电阻的方式和不需要上拉电阻的方式。由于单片内部设有小的上拉电阻,当外围电路很小时,是可以不考虑前一种方式的。我们的键盘只是起到输入时序的作用,并没有外带大的电路,所以我们选择第二种方式: 当K_1按下时:步进电机处于启动状态; 当K_2按下时:步进电机处于停止状态; 当K_3按下时:步进电机处于正向状态; 当K_4按下时:步进电机处于反向状态; 基于AT89C51的步进电机驱动器控制系统电路原理可以表示为如下图:

51单片机实现步进电机控制

摘要 8051单片机控制步进电机进行简单的转速控制,包括启停变换转速控制等。利用利用https://www.wendangku.net/doc/2b12633188.html,单片机实验箱以模拟电压提供电机转速设定值,使用并行模数转换芯片ADC0809 进行电压信号的采集和数据处理转换得到速度给定的数字量,通过单片机的P1 口控制步进电机的控制端,使其按一定的控制方式进行转动。调节步进电机转速,使其与给定值相当,最后,利用ZLG7290模块驱动LED数码管显示速度设定值。通过这个单片机控制系统的设计来掌握A/D转换的原理,了解步进电机的工作原理,掌握它的转速控制方式和调速方法,并且掌握LED显示原理和ZLG7290模块的使用方法,用LED数码管显示模数转换的结果,设计电路的硬件接线图和实现上述要求的程序。最后实现通过改变模拟电压就可以改变步进电机的转速控制,并且在LED 数码管上显示步进电机的转速这一功能。 关键词:51单片机调速步进电机LED显示

绪论 在进行51单片机的学习和实验过程中曾利用51单片机对步进电机进行过简单的控制,包括利用https://www.wendangku.net/doc/2b12633188.html,单片机试验箱对步进电机进行转角控制,方向控制等。即按照设定的转动角度步进电机进行动作,来实现步进电机的实时控制,通过设定的方向来实现步进电机的方向反转控制等,并利用利用ZLG7290模块驱动LED数码管显示步进电机的设定值与步进电机实际所转过过的角度,同时显示步进电机的旋转方向等。 这次所进行的步进电机转速控制系统是对步进电机的另一种控制,即实现步进电机的转速控制而不是单单的转动角度控制,并且是通过模拟量输入来时时的控制步进电机的转速。并且通过数码管来显示出所设定的步进电机的转速。

单片机实现步进电机控制

科信学院 单片机系统设计项目(三级项目) 设计说明书 (2012/2013学年第二学期) 题目:基于单片机的步进电机控制______ __ 专业班级:通信工程10级1班___ __ 学生姓名:彭斯媛刘洋何亚惠_ ____ 刘萌李赛___ __ 学号: 100312102 100312101 100312110 100312120 100312128___ __ 指导教师:马小进、贾少锐、李晓东、付佳_ 设计周数: 2周____ ___ :__ ___ 2013年6月21日 设计成绩:

目录 1 步进电机的简介 (3) 1.1 什么是步进电机 (3) 1.2 步进电机的分类 (3) 1.3 步进电机的特点 (3) 1.4 步进电机的原理 (3) 1.5步进电机的驱动电路 (4) 2 89C51单片机 (6) 2.1 单片机引脚图 (6) 2.2 单片机简介 (6) 2.2.1主要特性 (6) 2.2.2 管脚说明 (6) 2.2.3 振荡器特性 (8) 2.2.4 芯片擦除 (9) 3 硬件程序设计 (9) 3.1 系统总体框图 (9) 3.2 最小系统 (10) 3.3驱动部分 (10) 3.4 状态指示部分 (11) 3.5 按键部分 (11) 3.6 时钟部分 (12) 4 Proteus仿真总图 (12) 5实物图 (13) 6系统程序 (13) 7课程设计总结 (15) 8参考文献 (16)

1步进电机简介 1.1什么是步进电机 步进电机是一种将电脉冲转化为角位移的执行机构。通俗一点讲:当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度(及步进角)。可以通过控制脉冲个数来控制角位移量,从而达到准确定位的目的;同时也可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。 1.2步进电机的分类 步进电机分永磁式(PM)、反应式(VR)、和混合式(HB)三种。永磁式步进一般为两相,转矩和体积较小,步进角一般为7.5度或15度;反应式步进一般为三相,可实现大转矩输出,步进角一般为 1.5度,但噪声和振动都很大。在欧美等发达国家80年代已被淘汰;混合式步进是指混合了永磁式和反应式的优点。它又分为两相和五相:两相步进角一般为 1.8度而五相步进角一般为 0.72度。这种步进电机的应用最为广泛。 1.3步进电机的特点 1.精度高 一般的步进电机的精度为步进角的3-5%,且不累积。可在宽广的频率范围内通过改变脉冲频率来实现调速,快速起停、正反转控制及制动等,这是步进电动机最突出的优点; 2.过载性好 其转速不受负载大小的影响,不像普通电机,当负载加大时就会出现速度下降的情况,所以步进电机使用在对速度和位置都有严格要求的场合; 3.控制方便 步进电机是以“步”为单位旋转的,数字特征比较明显,这样就给计算机控制带来了很大的方便,反过来,计算机的出现也为步进电机开辟了更为广阔的使用市场; 4.整机结构简单 传统的机械速度和位置控制结构比较复杂,调整困难,使用步进电机后,使得整机的结构变得简单和紧凑。

步进电机的单片机控制

本设计采用凌阳16 位单片机SPCE061A对步00进电机进行控制,通过IO口输出的具有时序的方波作为步进电机的控制信号,信号经过芯片L298N驱动步进电机;同时,用4X4的键盘来对电机的状态进行控制,并用数码管显示电机的转速,采用74LS164作为4位单个数码管的显示驱动,从单片机输入信号;利用凌阳单片机的语音功能播报电机的转速。 步进电机的单片机控制 作者:李通刘志垠 摘要:本设计采用凌阳16 位单片机SPCE061A对步进电机进行控制,通过IO口输出的具有时序的方波作为步进电机的控制信号,信号经过芯片L298N驱动步进电机;同时,用4X4的键盘来对电机的状态进行控制,并用数码管显示电机的转速,采用74L S164作为4位单个数码管的显示驱动,从单片机输入信号;利用凌阳单片机的语音功能播报电机的转速。 关键词:步进电机单片机数码管 一、方案论证与比较 1、本设计的重点在于对步进电机的控制和驱动,设计中受控电机为四相六线制的步进电机(内阻33欧,步进1.8度,额定电压12V) 方案一:使用多个功率放大器件驱动电机 通过使用不同的放大电路和不同参数的器件,可以达到不同的放大的要求,放大后能够得到较大的功率。但是由于使用的是四相的步进电机,就需要对四路信号分别进行

放大,由于放大电路很难做到完全一致,当电机的功率较大时运行起来会不稳定,而且电路的制作也比较复杂。 方案二:使用L298N芯片驱动电机 L298N芯片可以驱动两个二相电机(如图1-1),也可以驱动一个四相电机,输出电压最高可达50V,可以直接通过电源来调节输出电压;可以直接用单片机的IO口提供信号;而且电路简单,使用比较方便。 图1-1 通过比较,使用L298N芯片充分发挥了它的功能,能稳定地驱动步进电机,且价格不高,故选用L298N驱动电机。而使用L298N时,可以用L297来提供时序信号,可以节省单片机IO口的使用;也可以直接用单片机模拟出时序信号,由于控制并不复杂,故选用后者。 2、数码管显示电路的设计 方案一:串行接法 设计中要显示4位数字,用74LS164作为显示驱动,其中带锁存,使用串行接法可以节约IO口资源,但要使用SIO,发送数据时容易控制。 方案二:并行接法 使用并行接法时要对每个数码管用IO口单独输入数据,占用资源较多。

单片机控制步进电机驱动器原理

单片机控制步进电机驱动器原理 步进电机在控制系统中具有广泛的应用。它可以把脉冲信号转换成角位移,并且可用作电磁制动轮、 电磁差分器、或角位移发生器等。 有时从一些旧设备上拆下的步进电机(这种电机一般没有损坏)要改作它用,一般需自己设计驱动器。 本文介绍的就是为从一日本产旧式打印机上拆下的步进电机而设计的驱动器。 本文先介绍该步进电机的工作原理,然后介绍了其驱动器的软、硬件设计。 1. 步进电机的工作原理 该步进电机为一四相步进电机,采用单极性直流电源供电。只要对步进电机的各相绕组按合适的时序通电,就能使步进电机步进转动。图1是该四相反应式步进电机工作原理示意图。 图1 四相步进电机步进示意图 开始时,开关SB接通电源,SA、SC、SD断开,B相磁极和转子0、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方向转 动。 四相步进电机按照通电顺序的不同,可分为单四拍、双四拍、八拍三种工作方式。单四拍与双四拍的步距角相等,但单四拍的转动力矩小。八拍工作方式的步距角是单四拍与双四拍的一半,因此,八拍工作方式既可以保持较高的转动力矩又可以提高控制精度。

单四拍、双四拍与八拍工作方式的电源通电时序与波形分别如图2.a、b、c所示: a. 单四拍 b. 双四拍c八拍 图2.步进电机工作时序波形图 2.基于AT89C2051的步进电机驱动器系统电路原理 步进电机驱动器系统电路原理如图3:

基于单片机控制步进电机

课程设计(论文)说明书 题目:基于单片机控制步进电机 院(系): 专业:自动化 学生姓名:杨健 学号:0316680007 指导教师:薛云灿 职称: 2017年5 月1日

本课程设计的要求是用51系列单片机对步进电机进行控制,对单片机控制步进电机系统的控制方式和软件设计进行研究,分别从速度控制,正反转进行详细的分析,步进电机是一种常用的执行机构,它的用途是将电脉冲转化为角位移。当步进驱动收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度(及步进角)。通过控制脉冲个数即可控制角位移量,从而达到准确定位的目的。 关键字:单片机;步进电机;控制系统;

In this paper, the design used 51microcontroller series of stepper motor control SCM control of the stepper motor control system and software design of the study from the speed and direction, stepper motor electromechanical control the implementation. When stepping drivers receive a pulse signal it stepper motor driven in the direction set by a fixed rotating angular displacement, thus achieving the purpose of accurate positioning; pass control to control the pulse Frequency of motor rotation speed and acceleration so as to achieve the purpose of speed. Key words:Single slice machine;Stepper motor;Control system

51单片机驱动步进电机__终极完整版

51单片机驱动步进电机__终极(完整版) 在这里介绍一下用51单片机驱动步进电机的方法。这款步进电机的驱动电压12V,步进角为 7.5度 . 一圈360 度 , 需要 48 个脉冲完成!!! 该步进电机有6根引线,排列次序如下:1:红色、2:红色、3:橙色、4:棕色、5:黄色、6:黑色。 采用51驱动ULN2003的方法进行驱动。 ULN2003的驱动直接用单片机系统的5V电压,可能力矩 不是很大,大家可自行加大驱动电压到12V。

;************************************************ ****************************** ;************************* 步进电机的驱动 *************************************** ; DESIGN BY BENLADN911 FOSC = 12MHz 2005.05.19 ;--------------------------------------------------------------------------------- ; 步进电机的驱动信号必须为脉冲信号!!! 转动的速度和脉冲的频率成正比!!! ; 本步进电机步进角为 7.5度 . 一圈 360 度 , 需要48 个脉冲完成!!! ;--------------------------------------------------------------------------------- ; A组线圈对应 P2.4 ; B组线圈对应 P2.5 ; C组线圈对应 P2.6 ; D组线圈对应 P2.7 ; 正转次序: AB组--BC组--CD组--DA组 (即一个脉冲,正转 7.5 度) ;---------------------------------------------------------------------------------- ;----------------------------正转

51单片机控制四相步进电机(详细)

。今天从淘宝网买了一个EPSON的UMX-1型步进电机,此步进电机为双极性四相,接线共有六根,外形如下图所示: 拿到步进电机,根据以前看书对四相步进电机的了解,我对它进行了初步的测试,就是将5伏电源的正端接上最边上两根褐色的线,然后用5伏电源的地线分别和另外四根线(红、兰、白、橙)依次接触,发现每接触一下,步进电机便转动一个角度,来回五次,电机刚好转一圈,说明此步进电机的步进角度为3 60/(4×5)=18度。地线与四线接触的顺序相反,电机的转向也相反。

如果用单片机来控制此步进电机,则只需分别依次给四线一定时间的脉冲电流,电机便可连续转动起来。通过改变脉冲电流的时间间隔,就可以实现对转速的控制;通过改变给四线脉冲电流的顺序,则可实现对转向的控制。所以,设计了如下电路图:

制作的实物图如下:

C51程序代码为: 代码一 #include static unsigned int count; static unsigned int endcount; void delay(); void main(void) { count = 0; P1_0 = 0; P1_1 = 0; P1_2 = 0; P1_3 = 0; EA = 1; //允许CPU中断 TMOD = 0x11; //设定时器0和1为16位模式1 ET0 = 1; //定时器0中断允许

TH0 = 0xFC; TL0 = 0x18; //设定时每隔1ms中断一次 TR0 = 1; //开始计数 startrun: P1_3 = 0; P1_0 = 1; delay(); P1_0 = 0; P1_1 = 1; delay(); P1_1 = 0; P1_2 = 1; delay(); P1_2 = 0; P1_3 = 1; delay(); goto startrun; } //定时器0中断处理 void timeint(void) interrupt1 { TH0=0xFC; TL0=0x18; //设定时每隔1ms中断一次 count++; } void delay() { endcount=2; count=0; do{}while(count

相关文档
相关文档 最新文档