基于自由摆的平板控制系统论文.docx

上传人:b****7 文档编号:11265041 上传时间:2023-02-26 格式:DOCX 页数:12 大小:87.73KB
下载 相关 举报
基于自由摆的平板控制系统论文.docx_第1页
第1页 / 共12页
基于自由摆的平板控制系统论文.docx_第2页
第2页 / 共12页
基于自由摆的平板控制系统论文.docx_第3页
第3页 / 共12页
基于自由摆的平板控制系统论文.docx_第4页
第4页 / 共12页
基于自由摆的平板控制系统论文.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

基于自由摆的平板控制系统论文.docx

《基于自由摆的平板控制系统论文.docx》由会员分享,可在线阅读,更多相关《基于自由摆的平板控制系统论文.docx(12页珍藏版)》请在冰豆网上搜索。

基于自由摆的平板控制系统论文.docx

基于自由摆的平板控制系统论文

基于自由摆的平板控制系统

论文摘要:

我们采用STC89C52单片机控制步进电机,通过IO口输出具有时序的脉冲信号作为步进电机的控制信号。

信号经过ULN2003驱动步进电机使其可以带动平板转动。

通过角度传感器KMZ41改变步进电机的运行状态,从而对平板的摆动进行控制。

关键字:

单片机

步进机

角度传感器

正转

反转

一、设计任务

1.基本要求:

(1)控制电机使平板可以随着摆杆的摆动而旋转(3~5周),摆杆摆一个周期,平板旋转一周(360°),偏差绝对值不大于45°。

(2)在平板上粘贴一张画有一组间距为1cm平行线的打印纸。

用手推动摆杆至一个角度θ(θ在30°~45°间)调整平板角度,在平板中心稳定放置一枚1元硬币(人民币;启动后放开摆杆让其自由摆动。

在摆杆摆动过程中,要求控制平板状态,使硬币在5个摆动周期中不从平板上滑落,并尽量少滑离平板的中心位置。

(3)用手推动摆杆至一个角度θ(θ在45°~60°间),调整平板角度,在平板中心稳定叠放8枚1元硬币;启动后放开摆杆让其自由摆动。

在摆杆摆动过程中,要求控制平板状态使硬币在摆杆的5个摆动周期中不从平板上滑落,并保持叠放状态。

(4)在平板上固定一激光笔,光斑照射在距摆杆150cm距离处垂直放置的靶子上。

摆杆垂直静止且平板处于水平时,调节靶子高度,使光斑照射在靶纸的某一条线上,标识此线为中心线。

用手推动摆杆至一个角度θ(θ在30°~60°间),启动后,系统应在15秒钟内摆杆至一个角度控制平板尽量使激光笔照射在中心线上(偏差绝对值<1cm),完成时以LED指示。

在上述过程完成后,调整平板,使激光笔照射到中心线上(可人工协助)。

启动后放开让摆杆自由摆动;摆动过程中尽量使激光笔光斑始终瞄准照射在靶纸的中心线上。

二、系统硬件原理设计

1.系统总体框图

 

 

2.系统功能实现的设计

(1)角度采集

KMZ41是利用稀薄镍铁导磁合金的磁阻效应做成的角度传感器。

KMZ41片内包含两个相互独立的单臂镍铁导磁合金电阻电桥,两个电桥的放置方向相差45°,各自具有独立的电气特性和机器特性。

UZZ9001是角度信号调理芯片。

该芯片将角度传感器KMZ41输出的两个交流信号转换成线性角度信号,并以SPI总线协议兼容的形式输出,并可补偿直流偏移量。

UZZ9001内部包含ADC、振荡电路、低通滤波器、ALU、复位电路、控制单元、SPI接口电路。

内部结构如图所示:

(2)显示与报警

设计中显示的实现采用LED数码管显示,由STC89C52单片机P0的8个数据端口与其连接,中间加上拉电阻来完成对实时符合要求的显示。

(3)主控单片机

设计中选用STC89C52单片机,共有四个8位的I/O口,外加12MHz晶振提供时钟信号,采用上电复位模式,P1口和角度采样传感器通讯,直接输入12位数字量到89C52内进行处理,P3口输出控制信号与外接电机驱动电路来

控制步进电机的输入信号,P0口与LED数码显示模块连接,用于实时显示。

P2^3连接蜂鸣器,提示达到指定角度,从而控制摆杆运动。

(4)步进电机

步进电机是一种将电脉冲转化为角位移的执行机构,可以通过控制脉冲个数来控制角位移量,从而达到准确定位的目的;同时可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。

步进电动机的转子为多极分布,定子上嵌有多相星形连接的控制绕组,由专门电源输入电脉冲信号,每输入一个脉冲信号,步进电动机的转子就前进一步。

由于输入的是脉冲信号,输出的角位移是断续的,所以又称为脉冲电动机。

步进电机根据单片机输出给驱动电路的脉冲信号确定步数,从而随着摆杆摆动调节平板的位置保持水平。

步进电机分三种:

永磁式(PM),反应式(VR)和混合式(HB)

永磁式步进一般为两相,转矩和体积较小,步进角一般为7.5度或15度;

反应式步进一般为三相,可实现大转矩输出,步进角一般为1.5度,但噪声和振动都很大。

在欧美等发达国家80年代已被淘汰;

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

它又分为两相和五相:

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

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

故本次试验采用混合二相式,步距角为1.8°。

驱动电路为ULN2003.步进机与驱动电路连接图如下:

三、系统软件原理设计

(1)控制系统加电后主控单片机、LED显示、角度传感器、步进机驱动电路复位,然后程序则开始通过扫描角度传感器KMZ41来实时采集当前角度。

控制算法中,当实际角度值达到符合要求的角度时,蜂鸣器提示令摆杆开始摆动。

由于摆杆长度不变,摆动周期T不变。

在摆杆摆动一个周期内,控制步进电机步数,使平板旋转360°。

此电机程序代码如下:

#include

#defineucharunsignedchar

#defineuintunsignedint

#include"uzz9001.h"

ucharcoderoundz[]={0X03,0X06,0X0c,0X09};

//ucharcoderoundf[]={0X09,0X0c,0X06,0X03};

#defineCONPORTP1

sbitbeep=P2^3;

sbitdula=P2^6;

sbitwela=P2^7;

unionraradian;

voiddelayms(uchardcnt)

{

uinti;

while(dcnt>0)

{

i=123;

while(i>0)

i--;

dcnt--;

}

}

voiddianji()

{

uchari=0,j=200;

while(j--)

{

CONPORT=roundz[i];

i++;

if(i>4)

i=0;

delayms(10);

}

}

uintangle()

{uintangle;

uchari;

UZZ9001_DATA=1;

UZZ9001_CS=0;

UZZ9001_CLK=0;

for(i=16;i!

=0;i--)

{

radian.rad<<=1;

UZZ9001_CLK=1;

if(UZZ9001_DATA)

radian.rad|=0x01;

UZZ9001_CLK=0;

}

UZZ9001_CLK=1;

UZZ9001_CS=1;

if(!

(radian.r[0]&&0x40))

{

radian.rad&&0x7f7f;

if(radian.r[0]&&0x01)

radian.r[1]|=0x80;

radian.r[0]>>=1;

angle=radian.rad*225lu>>10;

return(angle);

}

}

voidmain()

{

charw0;

wela=0;

dula=0;

w0=angle();

if(w0==450)

beep=1;

delayms(1000);

beep=0;

dianji();

}

UZZ9001_H头文件

#ifndefUZZ9001_H

#defineUZZ9001_H

#defineucharunsignedchar

#defineuintunsignedint

sbitUZZ9001_CS=P1^0;

sbitUZZ9001_CLK=P1^1;

sbitUZZ9001_DATA=P1^2;

externunionra

{

ucharr[2];

uintrad;

}radian;

externvoidreaduzz9001(void);

#endif

(2)程序通过扫描角度传感器KMZ41来实时采集当前角度。

控制算法中,当实际角度值达到符合要求的角度时,蜂鸣器提示令摆杆开始摆动。

当摆杆开始下降时,每达到步进机旋转一步的角度后,单片机就给步进机驱动电路一个脉冲信号。

进而保持平板水平。

当摆杆到达对侧最高点时,步进机开始反转。

重复上述步骤。

步进机程序代码如下:

voiddianji()

{uinti=0,j;

charw0;

w0=angle();

if(w0==450)

beep=1;

for(j=0;j<7;j++)

{

charw1;

w1=angle();

if(w1

{

while(w1==w0-18)

{

CONPORT=roundz[i];

w0=w1;

i++;

if(i>4)

i=0;

}

}

else

{while(w1==w0+18)

{

CONPORT=roundf[i];

w0=w1;

i++;

if(i>4)

i=0;

}

}

}

}

voidmain()

{while

(1)

{wela=0;

dula=0;

dianji();

}

}

(3)为使光斑照射在靶纸的固定一条中心线上,则需在摆杆到达最高点时,调整平板角度。

当摆杆开始下降时,每达到步进机旋转一步的角度后,单片机就给步进机驱动电路一个脉冲信号。

从而在摆杆摆动过程中,光斑照在中心线上。

步进机程序代码如下:

voiddianji()

{uinti=0,j,k;

charw0;

charw1;

w0=angle();

if(w0==450)

beep=1;

k=36;

while(k--)

{

CONPORT=roundz[i];

i++;

if(i>4)

i=0;

delayms(100);

}

wela=1;

P0=0xfe;

wela=0;

dula=1;

P0=0x3f;

dula=0;

delayms(100);//放手

for(j=0;j<7;j++)

{w0=450;

w1=angle();

if(w1

{

while(w1==w0-18)

{

CONPORT=roundz[i];

w0=w1;

i++;

if(i>4)

i=0;

}

}

else

{while(w1==w0+18)

{

CONPORT=roundf[i];

w0=w1;

i++;

if(i>4)

i=0;

}

}

}

}

voidmain()

{while

(1)

{

uintangle();

dianji();

}

}

 

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

当前位置:首页 > 高中教育 > 初中教育

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

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