ImageVerifierCode 换一换
格式:DOCX , 页数:28 ,大小:281.55KB ,
资源ID:10167925      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/10167925.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(电磁控制运动装置.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

电磁控制运动装置.docx

1、电磁控制运动装置摘 要本系统以单片机AT89S52为核心,调节直流电磁铁供电电压的大小,改变电磁铁的磁场力的大小,利用电磁控制实现摆杆按指定的摆角和周期摆动。采用SCA100T角度传感器来实现摆杆摆角信号的采集,用 AT89S52根据摆角值和周期输出一定占空比的PWM脉冲波,用 L298N作为驱动电路,以达到控制摆角和周期的目的。本设计进行了硬件电路搭建和软件编程,给出了系统方案、硬件电路图和软件流程图,并通过软件编程,实现了题目要求的技术指标,并用液晶显示屏实时显示摆杆摆角、摆动周期、设定角度和设定周期。关键词: 摆角 周期 电磁控制 AT89S521方案设计与论证本题目是设计并制作一个摆杆

2、控制系统,通过电磁控制装置,调节摆杆摆角的大小,如图1.1所示。图1.1 摆杆控制系统示意图根据题目的要求,本系统所设计的核心问题主要有:1、对直流电磁铁电压大小进行快速而准确的控制,以保证摆杆的摆角和周期在控制范围内。2、为保证系统的精度要求,必须要对摆杆摆动角度进行实时检测。3、为保证摆杆在尽可能短的时间内达到预定角度还需要相应按键及显示电路。我们分以下几个部分进行方案设计和比较论证。1.1转角采集方案方案一:采用MMA7455L芯片。这是一种XYZ三轴微机电加速度计,可测量 X、Y、Z 三个方向上在工作时的参数,输出为8位或10位的数字量。可直接与单片机连接。硬件电路简单,但成本较高,软

3、件程序调试较困难。方案二:采用SCA100T-D02。SCA100T-D02测量范围为-90+90,具有模拟和数字两路输出。模拟量输出电压为05V,不需信号调理电路就可送入A/D,拟采用模拟量输出,后接AD7705。此方案硬件电路简单,软件调试简单,测量数据稳定。经过比较,拟选择方案二。1.2驱动及控制方案方案一:采用线性放大驱动方式。采用L298N作为驱动芯片。单片机输出数字量,经D/A后转换为连续变化的电压值,控制电磁铁电磁力的大小,来改变摆角的大小,此方式波动小,线性好,对邻近电路干扰小。但存在效率低和散热等问题。硬件需要D/A转换器,电路复杂,成本高。方案二:采用PWM调速。采用L29

4、8N作为驱动芯片。PWM调速是使加在直流电磁铁两端的电压为方波形式,通过改变方波占空比实现对直流电磁铁电压大小的调节。PWM由单片机输出。L298N芯片内部开关为电子开关,速度很快,稳定性也极强。此方案电路简单,使用比较方便。基于上述理论分析和实际情况,拟定选择方案二。1.3系统总体方案 图1.2 摆杆控制系统总体方案框图 根据上述分析,设计出系统总体方案,由SCA100T-D02采集转角信息后送入AD7705转换,输出的8位数字量送入AT89C52中,单片机经分析处理后输出一定占空比的PWM,经L298N功率驱动放大后控制直流电磁铁电压的大小。同时可用按键设定摆杆转角并显示,摆杆控制系统总体

5、方案框图如图1.2所示。2系统硬件电路设计硬件电路设计图见附录1。2.1单片机AT89S52 本系统采用AT89S52作为核心部件。AT89S52内部有8KB的存储单元和256个RAM存储单元,用于本系统的角度采集控制足够使用。51单片机的外围控制电路如图2.1所示。 图2.1 单片机最小系统2.2 L298N简介 L298N 是 SGS 公司的产品,比较常见的是 15 脚 Multiwatt 封装的L298N,内部同样包含 4 通道逻辑驱动电路。可以方便的驱动两个直流电机,或一个两相步进电机。L298N 芯片可以驱动两个二相电机,也可以驱动一个四相电机,输出电压最高可达 50V,可以直接通过

6、电源来调节输出电压;可以直接用单片机的 IO 口提供信号;而且电路简单,使用比较方便。 L298N 可接受标准 TTL 逻辑电平信号 VSS,VSS 可接 457 V 电压。4 脚 VS 接电源电压,VS 电压范围 VIH 为2546 V。输出电流可达2 A,可驱动电感性负载。1 脚和 15 脚下管的发射极分别单独引出以便接入电流采样电阻,形成电流传感信号。L298 可驱动 2 个电动机,OUT1,OUT2 和 OUT3,OUT4 之间可分别接电动机。2.3角度测量角度测量使用了VTI 公司生产的硅基加速度传感器SCA100T-D02,其主要性能指标:1) 双轴向倾角测量:SCA100T 测量

7、X-Y 方向;2) 测量范围1.7g;3) 测量灵敏度1.2V/g;4)+5V 单电源供电,两个比例电压输出(模拟),内置11位AD 转换器;5)兼容SPI 的数字输出;6)通过SPI 接口,可以访问内部温度传感器。SCA100T为12脚表贴封装,设计时要水平安装芯片,并注意芯片上面箭头所指方向为正方向。2.3.1角度测量原理角度测量采用倾角传感器SCA100T-D02的传感轴安装为与摆杆在同一平面内,采用双轴测量值合成来计算倾斜角,在小倾角测量时,具有高分辨率和高精度的特点。该传感器的每个轴可以检测090度之间的倾角,所对应的输出电压为05。由于加速度传感器在静止放置时受到重力作用,因此会有

8、1g 的重力加速度。利用这个性质,通过测量重力加速度在加速度传感器的X 轴和Y 轴上的分量,可以计算出其在垂直平面上的倾斜角度。如图2.2所示,有, ,则即图2.2 角度测量原理图这样,根据以上原理一个2轴加速度传感器可以测量在X-Y 平面上的倾斜角度。这个公式就是本文中用来测量物体倾斜角度的基本原理。需要说明的是,这里利用的是物体在静止时受到重力的性质,如果物体同时也有运动加速度的话,那么这个公式将不再准确。所以必须为公式增加一个限制条件,即 (式2-1)2.3.2角度测量算法本设计角度测量算法采用反三角函数算法。直接利用式2-1以上公式进行计算。具体步骤为:1)测量X、Y的加速度,。(对于

9、数字输出的加速度传感器,直接通过I2C 或SPI 总线读取;对于模拟输出的加速度传感器,需要通过ADC 进行采样。)2)计算 ,如果这个平方和接近1g 的平方,那么说明这组采样值是有效的,可以用来算;否则将该采样值丢弃,重复第一步。3)利用有效的采样值, 通过开平方和反正切函数等数学计算, 求出倾斜角度。4) 重复第一步。在第三步公式中:offset是在0输出的电压值(电压2.5V),Sensitivity是芯片灵敏度(SCA100T-D02是2V)Vout是芯片输出的模拟量。2.3.3角度测量电路 选用角度传感器SCA100T-D02的模拟输出,输出范围05v,故可直接接8位AD7705进行

10、模数转换,得出数字量送入单片机。SCA100T-D02与AD的连接如图2.3所示:图2.3 SCA100T-D02与AD连接2.4直流电磁铁控制模块直流电磁铁控制采用高低电平控制,由单片机输出。选用手制的直流电磁铁,。驱动芯片选用L298N。2.4.1 直流电磁铁控制电路直流电磁铁为手制,单片机的输出为TTL信号,电流小,所以要加驱动电路。选用的驱动芯片为L298N。直流电磁铁控制电路图如图2.4所示。 2.5按键显示本系统设计采用了LCD显示,显示屏上可实时显示测量角度和设定角度。按键共有4个,分别为启动键、停止键、角度设定键、周期设定键。2.6 声光提示本系统设计在帆板转角为1045范围内

11、,当摆杆稳定运行20s发出声、光提示,并在5s内平稳停在静止点上示,以便进行测试。声光提示电路图如图2.5所示。 图2.4 直流电磁铁控制电路图图2.5 声光提示电路图3系统软件设计3.1主程序流程图本系统软件设计采用C51语言编程,以达到题目要求的控制精度和响应时间。主要完成转角信号的采集、数字滤波、标度变换、显示并通过采集信号调节电磁铁的通断时间来控制摆杆角度。其中,显示模块负责将角度传感器检测到的角度送到LCD进行显示;角度控制模块负责根据按键的输入信息调节电磁铁通断时间,控制摆杆偏转。图3.1 主程序流程图由于本系统的主要任务是对角度实时监控,所以在程序中将对角度的测量放在主程序中,设

12、为查询方式;对按键的处理设为中断方式。系统软件主程序流程图如图3.1所示,按键中断处理子程序如图3.2所示。处理子程序1、2、3、4、5分别对应为PWM占空比加1子程序,PWM占空比减1子程序,设定值加1子程序,设定值减1子程序和转角45自动追踪子程序。3.2 角度测量子程序流程图角度测量子程序流程图如图3.3所示:3.3角度控制子程序流程图单片机读入设定值X和测量值Y后进行比较,调节占空比改变直流电压调节角度,控制摆杆偏转。4系统测试基于本次设计题目的要求,本系统采用SCA100T-D02采集摆杆的转角并通过LCD显示,还可通过键盘预设转角值,其分辨率可达到2。 图3.2 按键中断处理子程序

13、4.1 测试仪器与方法测试仪器:量角器1把、秒表1块、直尺1把。测试方法:1、测试基本要求(1)、(2)项时,用量角器量出摆杆偏角并与LCD上显示的角度值进行比较,看角度传感器测得的角度是否准确。2、测试基本要求(3)项和发挥部分(1)、(2)项时,用量角器量出摆杆实际转角并与LCD上显示的角度值和按键设定的角度值进行比较,并用秒表记录调节时间,评判其控制性能。 图3.3角度测量子程序流程图 图3.4角度控制子程序流程图 4.2 角度测量(1)用手转动摆杆其测量结果如表1所示:表1 角度测量数据比较(单位:度)实际角度01415163031404345显示角度01314152729374142

14、绝对误差0-1-1-1-3-2-3-2-34.3 测试结果分析 通过测试结果可以看出,当摆杆角度从045范围变化时,当角度小于20时,控制容易,误差小,控制时间短。当角度接近45时,控制时间也明显增加,误差也较大。当控制角度在3045时,控制时间也明显增加,误差也较大。5结论通过测试可知:本系统能较好的完成摆杆控制系统的要求。具体完成工作如下:1、完成了基本要求的(1)、(2)、(3),11.5cm时测试范围最大达到45度。 完成了发挥部分的(1)、(2)。2、采用LCD实时显示角度,并能实时显示设定值。3、设有自动追踪设定值功能,当设定某一角度时,摆杆可以自动变化,以保证角度值的稳定。4、系

15、统在完成基本要求(1)时,分辨力可达1, 绝对误差小于5,完成基本要求(3)时,调节时间优于基本要求参考文献1 谷云高等. 基于MMA7455的机器人姿态控制系统的研究J.制造业自动化,2010(8):15-17, 46.2 张新强.点阵LCD驱动显控原理与实践M.北京:北京航空航天大学出版社,2010.3 朱清.基于单片机控制的人机界面应用研究J.工业控制计算机, 2009, 22(12):5,74 孙汝建.基于SPI接口的双轴SCAT100倾角传感器及其应用方法J.仪器仪表用户,2006(4),69-71.5 王盛军.基于SCA100T 和MCU数字倾角传感器的设计与实现J.微计算机信息2

16、010 (26):90-916 黄志伟等.全国大学生电子设计竞赛训练教程(修订版)M.北京:电子工业出版社,2010.附录1 硬件电路图 附录2 主要元器件清单表1 元件清单元器件名称型号个数LCD 液 晶128641单 片 机AT89S521角度传感器SCA100T-D021摆杆11.5cm1驱 动器L298N1稳压电源YB1731A1开关电源5/12V1基准电源TL 4311A/D模数转换器AD77051电解电容100uf2瓷片电容0.33uf1瓷片电容0.1uf6瓷片电容47uf1传感器SCA100T-D021瓷片电容20pf1石英晶体振荡器12MHZ1石英晶体振荡器6MHZ1与非门74

17、LS041电阻5.1K4电阻5604电阻4.7K3二极管IN58194蜂鸣器1散热片1附录3 程序清单#include #include#define dateport P0sbit BF=P07; sbit RS=P10; sbit RW=P11; sbit E=P12; sbit PSB=P16; sbit in1=P20; sbit in2=P21;sbit enA=P22; sbit CS=P31;sbit SCLK=P27;sbit DOUT=P26;sbit DIN=P25;sbit start=P37;sbit T=P34;sbit A=P35;sbit AD7705_DRDY=

18、P24;unsigned char code digit=0123456789;unsigned char code st=电磁控制运动装置;unsigned char code string=实际 设定;unsigned char code str=角度:; unsigned char code str0=周期:;unsigned char code stt=xxx; unsigned char MSB_Data,LSB_Data;unsigned int Data_read;unsigned int q=0;unsigned char jiaodu=5;unsigned char zhou

19、qi=2;float data_a=0x0000;int t;void delayms(unsigned int a);void delayus (unsigned int a);void AD7705_Write_Reg(unsigned char aa);float AD7705_Read_Reg();void int_system();void ad7705_init();void date_out();void setjiao(void);void setzhou(void);/void delayms(unsigned int a) unsigned int i,j;for (i=0

20、;ia;i+)for (j=0;ja;j+);void delayus (unsigned int a) while (a-);/void AD7705_Write_Reg(unsigned char aa) unsigned char f;DIN=1;CS=0; /CS=0SCLK=1; /CLK=1delayus(5); for(f=0;f8;f+) SCLK=0;if (aaf)&0X80) delayus(5); DIN=1;else delayus(5);DIN=0;delayus(10);SCLK=1;delayus(10);delayus(10);SCLK=1;CS = 1;DI

21、N=1;/float AD7705_Read_Reg() int k;DIN=1;AD7705_Write_Reg(0X38);CS=0;SCLK=1; Data_read =0x0000;for (k=0;k16;k+)delayus(10);Data_read= Data_read1;SCLK=0;delayus(10);if(DOUT=1) Data_read= Data_read|0X01;delayus(10);SCLK=1;SCLK=1;delayus(5);CS=1;DIN=1;return ( Data_read);/void int_system()CS=1;SCLK=1;D

22、IN=1;MSB_Data=0x00;LSB_Data=0x00;/AD7705void ad7705_init() CS=0;for(t=0;t40;t+) SCLK =0;delayus(5);SCLK =1; AD7705_Write_Reg(0x20);AD7705_Write_Reg(0x08);AD7705_Write_Reg(0x10);AD7705_Write_Reg(0x46);delayus(10); /DATE OUTvoid date_out()data_a=AD7705_Read_Reg(); /void Check_Busy() RS=0;RW=1;E=1;date

23、port=0xff;while(dateport&0x80)=0x80);E=0;/void Write_Cmd(unsigned char Cmd)Check_Busy();RS=0;RW=0;E=1;dateport=Cmd;delayus(10);E=0;delayus(10);/void Write_Data(unsigned char Data)Check_Busy();RS=1;RW=0;E=1;dateport=Data;delayus(10);E=0;delayus(10);/void Init_ST7920() delayms(40); PSB=1; delayms(1);

24、RS=0; delayms(1); RS=1; delayms(10);Write_Cmd(0x30); delayus(100); Write_Cmd(0x30); delayus(40); Write_Cmd(0x0c); delayus(100); Write_Cmd(0x01); delayms(15); Write_Cmd(0x06); delayus(100); /void ClrScreen() Write_Cmd(0x01);delayms(15);/void display0(void)unsigned char i;Write_Cmd(0x80);delayus(50);f

25、or(i=0;i16;i+)Write_Data(sti);/void display1()float i,j;unsigned char h=0;date_out();j=(data_a*500)/65535;if (j250)if (h=10&h30&h=90)h=h+6;if(j10&h20&h95)h=0;elseh=h;h=i;Write_Cmd(0x8b); Write_Data(digith/100); Write_Data(digith%100/10); Write_Data(digith%10); delayus(10);void display2(void)/unsigne

26、d char i;Write_Cmd(0x92);delayus(50);for(i=0;i10;i+)Write_Data(stringi);void display3(void)/unsigned char i;Write_Cmd(0x88);delayus(50);for(i=0;i5;i+)Write_Data(stri);void display4(void)/unsigned char i;Write_Cmd(0x98);delayus(50);for(i=0;i5;i+)Write_Data(str0i);void display5(void)/unsigned char i;Write_Cmd(0x9b);delayus(50);for(i=0;i5;i+)Write_Data(stti);/

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

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