欢迎来到天天文库
浏览记录
ID:6219880
大小:28.50 KB
页数:7页
时间:2018-01-07
《浅谈利用单片机控制步进电机》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、浅谈利用单片机控制步进电机 摘要:步进电机作为控制用特种电机,是一种将电脉冲转化为角位移的执行机构。本文重点介绍如何利用STC89C52RC单片机软件编程控制输出脉冲的相序、频率、数量,从而达到控制24BYJ48步进电机的旋转方向、速度以及位置。关键词:单片机步进电机控制中图分类号:TM383.6文献标识码:A文章编号:1007-9416(2013)01-0006-02步进电机作为自动控制设备中的执行元件,它的旋转是以固定的角度一步步运行,由于没有积累误差和精确定位功能,广泛应用于打印机、绘图仪、机器人等设备中。目前对步进电机控制的方法主要有两种:一是通过PLC或专门的定位模块发出高速脉
2、冲,经过步进驱动器进行脉冲分配和功率放大来控制;二是利用单片机软件编程输出控制脉冲,经过驱动模块来实现方向、位置及速度的控制。单片机控制成本较低,使用灵活,本文重点分析利用STC89C52RC单片机编程实现对永磁式步进电机(24BYJ48)的控制。724BYJ48步进电机为永磁式减速步进电机,减速比为1:64,步距角为5.625°/64。24BYJ48步进电机外形如图1所示,此步进电机共有五根线,依次为:红,橙,黄,粉,蓝,五种颜色。其中橙、黄、粉、蓝四根接线分别为A、B、C、D绕组的一端,红色线为四个绕组的公共端。1步进电机的驱动电路由于单片机驱动电流较小,需要用ULN2003A来驱动步
3、进电机,ULN2003A是高耐压、大电流达林顿阵列组成的非门电路。灌电流可达500mA,并且在关态时能够承受50V的电压,输出还可以在高负载电流并行运行。驱动时将24BYJ48步进电机绕组A、B、C、D端分别与ULN2003A的输出端相连,COM端相连后接至电源,这样当与步进电机绕组连接对应的输入端为高电平时,对应的绕组得电达到驱动的目的。2步进电机的正反转控制四相步进电机可以在不同的通电方式下运行,常见的通电方式有单四拍(A-B-C-D)、双四拍(AB-BC-CD-DA)以及4-1-2八拍(A—AB—B—BC—C—CD—D—DA)三种方式,在控制过程中,我们只要改变绕组通电相序即可实现电
4、机旋转动方向的控制。以1-2励磁方式八拍为例,若A—AB—B—BC—C—CD—D—DA表示电机正转的励磁序号,则励磁序号为AD-D—CD—C—BC—B—AB—A时表示电机反转。在编程时将这些励磁序号组合成数据表,以不同查询方式送数据即可以实现正反转控制。3步进电机的转速控制7步进电机的转速取决于脉冲转换频率,也就是每步间的时间间隔。步进电机转动的速度和脉冲频率成正比,频率越高,转速越快,但力矩随之下降;反之,转速慢。但脉冲频率不能过高,当高于步进电机空载启动频率,电机不能正常启动,可能发生丢步或堵转,在有负载的情况下,启动频率应更低。在控制步进电机转速时,可以利用单片机内部定时器中断来实现
5、,通过编程控制多少次中断后送出一步信号,实现调节输出脉冲频率的目的,从而达到步进电机调速的效果。4步进电机旋转角度控制在步进电机的旋转角度由脉冲个数决定,根据24BYJ48步进电机技术参数得知,旋转角度为360度时需要360/5.625*64=4096个脉冲信号。编程时在中断程序中统计发出脉冲的个数,当到达设定值时关闭定时器,停止发送控制脉冲即可。5应用编程7如图2所示,利用STC89C52RC单片控制24BYJ48步进电机,控制脉冲由P0口输出,RP1为P0口上拉电阻,ULN2003A为步进电机驱动芯片,P2口接6个按钮,分别实现步进电机的启动、停止、正转、反转、加速、减速、旋转圈数设置
6、的控制。按下启动后启动定时,步进电机可以运行;按下停止时,关闭定时器,步进电机停止运行;正转、反转按钮可实现旋转方向控制,默认正转;减速、减速按钮控制可实现旋转速度控制;设置按钮可实现旋转圈数设置,不设置时默认一直旋转。STC89C52RC单片控制24BYJ48步进电机C语言程序:#include#defineucharunsignedchar#defineuintunsignedintsbitstart=P2 ;sbitstop=P2;sbitzz=P2;sbitfz=P2;sbitup=P2;sbitdown=P2;sbitset=P2;ucharcount,speed,i
7、,count1,k;uintj;bitzf;//定义一个正反转标志位/*步进电机1-2相励磁方式A—AB—B—BC—C—CD—D—DA数据*/uchartab[]={0x01,0x03,0x02,0x06,0x04,0x0C,0x08,0x09};voidmain(){7P0=0X00;speed=3;zf=1;//初始速度、方向设置TMOD=0X01;//定时器0工作在方式1,1ms中断一次TL0=(65536-100
此文档下载收益归作者所有