基于单片机的步进电机控制,有高手懂吗?本人的毕业论文.学哥学姐.懂的都说几句..谢谢啦..
这个有资料完全有的
步进电机控制属于应用层,通常应用步进电机的场合是工业控制,对于绝大多数工业现场控制使用的是PLC控制步进电机。
至于单片机应用于控制步进电机,通常是针对小型的电器或小型的机械设备,对此,需要学习单片机软硬件知识。
至于哪个好,那么需要看你个人职业发展的方向了,如果你个人职业发展趋向于电子电器方面,那么建议学单片机控制步进电机;如果你个人职业发展方向趋向于工业现场控制,那么建议学习PLC控制步进电机。
摘 要:本文论述了以单片机AT89C51为控制器的步进电机的控制系统,内容主要包括该系统的硬件组成,步进电机运行过程的详细
分析,PC机与AT89C51单片机之间的串行通信以及AT89C51单片机对步进电机的控制程序流程图等。
关键字:单片机; 通信; 步进电动机
1 引言
平为TTL电平,为了取得一致的传输信号,因此需要采用电平转换
在电气时代的今天,电动机一直在现代化的生产和生活中起
芯片MAX485。根据实际需求选用AT89C51单片机,但由于其数
着十分重要的作用。无论是在工农业生产还是在日常生活中的家
据存储区只有256个单元,需要扩展片外数据存储器6264。此外
用电器,都大量地使用着各种各样的电动机。因此对电动机的控
采用脉冲分配器CH250实现单片机对步进电动机的通电换向即脉
制变得越来越重要了。电动机的控制技术的发展得力于微电子技
冲分配,通过光电耦合器4N25实现步进电动机与单片机的电气隔
术、电力电子技术、传感器技术、永磁材料技术、自动控制技术、
离,由于单片机本身的驱动能力有限,因此需要采用专门的驱动电
微机应用技术的最新发展成就。正是这些技术的进步使电动机控
路单电压驱动来实现功率放大,从而为电动机提供足够大的电流。
制技术在近二十多年内发生了翻天覆地的变化。其中电动机的控
总体的硬件方框图如图1所示:
制部分已由模拟控制逐渐让位于以单片机为主的微处理器控制。
本文采用硬件和软件相结合的办法实现单片机对步进电动机的运
动控制。
2 硬件部分
[2]
PC机与AT89C51单片机 之间的串行通信在硬件上是由转
换器ATC-106和电平转换芯片MAX485来完成的。由于PC机
图1 总体的硬件框图
采用的是RS-232C接口标准,根据项目要求与生产中的实际情
况,需要采用传输距离较远的RS-485,因此需要采用RS-232C
3 软件部分
收稿日期:2007-05-18
通过软件实现PC机与单片机间的异步串行通信。PC机采用查询的方式发送和接收数据,单片机采用中断的方式接收PC机 T —— 步进电动机运行第 +1 步时所用的时间
N
1+N
1
1
传送的信息,从而确定步进电动机的旋转方向,走的总的脉冲数; 即匀速运行每一步所需要的时间
采用软件延时法控制脉冲的分配,从而控制步进电动机的整个运 由于采用软件延时的方法来控制单片机发出脉冲的时间间
行过程。 隔即通过改变脉冲的频率来改变步进电动机的运行速度。在步
进电动机匀加速运行阶段,只需按电动机每走一步所需要的时间
3.1 步进电动机运行的分析
[4]
来调用延时子程序即可。根据
步进电动机 的加减速要有严格的控制要求,那就是保证在
-VV
1-
ii
不失步和过冲的前提下,用最快的速度和最短的时间移动到指定
=a
(6)
+
TT
1-
ii
位置。本设计要求步进电动机的速度按图2所示运行。
—— 步进电动机匀加速运行阶段走第i步时的速度
V
i
—— 步进电动机匀加速运行阶段走第i步时所用的时间
T
i
由于步进电动机在匀加速运行阶段走最后一步时的速度
与匀速运行时的速度V相同
V
N
1
L
L
=V= 又因为 = 将其代入
=
且
V V
V
V
N
1+N
1
1
1-i
i
T
T
i
1-i
(2-6)
TLTL
-
1-ii
整理得到
a=
+TT
-
1ii
2
2
+
+ (7)
TaT
0=LT
TaTL
( )
-
1-ii
i
1-ii
图2 步进电动机的运行过程
通过软件调用一个开平方函数就可以求得
首先令i=
N
1
由图可知匀加速阶段与匀减速阶段的加速度和减速度大小
等直到 、T ,这样就可以求出步进电动机匀
、
、
T
1
T
T
T
2
1-N
3-N
2-N
1
1
1
相同,方向相反,加减速的时间相同,因此只需算出加速段走的步
加速运行阶段从静止开始每走一步所用的时间。电动机在升速
数就可以知道减速时所走的步数,二者是一样的。计算过程如下:
过程中所走的总的步数即脉冲数为 ,从静止开始步进电动机
N
1
首先,恒速运行时的速度V是由用户设置的,因此是一个已
在匀加速阶段每走一步,升速阶段的总步数就减1,通过软件延时
知量。加速度a,一个脉冲走过的距离L,整个运行过程所走的步
的方法来控制走每一步所用的时间,加速阶段的延时时间是逐渐
数即总的脉冲数P也都是给定值。运行方向是根据用户的要求
,这样进行下
、
直到 、 、
变短的,依次为 、
T
T
T
T
T
T
1
3-N
2
2-N
1
N
1-N
1
1
1
由软件确定的。
去,直到 =0,加速过程结束,进入恒速运行阶段。步进电动机
N
1
接着计算步进电动机运行时间
N
在恒速过程中走的总步数为 ,从恒速运行开始,电动机每走一
3
—— 为步进电动机匀加速运行时所用
根据
t
atV =
1 1
步,恒速总步数就减1,因为恒速运行时走每一步用的时间都是相
的时间
同的,因此软件延时的时间均为 ,直到恒速总步数减为0,恒
T
V
1+N
1
可以求出t =
(1)
1
a
速过程结束,进入减速运行阶段。由于匀减速运行的过程是加速
由于匀加速阶段与匀减速阶段的加速度大小相同,因此匀
过程的逆过程,在匀加速运行阶段,步进电动机走的总的步数为
t
加速运行阶段所用的时间t 与匀减速运行时所用的时间 是相
2
1
,且 =N ,减速阶段电动机每走一步,减速总步数就减1,
N
N
1
1
2
2
2
at
。因为是匀加速运行,所以S=
同的,即t =
,由a和t
t
1
1
1
2
2
软件延时的时间是逐渐变常的,依次为 、
、 、 直
T
T
T T
N
1-N
2-N 3-N
1
1
1 1
求出步进电动机匀加速运行阶段走过的总的距离,通过
2
到 、 ,减速总步数减为0,减速过程结束,电动机停止运行。
T
S
T
at
21
2
1
1
N
=
(2)
=
1
L
L 3.2 通信软件的设计
可以求出匀加速运行阶段步进电动机走的总步数即脉冲
[5]
PC机与AT89C51的串行通信程序 由两部分组成:一部分
数。由于步进电动机匀减速运行阶段是匀加速运行阶段的逆过
是PC机的通信程序,另一部分是AT89C51的通信程序。PC机
程,因此匀减速运行阶段所走的步数
与匀加速运行阶段所走
N
2
发送时,AT89C51单片机一定接收;PC机接收时,AT89C51单片
的步数 是相同的,即 = ,由P、 和 可以求出步进电
N N N
N N
1
1
2
1 2
机肯定发送。而且对应发送和接收的字符要相同,否则不能达到
动机匀速运行阶段走的总步数即脉冲数为 ,即
N
3
正常通信的目的。此次设计PC机采用8086/8088汇编语言编
N
=P- - =P-2 (3)
N
N
N 1
3 1
2
写,AT89C51单片机端采用MCS-51语言编写。为了保证数据
步进电动机匀速运行时走每一步即每一个脉冲所需要的时
通信的可靠性,制定通信协议如下:
间是相同的,根据
① PC机与AT89C51单片机都可以发送和接收
L
(4)
V=
② PC机与AT89C51单片机的通信波特率为9600bps,采
T
1+N
1
L
(5)
因此
T
=
用的晶振频率为24MHZ,定时器T1工作在模式2,SMOD设置
为1,TH1的预设值为0CH,TL1的预设值为00H。
③ PC机与AT89C51单片机均采用串行口方式3。
④ 帧格式为:1位起始位,8位数据位,1位偶效验位,1位停
止位。
⑤ PC机发送的数据帧为:
表1 PC机发送数据帧表
帧起始标志为 02H,假设电动机的运行标号为5号,对应的
ASCII码值为30H,35H两个字节表示。若命令为传送命令MOV
则用0表示,其对应的ASCII码值为30H,用一个字节表示。D
表示步进电动机运行的方向标志,若为0则表示电动机正转,其
对应的ASCII码值为30H;若为1,则表示电动机反转,其对应的
ASCII码值为31H。P表示PC机传送给单片机的总的走的脉冲
数。若传送的命令为设置命令SET则用1表示,其对应的ASCII
码值为31H,用一个字节表示。需要单片机设置的参数有:a, V
和 L;为了便于PC机与AT89C51的通信编程,数据的长度取6
个字节。传送的数据只有5个字节,剩余的1个字节均用ASCII
码值30H补足,对应的为0。这样做不影响效验和。若为传送命
令帧,则效验和定义为方向信号D与总的脉冲数P的十六进制之
和再转换为相对应的ASCII码值。若为设置命令帧,则效验和定
义为a、V与L的十六进制之和再转换为D对应的ASCII码值。
帧结束标志为03H。
⑥ PC机采用查询的方式发送和接收数据,AT89C51单片机
采用串行口中断的方式接收和发送数据。
3.3 控制软件的设计
控制步进电动机匀加速、恒速、匀减速运行的程序流
程图如图2。
图2 控制步进电机的程序流程图
4 结束语
参考文献:
[1] 韩全立。单片机控制技术及应用[M]。北京:电子工业出
采用本方案可以很好的实现对步进电动机的控制。目前此
版社,2004
方案已经成功应用于电机控制的工厂等并取得了良好的效益,并
[2] 求是科技。单片机典型模块设计实例导航[M]。北京:人
正试图将其进一步完善以应用于压缩机、洗衣机等日常设备中。
民邮电出版社,2004
[3] 胡汉才,单片机原理及系统设计[M]。北京:清华大学出
当然,随着控制产品与控制技术的发展,步进电机的控制也会得到
版社,2002
进一步完善。
[4] 王晓明。电动机的单片机控制[M]。北京:北京航天航空
大学出版社,2002
[5] 杨金岩,郑应强,张振仁。8051单片机数据传输接口扩展
技术与应用实例[M]。北京:人民邮电出版社,2005
如何用单片机控制步进电机?
1、该电路图的工作原理:该电路是一个步进电机驱动电路,通过控制脉冲Ui,可以实现步进电机的转动。步进电机的一个线圈被表示为图中的W,通过光耦OT和脉冲变压器T与控制脉冲Ui相连。当控制脉冲Ui为高电平时,光耦OT导通,使得线圈W接收到脉冲信号,产生磁场,推动步进电机转动一个步进角度。当控制脉冲Ui为...
步进电机的单片机控制
步进电机是数字控制电机,它将脉冲信号转变成角位移,即给一个脉冲信号,步进电机就转动一个角度,因此非常适合于单片机控制。步进电机可分为反应式步进电机(简称VR)、永磁式步进电机(简称PM)和混合式步进电机(简称HB)。步进电机区别于其他控制电机的最大特点是,它是通过输入脉冲信号来进行控制的,即...
如何用单片机控制步进电机运行?
控制要求:按下SB1电动机M1启动,5S后,电动机M2启动;按下SB2电动机M1停车,过5S后,电动机M2停车(画出梯形图)控制要求:按下SB1电动机M1启动,5S后,电动机M2启动;按下SB2电动机M1停车,过5S后,电动机M2停车(画出梯形图)控制要求:按下SB1电动机M1启动,5S后,电动机M2启动;按下SB2电动机M1停车,...
单片机步进电机控制器
步进电机控制器是一种能够发出均匀脉冲信号的电子产品,它发出的信号进入步进电机驱动器后,会由驱动器转换成步进电机所需要的强电流信号,带动步进电机运转。步进电机控制器能够准确的控制步进电机转过每一个角度。驱动器所接收的是脉冲信号,每收到一个脉冲,制动器会给电机一个脉冲使电机转过一个固定的...
基于单片机的步进电机控制,有高手懂吗?本人的毕业论文.学哥学姐.懂...
分析,PC机与AT89C51单片机之间的串行通信以及AT89C51单片机对步进电机的控制程序流程图等。关键字:单片机; 通信; 步进电动机 1 引言 平为TTL电平,为了取得一致的传输信号,因此需要采用电平转换 在电气时代的今天,电动机一直在现代化的生产和生活中起 芯片MAX485。根据实际需求选用AT89C51单片机,但由于其数 ...
如何用单片机实现对四个步进电机的速度控制呢
推荐你使用表控,型号TPC4-4TD就可以满足你的要求。表控可以同时控制4个步进电机,对于你说的速度控制讲解如下:上图是表控的表格设置界面,省去了麻烦的编程,轻松实现步进电机控制。图中,第2行工作模式设置为“脉冲”模式,光标在脉冲模式的第2行时,脉冲频率项及脉冲个数输入项分别显示脉冲个数的...
用单片机对步进电机进行控制
1 单片机控制步进电机的一般原理1.1 步进电机1.1.1 步进电机介绍 步进电机是将电脉冲信号转变为角位移或线位移的开环控制元件。在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,即给电机加一个脉冲信号,电机则转过一个步距角。这一线性关系的存在,加上步进电机只有...
一个单片机可以驱动几个步进电机?
控制5个步进电机是小意思了,原则上单片机的一个I\/O脚就可以控制一个步进电机的一个线圈。5个步进电机,看是n相的。需要的I\/O脚就是5n个。但是单片机引脚是不能直接控制电机的,至少需要ULN2003(7路)或NLUN2803(8路)来驱动,比较合理的电路是单片机先接74HC240(8路反相器),再由74HC240...
如何使用单片机精确控制步进电机?
如何用单片机控制步进电机 步进电机是机电控制中一种常用的执行机构,它的用途是将电脉冲转化为角位移,通俗地说:当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度(及步进角)。通过控制脉冲个数即可以控制角位移量,从而达到准确定位的目的;同时通过控制脉冲频率来控制...
单片机怎么控制步进电机
ULN2003D 是驱动步进电机的驱动芯片,主要是匹配电机所需的电流。由于是四相电机,步进电机之所以可以转动就需要给相绕组提供连续的脉冲,所以需要4个端口来控制四相绕组的工作状态(P15应该是不需要的),具体的编码要看电机的拍数;一旦明白这些,你就可以很容易编写代码来控制电机的转动了,还有在脉冲间...
邰尤弥诺: 但用单片机是不够的,关键是要有个专用的驱动芯片,驱动芯片含有每相电流检测,当收到单片机相位开关信号时打开电流通路,由电机电感形成三角波电流,到达电机额定电流即停止而维持等待下个相位信号,并且该芯片还有停转保持半电流控制脚等功能,具体可参考芯片资料,才能根据芯片功能编程,步进电机越转越快可通过单片机对相应相位脚发控制脉冲,使脉冲频率变快就可实现,但最高速度受给驱动芯片的主电源电压有关,电压低时电感中的三角波电流到不了额定就可能发生不同步. 如果带有电机控制器的,控制器只有步进输入脉冲脚,正反转控制脚,就可对控制器的这两脚控制,在步进输入脚脉冲加快就可使转速加快.
迪庆藏族自治州13056811444: 如何使用单片机精确控制步进电机??
邰尤弥诺: 首先看你步进电机的最小步进角和你L297的最小步进角,然后看用没有用L297的细分功能,每个单片机发出的电机驱动脉冲就会让步进电机转动最小步进角除以细分数的角度,另外启动停止需要慢慢升降速,不然步进电机会有丢步,这样就不是准确的角度了.
迪庆藏族自治州13056811444: 跪求:单片机控制步进电机的原理 - ?
邰尤弥诺: 步进电机控制原理 步进电机是数字控制电机,它将脉冲信号转变成角位移,即给一个脉冲信号,步进电机就转动一个角度,因此非常适合于单片机控制.步进电机可分为反应式步进电机(简称VR)、永磁式步进电机(简称PM)和混合式步...
迪庆藏族自治州13056811444: 单片机控制步进电机 - ?
邰尤弥诺: 电机参数?驱动板参数?程序很简单的,移相控制即可:P1~1=1;P1~2=1;P1~3=1;P1~1=1;Delay1ms(1);P1~1=0;P1~2=1;P1~3=1;P1~1=1;Delay1ms(1);P1~1=1;P1~2=0;P1~3=1;P1~1=1;Delay1ms(1...
迪庆藏族自治州13056811444: 步进电机的单片机控制 - ?
邰尤弥诺: 步进电机的单片机控制 通过IO口输出的具有时序的方波作为步进电机的控制信号,信号经过芯片L298N驱动步进电机;同时,用 4X4的键盘来对电机的状态进行控制,并用数码管显示电机的转速,采用74LS164作为4位单个数码管的显示驱动,...
迪庆藏族自治州13056811444: 51单片机控制步进电机程序.在线等高分,请会写的高手大侠写出来. - ?
邰尤弥诺: 我上周刚做的这个实验 成功拉,给你参考一下吧 这可是我当时辛辛苦苦编出来的啊,不过我用的是L298驱动的 和ULN2003一样,你把它换成2003就行拉#include <AT89X51.H> unsigned char code table[]=; unsigned char temp,temp_old; ...
迪庆藏族自治州13056811444: 用51单片机怎么控制步进电机(需要程序并解释) - ?
邰尤弥诺: /************************************************************************************** * 步进电机实验 * 实现现象:下载程序后,按照光盘内操作视频接线,步进电机旋转 注意事项:无 ************************************************************************************...
迪庆藏族自治州13056811444: 单片机控制步进电机的主要问题及解决思路 - ?
邰尤弥诺: 首先,要用keil给单片机编程,步进电机自己选好型号后,与驱动器相连接,这个接线看驱动器说明书,主要难在编程,自己定义 p0,p1,p2或者其他口作为脉冲与方向控制.至于程序嘛,自己到网上下个,关键自己能看懂调试出来.
迪庆藏族自治州13056811444: 单片机怎么用一个按钮控制步进电机启动和停止? - ?
邰尤弥诺: 单片机用一个按钮控制步进电机启动和停止,这很容易的,识别按键按下的程序会写吧,那定义一个位变量,即标志位,如flag,上电后flag=0,为电机停止状态.每按一次按键,flag=!flag,即取反一次,然后再判断标志位,flag=1,则启动电机.flag=0,则停止电机.
迪庆藏族自治州13056811444: 单片机如何控制步进电机?请赐教?
邰尤弥诺: 在两者之间还要有驱动器 ,即使没有相对独立的驱动器,起码也要有驱动电路.单片机发出指令(弱电信号或数字信号)到驱动器或驱动电路;驱动电路把该指令变成合理分配的强电能量输出给步进电机.一般步进电机的驱动器都是电流型驱动器.也就是说真正能分配到步进电机的能量并不多.很多能量都在驱动内损耗了.