单片机控制步进电机的 原理Word文件下载.docx

上传人:b****1 文档编号:1464177 上传时间:2023-04-30 格式:DOCX 页数:14 大小:129.66KB
下载 相关 举报
单片机控制步进电机的 原理Word文件下载.docx_第1页
第1页 / 共14页
单片机控制步进电机的 原理Word文件下载.docx_第2页
第2页 / 共14页
单片机控制步进电机的 原理Word文件下载.docx_第3页
第3页 / 共14页
单片机控制步进电机的 原理Word文件下载.docx_第4页
第4页 / 共14页
单片机控制步进电机的 原理Word文件下载.docx_第5页
第5页 / 共14页
单片机控制步进电机的 原理Word文件下载.docx_第6页
第6页 / 共14页
单片机控制步进电机的 原理Word文件下载.docx_第7页
第7页 / 共14页
单片机控制步进电机的 原理Word文件下载.docx_第8页
第8页 / 共14页
单片机控制步进电机的 原理Word文件下载.docx_第9页
第9页 / 共14页
单片机控制步进电机的 原理Word文件下载.docx_第10页
第10页 / 共14页
单片机控制步进电机的 原理Word文件下载.docx_第11页
第11页 / 共14页
单片机控制步进电机的 原理Word文件下载.docx_第12页
第12页 / 共14页
单片机控制步进电机的 原理Word文件下载.docx_第13页
第13页 / 共14页
单片机控制步进电机的 原理Word文件下载.docx_第14页
第14页 / 共14页
亲,该文档总共14页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

单片机控制步进电机的 原理Word文件下载.docx

《单片机控制步进电机的 原理Word文件下载.docx》由会员分享,可在线阅读,更多相关《单片机控制步进电机的 原理Word文件下载.docx(14页珍藏版)》请在冰点文库上搜索。

单片机控制步进电机的 原理Word文件下载.docx

混合式步进是指混合了永磁式和反应式的优点。

它又分为两相和五相:

两相步进角一般为1.8度而五相步进角一般为 

0.72度。

这种步进电机的应用最为广泛。

二、永磁式步进电机的控制

下面以电子爱好者业余制作中常用的永磁式步进电机为例,来介绍如何用单片机控制步进电机。

图1是35BY型永磁步进电机的外形图,图2是该电机的接线图,从图中可以看出,电机共有四组线圈,四组线圈的一个端点连在一起引出,这样一共有5根引出线。

要使用步进电机转动,只要轮流给各引出端通电即可。

将COM端标识为C,只要AC、 

C、BC、 

C,轮流加电就能驱动步进电机运转,加电的方式可以有多种,如果将COM端接正电源,那么只要用开关元件(如三极管),将A、 

、B、 

轮流接地。

下表列出了该电机的一些典型参数:

表1 35BY48S03型步机电机参数

型号步距角相数电压电流电阻最大静转距定位转距转动惯量

35BY48S037.54120.2647180652.5

有了这些参数,不难设计出控制电路,因其工作电压为12V,最大电流为0.26A,因此用一块开路输出达林顿驱动器(ULN2003)来作为驱动,通过P1.4~P1.7来控制各线圈的接通与切断,电路如图3所示。

开机时,P1.4~P1.7均为高电平,依次将P1.4~P1.7切换为低电平即可驱动步进电机运行,注意在切换之前将前一个输出引脚变为高电平。

如果要改变电机的转动速度只要改变两次接通之间的时间,而要改变电机的转动方向,只要改变各线圈接通的顺序。

图1 35BY48S03型步进电机外形图

图2 35BY48S03型步进电机的接线图

图3 单片机控制35BY48S03型步进电机的电路原理图

三、步进电机的驱动实例

要求:

控制电路如图3所示,开机后,电机不转,按下启动键,电机旋转,速度为25转/分,按下加1键,速度增加,按下减1键,速度降低,最高速度为100转/分,最低转带为25转/分,按下停止键,电机停转。

速度值要求在数码管上显示出来。

1.要求分析

按上面的分析,改变转速,只要改变P1.0~P1.3轮流变低电平的时间即可达到要求,这个时间不应采用延时来实现,因为会影响到其他功能的实现。

这里以定时的方式来实现。

下面首先计算一下定时时间。

按要求,最低转速为25转/分,而上述步进电机的步距角为7.5,即每48个脉冲为1周,即在最低转速时,要求为1200脉冲/分,相当于50ms/脉冲。

而在最高转速时,要求为100转/分,即48000脉冲/分,相当于12.5ms/脉冲。

可以列出下表

表1 步进电机转速与定时器定时常数关系

速度单步时间(us)TH1TL1实际定时(us)

255000076049996.8

26480778223648074.18

2746296898646292.61

2844643957344640.155

……………

10012500211012499.2

表中不仅计算出了TH1和TL1,而且还计算出了在这个定时常数下,真实的定时时间,可以根据这个计算值来估算真实速度与理论速度的误差值。

表中TH1和TL1是根据定时时间算出来的定时初值,这里用到的晶振是11.0592M。

有了上述表格,程序就不难实现了,使用定时/计数器T1为定时器,定时时间到后切换输出脚即可。

2.程序实现

定义DSB-1A实验板的S1为启动键,S2为停止键,S3为加1键,S4为减1键,程序如下:

StartEnd 

bit 

01H 

;

起动及停止标志

MinSpd 

EQU25 

起始转动速度

MaxSpd 

EQU100 

最高转动速度

Speed 

DATA23H 

流动速度计数

DjCount 

DATA24H 

控制电机输出的一个值,初始为11110 

111

HiddenEQU10H;

消隐码

CounterDATA57H;

显示计数器

DISPBUF 

DATA58H;

显示缓冲区

ORG 

0000H

AJMP 

MAIN

ORG000BH

JMPDISP

ORG001BH

JMPDJZD

ORG 

30H

MAIN:

MOV 

SP,#5FH

P1,#0FFH

MOVA,#Hidden

MOVDispBuf,A

MOVDispBuf+1,A

MOVDispBuf+2,A

MOVDjCount,#11110111B

SPEED,#MinSpd 

起始转动速度送入计数器

CLR 

停转状态

MOVTMOD,#00010001B;

MOVTH0,#HIGH(65536-3000)

MOVTL0,#LOW(65536-3000)

MOVTH1,#0FFH;

MOVTL1,#0FFH

SETBTR0

SETBEA

SETBET0

SETBET1

LOOP:

ACALL 

KEY 

键盘程序

JNB 

F0,m_NEXT1 

无键继续

ACALL 

KEYPROC 

;

否则调用键盘处理程序

m_NEXT1:

MOVA,Speed

MOVB,#10

DIVAB

MOVDispBuf+5,B;

最低位

MOVDispBuf+4,B

MOVDispBuf+3,A

JBStartEnd,m_Next2

CLRTR1;

关闭电机

JMPLOOP

ORLP1,#11110000B

m_Next2:

SETBTR1;

启动电机

AJMP 

LOOP 

主程序结束

---------------------------------------

D10ms:

……

---------延时程序,键盘处理中调用

KEYPROC:

A,B 

获取键值

JB 

ACC.2,StartStop 

分析键的代码,某位被按下,则该位为1

ACC.3,KeySty

ACC.4,UpSpd

ACC.5,DowSpd

KEY_RET

StartStop:

SETBStartEnd 

启动

KeySty:

CLRStartEnd;

停止

UpSpd:

INC 

SPEED;

A,SPEED

CJNE 

A,#MaxSpd,K1;

到了最多的次数?

DEC 

SPEED;

是则减去1,保证下次仍为该值

K1:

DowSpd:

DEC 

SPEED

A,#MAXSPD,KEY_RET 

不等(未到最大值),返回

MOVSPEED,#MinSpd;

KEY_RET:

RET

KEY:

……获取键值的程序

DjZd:

定时器T1用于电机转速控制

PUSHACC

PUSHPSW

SUBBA,#MinSpd;

减基准数

MOVDPTR,#DjH

MOVCA,@A+DPTR

MOVTH1,A

SUBBA,#MinSpd

MOVDPTR,#DjL

MOVTL1,A

MOVA,DjCount

CPLA

ORLP1,A

JNBACC.7,d_Next1

JMPd_Next2

d_Next1:

MOVDjCount,#11110111B

d_Next2:

RLA

MOVDjCount,A;

回存

ANLP1,A

POPPSW

POPACC

RETI

DjH:

DB76,82,89,95,100,106,110,115,119,123,12……

DjL:

DB0,236,86,73,212,0,214,96,163,165

DISP:

显示程序

BitTab:

DB 

7Fh,0BFH,0DFH,0EFH,0F7H,0FBH

DISPTAB:

DB 

0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,88H,83H,0C6H,0A1H,86H,8EH,0FFH

END 

3.程序分析

本程序主要由键盘程序、显示器程序、步进电机驱动程序三部份组成,主程序首先初始化各变量,将显示器的高3位消隐,步进电机驱动的各引脚均输出高电平,然后调用键盘程序,并作判断,如果有键按下,则调用键盘处理程序,否则直接转下一步。

下一步是将当前的转速值转换为BCD码,送入显示缓冲区;

接着判断StartEnd这个位变量,是“1”还是“0”,如果是“1”,则开启定时器T1,否则关闭定时器T1,为防止关闭时某一相线圈长期通电,因此,在关闭定时器T1时,将P1.0~P1.3均置高。

至此,主程序的工作即结束。

这里为简便起见,这里没有做高位“0”消隐的工作,即如果速度为10转/分,则显示值“010”,读者可以自行加入相关的代码来处理这一工作。

步进电机的驱动工作是在定时器T1的中断服务程序中实现的,由前述分析,每次的定时时间到达以后,需要将P1.0~P1.3依次接通,程度中用了一个变量DjCntr来实现这一功能,在主程序初始化时,该变量被赋予初值11110111B,进入到定时中断以后,将该变量取出送ACC累加器,并在累加器中进行左移,这样,该数值就变为1110 

1111,然后将该数与P1相“与”,此时,P1.4即输出低电平,第二次进入中断时,先将该数取反,成为 

0001 0000,然后将该数与P1相“或”,这样,P1.4即输出高电平,关断了相应的线圈,然后将该数重新取出,并作左移,即 1110,1111右移成为1101 1111,将该数与P1相“与”,这样P1.5即输出低电平,依次类推,P1.7~P1.4即循环输出低电平。

当这一数据变为0111 

1111后,需要作适当的改动,将数据重新变回 1111 0111,进行第二次循环,相关代码,请读者自行分析。

定时时间又是如何确定的呢?

这里用的是查表的方法,首先用Excel计算得出在每一种转速下的TH值和TL值,然后,分别放入DjH和DjL表中,在进入T1中断程序之后,将速度值变量Speed送入累加器ACC,然后减去基数25,使其基数从0开始计数,然后分别查表,送入TH1和TL1,实现重置定时初值的目的。

看完这一部份内容以后,请读者自行完成以下工作:

1.更改程序,将S1定义为“启动/停止”,而S2定义为“方向”,按下S2,切换电机旋转方向。

2.更改程序,要求转速从1到100。

3.更改程序,实现首位无效零消隐。

步进电机的单片机控制

一、方案论证与比较

1、本设计的重点在于对步进电机的控制和驱动,设计中受控电机为四相六线制的步进电机(内阻33欧,步进1.8度,额定电压12V)

方案一:

使用多个功率放大器件驱动电机

通过使用不同的放大电路和不同参数的器件,可以达到不同的放大的要求,放大后能够得到较大的功率。

但是由于使用的是四相的步进电机,就需要对四路信号分别进行放大,由于放大电路很难做到完全一致,当电机的功率较大时运行起来会不稳定,而且电路的制作也比较复杂。

方案二:

使用L298N芯片驱动电机

L298N芯片可以驱动两个二相电机(如图1-1),也可以驱动一个四相电机,输出电压最高可达50V,可以直接通过电源来调节输出电压;

可以直接用单片机的IO口提供信号;

而且电路简单,使用比较方便。

图1-1

通过比较,使用L298N芯片充分发挥了它的功能,能稳定地驱动步进电机,且价格不高,故选用L298N驱动电机。

而使用L298N时,可以用L297来提供时序信号,可以节省单片机IO口的使用;

也可以直接用单片机模拟出时序信号,由于控制并不复杂,故选用后者。

2、数码管显示电路的设计

串行接法

设计中要显示4位数字,用74LS164作为显示驱动,其中带锁存,使用串行接法可以节约IO口资源,但要使用SIO,发送数据时容易控制。

并行接法

使用并行接法时要对每个数码管用IO口单独输入数据,占用资源较多。

由于设计中用一块单片机进行控制,资源有限,选择了方案一。

另外,使用锁存也起到节约资源的作用。

二、步进电机控制原理

三、理论设计

综和以上选取的方案,总的流程如图3-2所示。

图3-1

1、步进电机驱动电路

通过L298N构成步进电机的驱动电路,电路图如图3-2所示。

通过单片机SPCE061A的IOB8~IOB13对L298N的IN1~IN4口和ENA、ENB口发送方波脉冲信号,起时序图如图3-3所示。

图3-2

图3-3

2、数码管显示电路的设计

数码管的显示驱动使用74LS164,通过SPCE061A的IOB0和IOB1口对DATA和CLK发送数据。

图3-4

3、4x4键盘电路

在设计中,使用了标准的4x4键盘,其电路图如图3-5所示。

单片机的A口低8位为键盘的接口。

尽管设计要求中只需要4个键对步进电机的状态进行控制,但考虑到对控制功能的扩展,我们使用了4x4的键盘。

图3-5

第1页第2页

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2