单片机控制电机调速实验报告.docx

上传人:b****6 文档编号:6548619 上传时间:2023-01-07 格式:DOCX 页数:11 大小:48.63KB
下载 相关 举报
单片机控制电机调速实验报告.docx_第1页
第1页 / 共11页
单片机控制电机调速实验报告.docx_第2页
第2页 / 共11页
单片机控制电机调速实验报告.docx_第3页
第3页 / 共11页
单片机控制电机调速实验报告.docx_第4页
第4页 / 共11页
单片机控制电机调速实验报告.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

单片机控制电机调速实验报告.docx

《单片机控制电机调速实验报告.docx》由会员分享,可在线阅读,更多相关《单片机控制电机调速实验报告.docx(11页珍藏版)》请在冰豆网上搜索。

单片机控制电机调速实验报告.docx

单片机控制电机调速实验报告

重庆邮电大学综合实验报告

——单片机控制步进电机调速

学生姓名:

组长:

AAAA

组员:

AAAAAAAA

学号:

XXXXX

XXXXXXXXXXXXX

所在学院:

自动化班级:

XXXXX专

业:

机械设计制造及其自指导老师:

XXXX成绩评定:

检测与控制实验中心

2

一、实验要求与目的3

1、设计要求3

2、实验目的3

二、设计思路3

三、实验原理4

1、步进电机4

2、步进电机控制系统结构4

3、速度控制算法5

四、功能概述及方案设计5

1、显示模块5

2、AD转换模块6

3、步进电机细分驱动模块6

五、实验运行程序7

六、实验心得13

参考文献13

3

一、实验要求与目的

1、设计要求

1、步进电机的给定速度由电位器通过AD转换输入

2、只有给定速度和实际速度显示功能

3、实际速度通过红外光电开关(或霍尔元件)检查

4、步进电机具有细分功能:

1/2细分1/4细分1/8细分

5、测试步进电机的响应时间及曲线

2、实验目的

1、熟悉步进电机的工作原理

2、熟悉51系列单片机的工作原理及调试方法

3、设计基于51系列单片机控制的步进电机调速原理图

4、实现51系列单片机对步进电机的速度控制

5、了解霍尔元件和步进电机细分驱动芯片tb6560的使用

二、设计思路

主控芯片采用STC89C52IL片机,显示采用1602液晶,由于步进电机速度设定由电位器

输入,使用外部ADtlc5510,AD时钟源接89C52ALE弓I脚,AD为并行,AD使用单片机

P1口,可以直接读取,根据对应数据设定速度。

步进电机速度控制采用闭环控制,由

于传统的PID控制算法波动较大,我们采用分级设定加速度的办法,并把编码器反馈回

来的速度与设定速度进行比较确定是加速还是减速,软件模拟加速减速过程,步进电机

细分由驱动芯片TB6560提供,由于驱动细分由ml、m2口电平决定,我们采取直接通过拨码开关设定电平,从而设定驱动细分值。

4

三、实验原理

1、步进电机

步进电机是数字控制电机,它将脉冲信号转变成角位移,即给一个脉冲信号,步进电机

就转动一个角度,因此非常适合于单片机控制。

步进电机可分为反应式步进电机(简称

VR)、永磁式步进电机(简称PM和混合式步进电机。

步进电机区别于其他控制电机的

最大特点是,它是通过输入脉冲信号来进行控制的,即电机的总转动角度由输入脉冲数

决定,而电机的转速由脉冲信号频率决定。

步进电机的驱动电路根据控制信号工作,控

制信号由单片机产生。

其基本原理作用如下:

(1)控制换相顺序

通电换相这一过程称为脉冲分配。

例如:

三相步进电机的三拍工作方式,其各相通电顺

序为A-B-C-D,通电控制脉冲必须严格按照这一顺序分别控制A,B,C,D相的通断。

(2)控制步进电机的转向

如果给定工作方式正序换相通电,步进电机正转,如果按反序通电换相,则电机就反

转。

(3)控制步进电机的速度

如果给步进电机发一个控制脉冲,它就转一步,再发一个脉冲,它会再转一步。

两个脉

冲的间隔越短,步进电机就转得越快。

调整单片机发出的脉冲频率,就可以对步进电机

进行调速。

2、步进电机控制系统结构

单片机在适当的时刻通过对计数器0赋初值,设置好加减速过程的频率变化(即速度、

加速度变化),以防止失步。

例如,在点位控制中设置好速度曲线图,在起动和升速

时,使步进电机产生足够的转矩驱动负载,跟上规定的速度和加速度;在减速时,下降

特性使负载不产生过冲,停止在规定的位置。

启动细分驱动电路中的固化程序以产生一

定频率的脉冲,经功率放大后驱动步进电机运动。

步进电机运动方向的改变及启动和停

止均由计算机控制硬件控制电路实现。

5

图2步进电机控制系统

3、速度控制算法

单片机控制系统通过A/D电路检测设定速度值,通过编码器得到实际速度值,当实际

速度值大于设定速度值,步进电机加速,反之减速。

根据实际速度真与设定速度值的差

值大小的不同,将加速度分为三个等级,相差越大,加速度越大。

从而达到既能快速达

到设定速度值,又能让实际速度稳定在设定速度值左右的目的。

四、功能概述及方案设计

1、显示模块

显示模块采用1602液晶显示测量参数和显示所有测量数据。

程序逻动步进电编码

电源输入脉

细分指

6

2、AD转换模块

3、步进电机细分驱动模块

TB6560步进电机驱动电路主要包括3部分电路:

控制信号隔离电路、主电

路和自动半流电路,可利用简单的编程实现。

7

五、实验运行程序

#defineDataP0//数据端口

#defineLENGTH7

typedefunsignedcharuchar;typedefunsignedintuint;

codecharnum[]=0123456789;charsetSd[LENGTH]=SetSpd:

;charnowSd[LENGTH]=NowSpd:

;charr_min[5]=r/min;

//液晶显示接口sbitRS=P2A4;

sbitRW=P2A5;

sbitE=P2A6;

voidDelayMs(ucharms);voidDelayUs(ucharus);voidInitLcd(void);

voidWriteData(ucharc);

voidWriteCommand(ucharc);

voidDisPlay(uintnumber,ucharstatus);voidDisplayStr(char*s,ucharlength);

**/voidDisPlay(uintnumber,

ucharstatus){chari;staticcharpre_i=0;chartemp[8]={0};

if(status==0){WriteCommand(0x80);DisplayStr(setSd,LENGTH);}else{WriteCommand(0xc0);DisplayStr(nowSd,LENGTH);

8

}

if(number==0){WriteData(num[temp[0]]);}else{

i=0;while(number){temp[i]=number;number/=10;i++;}

if(pre_i>i){WriteCommand(0x01);//显示清屏

}pre_i=i;while(i>0)

{i--;WriteData(num[temp[i]]);}}DisplayStr(r_min,5);}

/*******************************************字符串显示函数

********************************************/voidDisplayStr(char*s,ucharlength){

ucharj=0;

while(j

/******************************************************************

写入命令函数

******************************************************************/voidWriteCommand(uchar

c){DelayMs(5);//操作前短暂延时,保证信号稳定

E=0;RS=0;RW=0;_nop_();E=1;Data=c;E=0;}/******************************************************************

9写入数据函数

******************************************************************/voidWriteData(ucharc)

{DelayMs(5);//操作前短暂延时,保证信号稳定

E=0;RS=1;RW=0;_nop_();E=1;Data=c;E=0;RS=0;}/******************************************************************

******************************************************************/voidInitLcd(void)

初始化函数

{DelayMs(15);WriteCommand(0x38);//displaymodeWriteCommand(0x38);//displaymode

WriteCommand(0x38);//displaymodeWriteCommand(0x06);//显示光标移动位置

WriteCommand(0x0c);//显示开及光标设置

WriteCommand(0x01);//显示清屏

}

/******************************************************************索

微妙级函数

12MHz频

******************************************************************/voidDelayUs(ucharus)

{ucharuscnt;uscnt=us>>1;

while(--uscnt);}

/******************************************************************

毫秒延时函数

****************************************************************

{while(--ms){DelayUs(250);DelayUs(250);/******************************************************Init.c******************************************************/

**/voidDelayMs(ucharms)

DelayUs(250);DelayUs(250);}}

文件

10

#include

typedefunsignedcharuchar;typedefunsignedintuint;

sbitCW=P2A1;

sbitENABLE=P2A2;

externvoidInitLcd(void);

/************************************************TB6560

初始化

***********************************************

CW=0;ENABLE=1;}

 

/************************************************功能:

周期定时50ms

定时器0初始化函数

*************************************************/voidInitTime0(void){

ET0=1;TH0=(65536-50000)/256;TL0=(65536-50000)%6;TR0=1;}

TMOD|=0x01;EA=1;

/************************************************

定时器1初始化函数

功能:

设定为外部脉冲计数模式

*************************************************/voidInitTime1(void){

TMOD|=0x50;EA=1;

ET1=0;TH1=0;TL1=0;TR1=1;}/************************************************

定时器1初始化函数

功能:

设定为外部脉冲计数模式

*************************************************/voidInitTime2(void){

50000)/256;//重装载计数器赋初值

RCAP2L=(65536-50000)%6;ET2=1;

RCAP2H=(65536-

//开定时器

2中断

EA=1;

11

//开总中断

TR2=1;}

//开启定时器,并设置为自动重装载模式

/************************************************

总初始化函数

*************************************************/voidInitSystem(void){InitTime0();InitTime1();InitTime2();}

/******************************************************StepMotor.c

******************************************************/

InitLcd();InitTB6560();

文件

#include#include

#includeStepMotor.h

voidmain(void){intK;

InitSystem();while

(1){if(statusFlag==0){

preSetSpeed=setSpeed;setSpeed=SET_SPEED;

if(setSpeed>nowSpeed){

if(setSpeed-nowSpeed>10)K=10;elseif(setSpeed-nowSpeed>5)K=20;elseK=60;if(adjustment<1)adjustment=1;adjustment=adjustment-adjustment/K;

}elseif(setSpeed

if(setSpeed-nowSpeed>10)K=10;elseif(setSpeed-nowSpeed>5)K=20;elseK=60;if(adjustment>30000)adjustment=30000;adjustment=adjustment+adjustment/K;

}DisPlay(setSpeed,0);

DisPlay(nowSpeed,1);statusFlag=1;}}}

12

/************************************************功能:

周期定时50ms

定时器2中断函数

***********************************************

**/voidTsr_Time2(void)interrupt5

{staticvolatileucharinTimes=0;

TR1=0;if(inTimes<20){inTimes++;

 

}else{

nowSpeed=TH1*256+TL1;

statusFlag=0;inTimes=0;

TH1=0;TL1=0;

}

TF2=0;//定时器2的中断标志要软件清0TR1=1;}

定时器0中断函数

***********************************************

/************************************************功能:

周期定时50ms**/voidTsr_Time0(void)interrupt1

{CLK=~CLK;TH0=(65536-adjustment)/256;//2600一转每秒TL0=(65536-adjustment)%6;

clkp2.0步进电机转速

c/cwP2.1正反转

EnableP2.2驱动使能

singalP3.5编码器信号反馈typedefunsignedcharuchar;typedefunsignedintuint;

sbitCLK=P2A0;

sbitCW=P2A1;

sbitENABLE=P2A2;

//函数声明

13

externvoidInitSystem(void);externvoidWriteData(ucharc);

externvoidWriteCommand(ucharc);

externvoidDisPlay(uintnumber,ucharstatus);

//变量定义intsetSpeed;//速度设定

intpreSetSpeed;ucharcount=0;

volatileintnowSpeed;//当前速度

intstaticAdjustment=0;

volatileintadjustment=30000;//周期调整

volatileucharstatusFlag=0;

六、实验心得

经过这次的实验,我们受益匪浅,熟悉掌握了步进电机的工作原理,对51系列单片机

的工作原理及调试方法也有了更进一步的了解,对霍尔元件和步进电机细分驱动芯片

tb6560的使用也有了一定的了解,经过这次实验,锻炼了我们对知识的综合能力,在

动手能力方面也有了进一步的提高。

希望以后有更多这种机会,为毕业设计做好充分的准备。

参考文献

[1]何耀三,唐卓尧编著,电气传动的单片机控制[M].重庆:

重庆大学出版社

1996

[2]刘金琪编著.机床电器自动控制[M].哈尔滨:

哈尔滨工业出版社,1999[3]

王建,于勤著.利用单片机实现步进电机控制[J].四川工业大学学报,

2002,5722

14

题目4:

基于CAN总线的单片机温度控制系统(粕电阻)设计实验

要求:

①具有CAN总线节点,能与其他CANm点进行数据交换

2具有温度采集系统(传感器采用铂电阻)

3具有温度非线性补偿电路(或者软件补偿)

4控制温度设置通过键盘输入

5具有实时温度值和设置温度值显示功能

⑥控制算法采用PID,输出才用继电器PW昉式(温度加热箱由实验室提供)

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

当前位置:首页 > 幼儿教育

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1