当前位置:文档之家› 基于单片机步进电机转动速度,角度的简单键盘控制设计..

基于单片机步进电机转动速度,角度的简单键盘控制设计..

基于单片机步进电机转动速度,角度的简单键盘控制设计..
基于单片机步进电机转动速度,角度的简单键盘控制设计..

北方民族大学论文题目:基于单片机步进电机控制系统

院(部)名称: 电气信息工程学院

组长姓名: =

专业:测控技术与仪器学号: 20100259 指导教师姓名:

组员:

论文提交时间: 论文答辩时间: 学位授予时间:

北方民族大学教务处制

摘 要

于打印机、电动玩具等消费类产品以及数控机床、工业机器人、

医疗器械等机电

制精度和响应速度、节约能源等都具有重要意义。

电机控制系统主要由步进控制器,功率放大器及步进电机等组成。采用单片机控制,用C 语言编写软件代替上述步进控制器,使得线路简单,成本低,可靠性大大增加。软件编程可灵活产生不同类型步进电机励磁序列来控制各种步进电机的运行方式。 本设计是采用AT89C51单片机对步进电机的控制,通过I/O 口输出的时序方波作为步进电机的控制信号,信号经过芯片ULN2003驱动步进电机。

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

关键词:

速度控制角度控制 LED 发光

二极管

目录

前言 (1)

1. 步进电机及其发展 (1)

2.国内外步进电机技术发展概况 (1)

3.设计方案及思路 (2)

正文 (3)

1.主要器件的选取 (3)

1.1单片机的选取 (3)

1.2步进电机及驱动的选取 (4)

1.3驱动芯片的选取 (5)

2.单片机的主要系统电路 (7)

2.1时钟电路 (7)

2.2复位电路 (7)

3.软件设计 (8)

3.1软件流程图 (8)

3.2语言软件的选取 (9)

4. 仿真 (9)

5. 元件清单 (9)

结论 (10)

致谢 (10)

参考文献 (10)

附件 (11)

1.C语言程序部分: (11)

2.仿真图如下 (15)

1

前言

1. 步进电机及其发展

步进电机又称为脉冲电动机或阶跃电动机,它是基于最基本的电磁感应作用将电脉冲信号转变为角位移或线位移的开环控制元件。单片机控制的步进电机广泛地应用于工业自动控制、数控机床、组合机床、机器人、计算机外围设备、照相机,大型望远镜,

子技术的发展,步进电机的应用领域更加广阔,同时也对步进电机的运行性能提出了更高的要求。 步进电机的原始模型起源于1830年至1860

1870年前后

,这被认为最早的步

进电机。 1950年后期晶体管的发明也逐渐应用在步进电机上,对于数字化的控制变得更为容易。到20世纪

60

发展,各种实用性步进电机应运而生。步进电机往后经过不断改良,使得今日步进电机已广泛运用在需要高定位精度、高分解能、高响应性、信赖性等灵活控制性高的机械系统中。在生产过程中要求自动化、省人力、效率高的机器中,我们很容易发现步进电机的踪迹,尤其以重视速度、位置控制、需要精确操作各项指令动作的灵活控制性场合步进电机用得最多。

2.国内外步进电机技术发展概况

我国步进电机的研究及制造起始于本世界50年代后期,从50年代后期到60年代后期,主要是高等院校和科研机构为研究一些装置而使用或开发少量产品。我国在文化大革命中开始大量生产和应用步进电机。例如江苏、浙江、北京、南京、四川等各地都有投入生产,而且都在各行业使用,其中的驱动电路所有半导体器件都是完全国产化的。当时是全分立元器件构成的逻辑运算电路,还有电容耦合输入的计数器、触发器、环形分配器。中等耐压的大功率半导体器件也完全国产化。70年代初期,步进电机的生产和研究都有所突破,除反映在驱动器设计方面的长足进步以外,对反应式步进电机本体的设计研究发展到一个较高的水平。70

年代中期至80年代中期为成品发展阶段,新品种高性能电动机不断被开发。至80年代中期以来,由于步进电机精确模型做了大量研究工作,各种混合式步进电机及驱动器作为产品广泛利用。国外在大功率的工业设备驱动上,目前基本不使用大扭矩步进电动机,因为从驱动电路的成本,效率、噪音、加速度、绝对速度、系统惯量与最大扭矩比比较、比较不划算、还是用直流电动机、加电动机编码器整体技术和经济指标高。一些少数高级的应用、就用空心转杯电机、交流电机。国外在小功率的场合,还使用步进电机。例如一些工业器材、工业生产装备、打印机、复印件、速印机、银行自动柜员机。国内过去是用大力矩步进电动机实现机床数控,有实力的公司现在也采用交流电动机驱动数控机床,在驱动设备的主要差距,是国外对交流电动机的控制理论与工程分析和应用能力强,先进的控制理论作为软件,写在控制器内部。

目前,生产步进电机的厂家的确不少,但具有专业技术人员,能够自行开发,研制的厂家却非常少,

仅处于一种盲目的仿制阶段。这就给户在产品选型、使用中造成许多麻烦。虽然步进电机已被广泛地应用,但步进电机并不能象普通的直流电机,交流电机在常规下使用。它必须由双环形脉冲信号、功率驱动电路等组成控制系统方可使用。因此用好步进电机却非易事,它涉及到机械、电机、电子及计算机等许多专业知识。

3.设计方案及思路

该设计采用51单片机扫描三乘三矩阵键盘控制四相步进电机的正反转,角度及速度。

单片机实现对四相步进电机的手动和遥控控制。由单片机产生的脉冲信号经过脉冲分配后分解出对应的四相脉冲,分解出的四相脉冲经驱动电路功率放大后驱动步进电机的转动。转速的调节和状态的改变由按键进行选择。通过键盘扫描把选择的信息反馈给单片机,单片机根据反馈信息做出相应的判断并改变输出脉冲的频率或转动状态信号。电机转动的不同状态由LED指示灯显示。

总开关打开相应指示灯亮,总开关关闭指示灯灭,如果电机工作,也会停止工作所有指示灯熄灭;反转对应指示灯亮,正转对应指示灯灭,默认正转;档位

2

分别是5.625度与45度切换,45度档位指示灯灭,5.625度指示灯亮。默认45度,角度增加与减小按键分开,默认8下,即360度;速度三种分别快、中、慢,速度默认为零;最后启动按键,启动后相应指示灯亮,电机转完之后,指示灯灭,在启动之前一定要设置速度,因为速度默认为零。

正文

1.主要器件的选取

1.1单片机的选取

随着大规模集成电路的出现及其发展,将计算机的CPU、RAM、ROM、定时器/计数器和多种I/O接口集成在一片芯片上,形成了芯片级的计算机,因此单片机早期的含义称为单片微型计算机(single chip microcomputer),直译为单片机,沿用至今。准确反映单片机本质的叫法应是微控制器(microcontroller)。单片机具有集成度高,功能强,可靠性高,体积小,功耗低。使用方便,价格低廉等特点,在各个领域得到了广泛的应用和发展,目前已渗透到人们工作和生活的各个角落,几乎无处不在。革片机最早是以嵌入式微控制器(EmbeddedMicro- controller)的面貌出现的。在嵌入式系统中,它是应用最多的核心器件。在计算机主导工业生产并且目益走进家庭生活的今天,从家用电器、工业控制、医疗仪器到军事应用,到处都有单片机的存在。目前世界上有很多单片枕卷4造公司,如美国的INTEL、ATMEL、MOTOROLA和ZILOG公司:德国的SIEMES公司;荷兰的PHILIP 公司等。他们相继推出了各种类型的单片机,其中INTEL公司撰出的一种离性能8位单片机MCS--51系列单片机以优越的性能,成熟的技术和高性价比迅速占领了工业测控和自动化工程领域的主要市场,成为单片机领域中的主流产品。除了INTEL公司外,PHILIP,ATMEL,ADM,SIEMES等公司纷纷推出了与MCS--51系列兼容的单片机,其中ATMEL公司的89系列单片机也称Flash单片机是以8031为核心构成的,它和INTEL公司的MCS--51系列单片机完全兼容,它不但继承了MCS一51系列原有的功能,而且又扩展了它的功能。对于一般用户来说,89系列单片机存在下列很显著的优点:

3

①内部含Flash存储器;

②和AT80CSl插座兼容;

③静态时钟方式:

④错误编程亦无废品产生;

⑤可反复进行系统试验。

使用方便是ATMEL公司89系列单片机被广泛应用的一个主要因素。一般的OTP产品,一旦错误编程就成了废品,而89系列单片枫内部采用了Flash存储器,所以,错误编程后仍可以重新编程,直到正确为止。其次是它可反复进行系统试验。用89系列单片枕设计的系统,可以反复进行系统试验,每次试验可以编入不同的程序,这样可以保证用户的系统设计达到最优,而且还可以随用户的需要和发展进行修改,使系统能不断追髓用户的最新要求。89系列单片机可分为标准型号,低档型号和高档型号。鉴于以上的优点,经过分析比较,根据本课题的特点,选用ATMEL公司89系列懿标准型单片机ATC89C51。

1.2步进电机及驱动的选取

步进电机又称电脉冲马达。它是将电脉冲信号转换成机械角位移的执行元件。输入一个电脉冲就转动一步,即每当电机绕组接受一个电脉冲,转子就转过一个相应的步距角。转子的角位移的大小及转速分别与输入的电脉冲数及其频率成正比。并在时间上与输入脉冲同步。只要控制输入电脉冲的数量、频率以及电机绕组通电相序即可获得所需的转角、转速及转向,很容易用微机实现数字控制。

步矩角的大小与通电方式和转子齿数有关,其大小可用下式计算:

式中:z - 转子齿数;m - 运行拍数,通常等

于相数或相数整数倍,即m=KN( N为电动机

相数,单拍时K=1,四相八拍或双拍 K=2)。

本设计步进电机采用四相五线混合式步

进电机,直径:28mm;电压:5V;步进角度:

4

5

5.625 x 1/64;减速比:1/64;单个重:0.04KG ;5线4相可以用普通uln2003芯片驱动,也可以接成2相使用。四相步进电机按照通电顺序的不同,可分为单四拍、双四拍、八拍三种工作方式。单四拍与双四拍的步距角相等,但单四拍的转动力矩小。八拍工作方式的步距角是单四拍与双四拍的一半,因此,八拍工作方式既可以保持较高的转动力矩又可以提高控制精度。例如:八拍工作方式A-AB-B-BC-C-CD-D-DA 。

1.3驱动芯片的选取

步进电机的驱动芯片选用ULN2003A ,ULN200A 电路具有以下特点:电流增益高(大于1000);带负载能力强(输出电流大于500mA );温度范围宽(-40~85℃);工作电压高(大于50V )。引出端脚的功能符号 引出端序号

符号 功能 引出端序号

符号 同意功能 1 1B 输入 9 COM 公共端 2 2B 输入 10 7C 输出 3 3B 输入 11 6C 输出 4 4B 输入 12 5C 输出 5 5B 输入 13 4C 输出 6 6B 输入 14 3C 输出 7 7B 输入 15 2C 输出 8

E

发射极

16

1C

输出

ULN2003A 型高压大电流达林顿晶体管阵列电路的输入脉冲占空比、输出路数与输出电流的关系曲线如图3所示,从图3可以看出,随着输入脉冲的占空比以及输出路数的增加,允许的输出电流随之降低,也就是说:电路的输出路数的增加将导致电路的驱动能力下降。

图4所示为ULN2003A电路输出电流Ic、输出电压VCE和输入电流I1三者之间的关系曲线,从图4可以看出,随着输入电流的增加,输出电压随之降低,而随着输出电流的增加,输出电压也随之增加。

ULN2003A主要电特性

特性符号

条件

(若无其它规定,TA=-40~

85℃)

规范值

单位

最小最大

直流放大倍数hEF VCE=2V,Ic350mA 1000 -

集电极-发射极饱

和电压

VCE(sat) IB=500μA,IC=350mA - 1.6 V 箝位二极管正向

电压

VF IF=350mA,输入开路- 2.0 V 集电极截止电流ICEX VCE=50V

Ii=0mA - 50 μA

Vi=6V - 500 μA

箝位二极截止电

流IFEX VF=50V

TA=25 - 50 μA

Vi=85 - 100 μA

集电极最大电压Vamx 空载50 - V 集电极最大电流Imax VCE=2V 500 - mA 开态延迟时间ton VCE=5V,16kHz的方波输入-1.0 μS

6

关态延迟时间toff VCE=5V,16kHz的方波输入-1.0 μS 2.单片机的主要系统电路

2.1时钟电路

单片机的时钟信号用来提供单片机片内各种微操作的时间基准,时钟信号通常用两种电路形式得到:内部振荡和外部振荡。MCS-51单片机内部有一个用于构成振荡器的高增益反向放大器,引脚XTALl和XTAL2分别是此放大电器的输入端和输出端,由于采用内部方式时,电路简单,所得的时钟信号比较稳定,实际使用中常采用这种方式,如图所示在其外接晶体振荡器(简称晶振)或陶瓷谐振器就构成了内部振荡方式,片内高增益反向放大器与作为反馈元件的片外石英晶体或陶瓷谐振器一起可构成一个自激振荡器并产生振荡时钟脉冲。图中外接晶体以及电容C2和C3构成并联谐振电路,它们起稳定振荡频率、快速起振的作用,其值均为30PF左右,晶振频率选12MHz。

30PF

ATC89C51 A TC89C51

XTAL2 VCC

GND 12M 10UF RESET

GND

30PF XTAL1 1KΩ

时钟电路复位电路

2.2复位电路

为了初始化单片机内部的某些特殊功能寄存器,必须采用复位的方式,复位后可使CPU及系统各部件处于确定的初始状态,并从初始状态开始正常工作。单片机的复位是靠外电路来实现的,在正常运行情况下,只要RST引脚上出现两个机器周期时间以上的高电平,即可引起系统复位。但如果RST引脚上持续为高电平,单片机就处于循环复位状态。复位后系统将输入/输出(I/O)端口寄存器置为FFH,堆栈指针SP置为07H,SBUF内置为不定值,其余的寄存器全部清0,内部

7

RAM的状态不受复位的影响,在系统上电时RAM的内容是不定的。复位操作有两种情况,即上电复位和手动(开关)复位。本系统采用上电复位方式。

3.软件设计

3.1软件流程图

系统软件程序设计主要包括:主程序设计.键盘扫描,电机控制正反转,速度,角度控制程序等。

开始

键盘扫描

总开关是否打开否

角度档位设置与转速按键设置

步进电机正反转选择角度

对应的指示灯亮

启动工作对应的指示灯亮

是结束

步进电机停止工作对应的指示灯熄灭

8

9

3.2语言软件的选取

本系统下位机以单片机为核心,采用C 语言编程。C 语言是书写程序的一种

软件语言,它是计算机软件设计的重要工具。在系统软件开发、实时控制的和实时处理领域中有着不可替代的地位。用C 语言编程使编程简洁易懂,进而进行高质量的设计,而且它不独立于具体机器,是一种非常通用的高级程序设计语言,采用C 语言编程,因此,在已经有众多高级语言和可视化集成开发环境工具的今天,C 语言有着重要的有效的程序设计语言地位。

4.仿真

仿真使用protues 软件,仿真图如下

正反转

开关

角度增加速度快

速度中

速度慢启动

档位45/5.625

X1

CRYSTAL

C1

22p

C2

22p

G N D

R1

1k

C3

10u

2

345678

1RP1

RESPACK-7

1B 11C 162B 22C 153B 33C 144B 44C 135B 55C 126B 66C 117B

7

7C 10

COM 9U2

ULN2003A

角度减小XTAL2

18

XTAL1

19

ALE 30EA

31

PSEN 29RST

9

P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78

P3.0/RXD 10P3.1/TXD 11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD

17

P3.6/WR 16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427U1

AT89C51

Q1

PNP

Q2

PNP

Q3

PNP

Q4

PNP

D1

LED-BIBY

D2

LED-BIBY

D3

LED-BIBY

D4

LED-BIBY

+88.8

5.元件清单

ATC89S51单片机,九个开关四个LED 二极管,四个三极管,一个12M 晶振,电容两个,排阻一件,ULN2003A,步进电机。

经过这个学期对微机的深入学习,并且在老师的悉心指导和严格要求下,我们终于完成了四相步进电机设计课程。从书本上的知识到自己亲手的课程设计,每一步对我们来说无疑是巨大的尝试和挑战,也成就了我们目前在大学期间独立完成的最大的项目。记得在刚接到这个课题时,由于对相关知识不是很了解,我们都有些茫然不知所措。设计好一个步进电机需要什么专业知识?带着这个疑问我们开始了地学习和实验:去图书馆查阅相关资料、上网去了解相关的内容,渐渐头脑中的概念清晰了起来。在具体设计的过程中,我们遇到了更大的困难。我们不断地给自己提出新的问题,然后去论证、推翻,再接着提出新的问题。在这个循环往复的过程中,我们这篇稚嫩的设计日臻完善。虽然我们的设计作品不是很成熟,即使借鉴前人的很多资料仍然还有很多不足之处,但我仍然心里有一种莫大的幸福感,因为我们实实在在地走过了一个完整的设计所应该走的每一个过程,并且享受了每一个过程。

致谢

首先,我们要感谢毛老师指导,毛老师在各个方面都给予了我无微不至的关怀和帮助,他对工作一丝不莓,严谨治学的态度,使我深受启发和感动,在此表达对他的深深敬意和感激之情。同时还要感谢我的组员同学积极和配合上,并向所有帮助和关心着我们的老师和同学们,在此道一声谢谢。

参考文献

(1)单片机原理与接口技术

(2)模拟电子技术

(3)数字电路

(4)C语言教程

10

1.C语言程序部分:

#include

#include

typedef char int8;

typedef unsigned char uint8;

typedef unsigned int uint16;

sbit Keyin_1=P0^3;

sbit Keyin_2=P0^4;

sbit Keyin_3=P0^5;

sbit D1=P2^0;

sbit D2=P2^1;

sbit D3=P2^2;

sbit D4=P2^3;

/*================延时函数==================*/ void delay_1(uint8 dat)

{while(dat--);}

/*================键盘函数=================*/ uint8 keyboard_1(void)

{

static uint8 dat=0;

uint8 a[]={0XFe,0XFd,0XFb},i,

b[3][3]={1,2,3,

4,5,7,

9,11,15};

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

{ P0=a[i];

11

if(!Keyin_1)

{

delay_1(20);

if(!Keyin_1)

{

dat=b[i][0];

while(!Keyin_1);

return dat;

}

}

if(!Keyin_2)

{

delay_1(20);

if(!Keyin_2)

{

dat=b[i][1];

while(!Keyin_2);

return dat;

}

}

if(!Keyin_3)

{

delay_1(20);

if(!Keyin_3)

{

dat=b[i][2];

while(!Keyin_3);

return dat;

}

12

}

}

return 0;

}

/*===================角度速度控制函数=============*/

void motor_1(uint8 dat)

{

int8 i,a[]={0xf1,0xf3,0xf2,0xf6,0xf4,0xfc,0xf8,0xf9};

static bit ON=0,RL=0,ST=0;

static uint16 K=8,L=64,M=0,N=0;

P1=0X00;

if(dat==1){ON=~ON;D1=~D1;}

if(ON)

{

if(dat==2){RL=~RL;D2=~D2;}

if(dat==3){if(L==64)L=8;else L=64;D3=~D3;}

if(dat==4)K--;

if(dat==5)K++;

if(dat==15)ST=1;

M=L*K;

if(dat>5&&dat<13)N=23*dat;

if(!RL)

{

if(ST)while(M--)

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

{

D4=0;

P1=a[i];

delay_1(N);

13

}

if(keyboard_1()==1){ON=0;break;}

}

}

if(RL)

{

if(ST)while(M--)

{ for(i=7;i>=0;i--)

{

D4=0;

P1=a[i];

delay_1(N);

}

if(keyboard_1()==1){ON=0;break;}

}

}

}

if(!ON){N=0;K=8;L=64;RL=0;P2=0X0F;}

ST=0;

D4=1;

}

/*================主函数=================*/

void main(void)

{

P2=0X0F;

P1=0X00;

while(1)motor_1(keyboard_1());

}

14

15

2.仿真图如下

正反转开关角度增加速度快

速度中

速度慢启动

档位45/5.625

X1

CRYSTAL C1

22p C2

22p

GND

R1

1k C3

10u

2345678

1

RP1

RESPACK-7

1B 11C 162B 22C 153B 33C 144B 44C 135B 55C 126B 66C 117B

7

7C 10

COM 9U2

ULN2003A

角度减小XTAL2

18

XTAL1

19

ALE 30EA

31PSEN 29RST

9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD7

32

P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78

P3.0/RXD 10P3.1/TXD 11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD

17

P3.6/WR 16P3.5/T115P2.7/A15

28

P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427U1

AT89C51

Q1

PNP

Q2

PNP

Q3

PNP

Q4

PNP

D1

LED-BIBY

D2LED-BIBY D3LED-BIBY D4

LED-BIBY

+88.8

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

一、设计任务书 设计内容:用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液晶显示器的优点突出,故选择方案二。 (五)软件部分的选择 软件部分的选择主要是指编程语言的选择,编译调试工具根据设计平台选择伟福软件。编程语言主要有以下两种方案。

步进电机的速度控制

步进电机的速度控制 步进电机区别于其他控制用途电机的最大特点是,它可接受数字控制信号(电脉冲信号)并转化成与之相对应的角位移或直线位移,因而本身就是一个完成数字模拟转化的执行元件。而且它能进行开环位置控制,输入一个脉冲信号就得到一个规定的位置增量。这样的增量位置控制系统与传统的直流伺服系统相比,其成本明显降低,几乎不必进行系统调整。因此,步进电机广泛应用于数控机床、机器人、遥控、航天等领域,特别是微型计算机和微电子技术的发展,使步进电机获得更为广泛的应用。 步进电机的速度特性 步进电机的转速取决于脉冲频率、转子齿数和拍数。其角速度与脉冲频率成正比,而且在时间上与脉冲同步。因而在转子齿数和运行拍数一定的情况下,只要控制脉冲频率即可获得所需速度。由于步进电机是借助它的同步转矩而启动的,为了不发生失步,启动频率是不高的。特别是随着功率的增加,转子直径增大,惯量增大,启动频率和最高运行频率可能相差10倍之多。 为了充分发挥电机的快速性能,通常使电机在低于启动频率下启动,然后逐步增加脉冲频率直到所希望的速度,所选择的变化速率要保证电机不发生失步,并尽量缩短启动加速时间。为了保证电机的定位精度,在停止以前必须使电机从最高速度逐步减小脉冲率降到能够停止的速度(等于或稍大于启动速度)。因此,步进电机拖动负载高速移动一定距离并精确定位时,一般来说都应包括“启动-加速-高速运行(匀速)-减速-停止”五个阶段,速度特性通常为梯形,如果移动的距离很短则为三角形速度特性,如图1所示。 图1 步进电机的速度曲线 步进电机控制系统结构 PC机在适当的时刻通过对硬件控制电路上的8253计数器0赋初值,设置好加减速过程的频率变化(即速度、加速度变化),以防止失步。例如,在点位控制中设置好速度曲线图,在起动和升速时,使步进电机产生足够的转矩驱动负载,跟上规定的速度和加速度;在减速时,下降特性使负载不产生过冲,停止在规定的位置。硬件控制电路板上的8253产生脉冲方波作为中断信号源,启动细分驱动电路中的固化程序以产生一定频率的脉冲,经功率放大后驱动步进电机运动。步进电机运动方向的改变及启动和停止均由计算机控制硬件控制电路实现。 图2 步进电机控制系统 软件和硬件结合起来一起进行控制,具有电路简单、控制方便等优点。在这种控制中,微机软件占用的存储单元少,程序开发不受定时限制。只要外部中断允许,微机就能在电机的每一步之间自由地执行其他任务,以实现多台步进电机的运动控制。 定时器初值的确定 步进电机的实时控制运用PC机,脉冲方波的产生采用8253定时器,其计数器0工作于方式0以产生脉冲方波,计数器 1工作于方式1起记数作用,8253计数器0的钟频由2MHz晶振提供。设计算机赋给8253计数器0的初值为D1,则产生的脉冲方波频率为f1=f0/D1,周期为T1=1/f1=D1/f0,D1=f0T1=f0/f1。其中,f1为启动频率,f0为晶振频率。步进电机升降速数学模型为使步进电机在运行中不出现失步现象,一般要求其最高运行频率应小于(或等于)步进响应频率fs。在该频率下,步进电机可以任意启动、停止或反转而不发生失步现象。步进电机升降速有两种驱动方式,即三角形与梯形驱动方式(见图1),而三角形驱动方式是梯形驱动的特例,因而我们只要研究梯形方式。电机的加速和减速是通过计算机不断地修改定时器初值来实现的。在电机加速阶段,从启动瞬时开始,每产生一个脉冲,定时器初值减小某一定值,则相应的脉冲周期减小,即脉冲频率增加;在减速阶段,定时器初值不断增加,

基于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所示)

基于单片机步进电机速度控制研究(正式版)

文件编号:TP-AR-L2541 In Terms Of Organization Management, It Is Necessary To Form A Certain Guiding And Planning Executable Plan, So As To Help Decision-Makers To Carry Out Better Production And Management From Multiple Perspectives. (示范文本) 编订:_______________ 审核:_______________ 单位:_______________ 基于单片机步进电机速 度控制研究(正式版)

基于单片机步进电机速度控制研究 (正式版) 使用注意:该安全管理资料可用在组织/机构/单位管理上,形成一定的具有指导性,规划性的可执行计划,从而实现多角度地帮助决策人员进行更好的生产与管理。材料内容可根据实际情况作相应修改,请在使用时认真阅读。 本文对步进机一个全面的介绍,再基于单片机对 步进电机的控制。本文采用硬件控制系统,通过单片 机MC9S12XS128与光电编码器对步进电机进行速度的 控制。最后对步进电机的速度曲线进行研究。 步进电机又称为脉冲电动机或者阶跃电动 机,作为执行元件,是机电一体化的关键产品之一, 广泛应用于各种自动化控制系统之中,比如当今电子 钟表、工业机械手、包装机械和汽车制动元件的测试 中等。步进电机在未来应用前景会往更加小型化、从 圆形电动机往方形电动机和四相、五相往三相电动机

发展。而这便需要对步进电机的控制提出了更高的要求。 1.步进电机综合介绍 1.1.步进电机分类 步进电动机的种类很多,从广义上讲,步进电机的类型分为机械式、电磁式和组合式三大类型。按结构特点电磁式步进电机可分为反应式(VR)、永磁式(PM)和混合式(HB)三大类;按相数分则可分为单相、两相和多相三种。目前使用最为广泛的为反应式和混合式步进电机。 1.1.1.反应式步进电机 反应式步进电机的转子是由软磁材料制成的,转子中没有绕组。一般为三相,可实现大扭矩的输出,步进角一般为1.5度。它的结构简单,成本低,但噪音大。

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

编号: 综合智能电子 实训 (论文)说明书题目: 院(系):使用科技学院 专业:电子信息工程 学生姓名: 学号: 指导教师: 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;

单片机汇编语言步进电机转速控制系统

大连理工大学本科设计报告题目:步进电机转速控制系统设计 课程名称:单片机综合设计 学院(系):电子信息与电气工程学部 专业: 班级: 学号: 学生姓名: 成绩: 2013 年7 月20 日

题目:步进电机转速控制系统设计 1 设计要求 1)利用ZLG7290的键盘控制直流电机(或步进电机的转速、转向); 2)也可以利用ADC模块(与电位器配合),利用电位器控制转速; 3)利用ZLG7290的8位LED数码管显示电机转向、转速参数显示。 2 设计分析及系统方案设计 实验要求使用步进电机作为被控制对象,由ZLG7290做人机对话平台,利用单片机的P1(8位)和P3(部分口线)构造系统。实验最终实现功能、设计思路以及方案设计如以下几个小节所述。 2.1 系统设计实现功能 根据设计要求、现有设备以及知识储备,完成功能如下: ①由按键S1~S8实现转速切换,其中S1~S4正转,S5~S8反转 ②按键S16作为停止键,按下S10后步进电机停止转动,再按S1~S16步进电机按 照按键对应转速以及转向转动 ③按键S10作为复位键,当按下S10后,无论当前处于何种状态,系统恢复至初 始态 ④8为LED数码管显示当前步进电机转速(speed=0/1 1~4),转速前0表示正转, 1表示反转 ⑤若按下停止键,数码管显示当前转速;若按下复位键,数码管显示初始态speed=00 2.2 设计思路 本次的设计是LED显示与步进电机相结合以及若干功能键的组合的一种设计。根据之前学习的按键中断显示实验和定时器实验,使用INT0和INT1,INT0作为按键中断,INT1作为定时器。在主程序中实现LED初始显示、定时器计时初始、按键中断初始。INT0中断调用中断服务子程序实现对按键键值的判断,并根据相应的按键值实现对应步进电机的变化,并显示该按键对应的转速。INT1定时器中断根据INT0的按键键值,对定时器设定相应的初值,实现步进电机按规定的转速转动。对于按键停止,则是利用中断优先级,当INT0的中断优先级高时,系统进入中断,此时INT1停止计时,也就实现了步进电机的停止,当改变定时器与按键中断的优先级时,即把INT0设为低优先级,INT1设为高优先级,步进电机重新开始转动。此时添加一个对INT0位地址的查询,若有按键即正/反转的4档转速所对应的按键,步进电机开始重新转动。对于复位功能,则同样是利用按键键值的判断,在对应键值下控制电机初始化。

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

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

步进电机控制速度的方法

步进电机只能够由数字信号控制运行的,当脉冲提供给驱动器时,在过于短的时间里,控制系统发出的脉冲数太多,也就是脉冲频率过高,将导致步进电机堵转。要解决这个问题,必须采用加减速的办法。就是说,在步进电机起步时,要给逐渐升高的脉冲频率,减速时的脉冲频率需要逐渐减低。这就是我们常说的“加减速”方法。 步进电机转速度是根据输入的脉冲信号的变化来改变的,从理论上讲,给驱动器一个脉冲,步进电机就旋转一个步距角(细分时为一个细分步距角)。实际上,如果脉冲信号变化太快,步进电机由于内部的反向电动势的阻尼作用,转子与定子之间的磁反应将跟随不上电信号的变化,将导致堵转和丢步。 所以步进电机在高速启动时,需要采用脉冲频率升速的方法,在停止时也要有降速过程,以保证实现步进电机精密定位控制。加速和减速的原理是一样的。以加速实例加以说明:加速过程是由基础频率(低于步进电机的直接起动最高频率)与跳变频率(逐渐加快的频率)组成加速曲线(降速过程反之)。跳变频率是指步进电机在基础频率上逐渐提高的频率,此频率不能太大,否则会产生堵转和丢步。 步电机系统解决方案

加减速曲线一般为指数曲线或经过修调的指数曲线,当然也可采用直线或正弦曲线等。使用单片机或者PLC,都能够实现加减速控制。对于不同负载、不同转速,需要选择合适的基础频率与跳变频率,才能够达到最佳控制效果。指数曲线,在软件编程中,先算好时间常数存贮在计算机存贮器内,工作时指向选取。通常,完成步进电机的加减速时间为300ms以上。如果使用过于短的加减速时间,对绝大多数步进电机来说,就会难以实现步进电机的高速旋转。 深圳市维科特机电有限公司成立于2005年,是步进电机产品的销售、系统集成和应用方案提供商。我们和全球产品性价比高的生产厂家合作,结合本公司专家团队多年的客户服务经验,给客户提供有市场竞争力的步进电机系统解决方案。我们的主要产品有信浓(SHINANO KENSHI)混合式步进电机、日本脉冲(NPM)永磁式步进电机、减速步进电机、带刹车步进电机、直线步进电机、空心轴步进电机、防水步进电机以及步进驱动器、减振垫、制振环、电机引线、拖链线、齿轮、同步轮、手轮等专业配套产品。我们还供应德国TRINAMIC驱动芯片和日本NPM运动控制芯片。根据客户配套需要,我们还可以 步电机系统解决方案

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

步进电机的速度控制要点.(DOC)

步进电机的速度控制 步进电机是一种能将脉冲信号转换成角位移或线位移的执行器件,广泛应用于各种工业设备中。步进电机的角位移或线位移与控制脉冲数成正比。通过改变脉冲频率就可以调节电机的转速,实现电机的加减速,转向等。 在实际步进电机应用中,尤其在要求快速响应的控制系统中,其关键问题是如何保证步进电机在运行过程中不发生失步。 调速电动机控制系统按其功能分为以下几个部分:中央处理器首选8051系列单片机;测速电路;A/D转换电路;供电电路;过零脉冲的形成电路;可控硅的触发电路;通信串行接口电路;显示接口电路以及时钟复位电路。 步进脉冲的调频方法 1、软件延时:通过调用标准的延时子程序来实现。优点是程序简单,不占硬件资源,缺点是浪费CPU的宝贵时间,在控制过程中,CPU不能做其他的事。 2、硬件定时:假设控制器为AT89S52单片机,晶振频率为12MHZ,将T0作为定时器使用,设定T0工作在模式1(16为定时/计数器)。只需要改变T0的定时常数,就可以实现步进电机的调速。 步进电机的速度控制规律: 1、按梯形规律升降,即步进电机的转速每跃进一个台阶后,恒速行驶一段时间。这种方法的缺点是在恒速阶段没有加速,为充分利用步进电机的加速性能,而且高频阶段加速台阶高,步进电机在速度阶跃时会发生失步。 2、按直线规律升降速方式,由于这种升速方法的及速度是恒定的,其缺点是未充分考虑步进电机输出力矩随速度变化的特性,步进电机高速时会发生失步。 3、第三种是按指数规律升降速,在以微处理器为核心的驱动器中,常用定时常数递减(递加)的方法实现升降速,升速曲线成上凹形,低频时升速太慢,高速时升速太快。 (注:素材和资料部分来自网络,供参考。请预览后才下载,期待你的好评与关注!)

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切换为低电平即可驱动步进电机运行,注意在切换之前将前一个输出引脚变为高电平。如果要改变电机的

自己做的四相八拍步进电机调速

1 引言 在工业控制系统里步进电动机是主要的控制元件之一。步进电机具有快速启动停止,精确定位和能够使用数字信号进行控制,能够实现脉冲-角度转换的特点,因此得到广泛的应用。在使用步进电机的控制系统里,脉冲分配器产生周期的控制脉冲序列,步进电机驱动器每接收一个脉冲就控制步进电机沿给定方向步进一步。 本实验旨在通过控制AT89S52芯片,实现对四相步进电机的转动控制。具体功能主要是控制电机正转、反转、加速与减速。 具体工作过程是:给试验箱上电后,拨动启动开关,步进电机按照预先设置的转速和转动方式转动。调整正反转按钮,步进电机实现正反转切换;拨动加速开关,步进电机转速加快,速度达到最大值,不再加速;拨动减速开关时,电机减速转动,速度减到最小速度,停止减速。 2 四相步进机 2.I 步进电机 步进电机是一种将电脉冲转化为角位移的执行机构。电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,即给电机加一个脉冲信号,电机则转过一个步距角。 2.2 步进电机的控制

1.换相顺序控制:通电换相这一过程称为脉冲分配。例如:混合式步进电机 的工作方式,其各相通电顺序为A-B-C-D,通电控制脉冲必须严格按照这一顺序分别控制A,B,C,D相的通断。 2.控制步进电机的转向控制:如果给定工作方式正序换相通电,步进电机正 转,如果按反序通电换相,则电机就反转。 3.控制步进电机的速度控制:如果给步进电机发一个控制脉冲,它就转一步, 再发一个脉冲,它会再转一步。两个脉冲的间隔越短,步进电机就转得越快。 2.3 步进电机的工作过程 图2.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方向转动。 四相步进电机按照通电顺序的不同,可分为单四拍、双四拍、八拍三种工作方式。单四拍与双四拍的步距角相等,但单四拍的转动力矩小。八拍工作方式的步距角是单四拍与双四拍的一半,因此,八拍工作方式既可以保持较高的转动力矩又可以提高控制精度。 八拍工作方式的电源通电时序与波形如图所示:

最新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的步进电机驱动器控制系统电路原理可以表示为如下图:

相关主题
文本预览
相关文档 最新文档