全国电子设计大赛论文-帆板控制系统论文.doc_第1页
全国电子设计大赛论文-帆板控制系统论文.doc_第2页
全国电子设计大赛论文-帆板控制系统论文.doc_第3页
全国电子设计大赛论文-帆板控制系统论文.doc_第4页
全国电子设计大赛论文-帆板控制系统论文.doc_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

赛区: 江西赛区 赛区编号: JXB13002 测试人签字: 帆板控制系统(F题)摘要:本帆板控制系统由8位MCU为主控制器,通过AD转换,对红外接收管接收的模拟量进行采样,先通过TLC2543变换运算,把模拟量转变成数字量,从而测出帆板的转动角度,然后把信号反馈回去,再由主控制器去控制L298N去控制直流电机转动的方向及转速,从而达到控制帆板的转动的角度以及对其的测量。在另一模式下,可以通过按动按键逐步调节风扇转速去调节帆板的转动角度,也可以直接设置帆板需要转动的角度,让系统自行将帆板吹到设置的角度,测量精度高达2度,能够准确的测量和调节帆板的角度,是一个价格及性能综合考虑的方案。关键词: TLC2543 MCU L298N 角度 控制1 方案论证与比较1.1 采样方法比较与选择方案一:用TLC2543 12AD转换芯片配合电位器对信号进行采集,通过电位器跟随帆板旋转产生的电阻变化作为变化模拟信号,然后由TLC2543对电位器变化的模拟信号进行A/D转换和采集,最后送MCU处理。但是电位器变化阻值误差太大,导致所测角度不准。方案二:用霍尔传感器安装到帆板上然后将些许小磁铁安装到一个圆盘上,用MCU直接检测霍尔的信号,然后去计算帆板转过的角度,但是由于磁铁安装少了,测量的精度不够,磁铁太多又会使霍尔的信号不变,从而测量不到角度,该方案较难实现。方案三:在帆板的机架安装红外对管,帆板转动时红外接收的光信号,随帆板转动而变化,红外接收的光信号模拟量,运用A/D读回模拟量,在单片机程序中进行角度转换及计算,处理方便,所测角度也准确度大大提高。所以该设计采用红外对管来采集帆板偏转的角度信号。1.2 处理器的比较与选择由于51系列优点之一是它从内部的硬件到软件有一套完整的按位操作系统,称作位处理器,或布尔处理器。它不光能对片内某些特殊功能寄存器的某位进行处理,如传送、置位、清零、测试等,还能进行位的逻辑运算,其功能十分完备,使用起来得心应手。虽然其他种类的单片机也具有位处理功能,但能进行位逻辑运算的实属少,89C51系列单片机价格便宜,功能相对够用,抗干扰能力强,Flash存储容量大,兼容做的很好,应用广泛,所以在帆板控制系统中是很好的选择。1.3转换方案方案一:采用TLC2543,TLC2543为12为串行模数转化芯片,使用开关电容逐次逼近技术完成A/D转化过程,在输入电压为0-5V时,电压精度可达到1.2mv。由于采用串行结构,能够节省51单片机的IO口资源,价格适中,外围电路简单等,稳定可靠。方案二:ADC0832是并行接口的8位A/D转换器,ADC0832转换速度慢,转换精度第,在此很难达到系统设计要求。1.4数据显示方案 方案一:采用字符型LCM1602液晶显示器。该显示器件低功耗、尺寸小,超薄轻巧,价格便宜,编程方便,由于在整个系统设计中只需显示转动角度和当前角度,所以从性价比上,本设计选用LCM1602液晶显示装置。方案二:采用LCM12864汉字显示器件,该器件价格较高,编程复杂,主要考虑设计成本和完成功能的方面,在本设计中没有采用LCM12864图文显示装置。1.5电源选择方案方案一:采用10节1.5V干电池供电,电压达到15V经7812稳压后给直流电机供电,然后将12V电压再次降压、稳压后给单片机系统和其他芯片供电。但干电池电量有限,使用大量的干电池给系统调试带来很大的不便,因此,我们放弃了这种方案。方案二:直接通过市电降压,经LM7812和LM7805稳压后分别给直流电机、MUC主控芯片等供电,电机的启动和停止时产生的电磁干扰相对较小,能够保证整个系统能够可靠工作,同时电路也易于制作,故采用此方案。1.6电机的选择方案一:步进电机:精度高,但转速慢,不能提供快速旋转带动扇叶吹动帆板。方案二:伺服电机:耐环境方面还是比较好的,但是编码器部分非常脆弱,不能撞击或敲击。抗电磁干扰要求也高(线缆部分)。相比之下精度也要高些,但是价格昂贵,用在帆板控制系统中确实有点不适。方案三:直流电源:比同等级交流电机有更大的起动转矩、调速性能好、调速方式成熟,调速方式简单,易控制,是帆板控制的最佳选择。1.7键盘选择方案一:选择独立按键,独立键盘具有结构简单,程序简单,但是程序量大,占用单片机存储空间大,由于本系统需要16个按键来完成系统的所有功能,因此如果采用独立按键会占用大量I/O口,浪费单片机资源。方案二;矩形键盘程序复杂,但是程序占用内存量小,并且节省了I/O口,可以有效的利用单片机资源。所以本系统采用矩阵键盘来实现。2 系统设计2.1 总体设计整体系统的设计思路为红外的信号经过一个10k的电阻分压以后,送到10位AD转换TLC2543,由于需要高精度的角度测量,因此要将测到的每个数字量对应的角度进行处理,又由于红外的非线性影响,因此必须对每一个角度进行矫正。然后通过主控芯片将其角度转换出来。在经过处理送到显示器LCM1602上显示。风扇的转速和帆板的转动角度通过AD转换和驱动芯片构成了一个闭环系统,当风扇的转速使帆板的角度与设定的角度或显示的角度不符时,MCU通过接收红外对管电压的变化,通过转换的数据送到L298N来控制风扇的转速,最终使帆板稳定在一定的角度。系统实现的总体电路框图如图1所示,总电路图见附件2。信号号号 TLC2543进行AD转换电位器转换成模拟电信号MCU主控芯片1602显示器4x4矩阵键盘L298N直流 电机控制直流电机带动风扇系统图1 总体设计框架图2.2 单元电路设计2.2.1 键盘电路设计 键盘电路如图2所示,采用矩阵键盘来实现16个按键的处理任务,共占用了MCU的8个I/O口,大大节约的单片机的硬件资源。 图2 矩阵键盘模块 2.2.2 AD转换及MCU主电路电路设计采用12位串行AD转换器TLC2543对输入信号进行转换,将转换的数据送8位AT89S52内进行数据处理,然后将处理后的控制信号和输出信号分别送给风扇控制芯片和LCM1602显示装置,来实现闭环系统的控制。电路图如图3所示。图3 AD转换及MCU主控电路2.2.3 L298N风扇驱动电路模块L298N是电机控制专用芯片,它可以控制步进电机和直流电机,电路设计比较简单,外围器件少,在本系统中采用L298N控制直流电机的运转,从而控制风扇的转动,并且通过红外对管采集的电压信号实现闭环控制,可以实现风扇从低速到高速的运行,从而完成题目 图4 L298N控制电路模块要求的在d=10cm时用电机控制帆板从060度的变化功能,同时通过这种方法可以实现基本要求(3)和发挥部分的全部功能,并且还把题目要求的距离d=715cm的距离扩大到d=517cm。3 软件设计软件设计共包括六大模块:系统初始化、主循环、AD转换、数据处理、显示模块和PWM电机控制,其整体流程图如图5所示。系统初始化主循环启动TLC2543进行AD转换数据处理反馈 显示处理PWM电机控制 主程序液晶、中断初始化初始界面手动及加减检测角度度45度定位调节按键设置角度 图5 整体程序设计流程图 图6 主循环模块 主循环流程图如图6所示,显示程序流程图如图7所示,PWM程序流程图如图8所示。显示初始状态显示显示实时帆板角度显示帆板角度与设定角度 图7 显示程序流程图按键控制PWM控制帆板角度保持 4s帆板转向YN反馈调节pwm帆板控制角度保持设定温度AY设定温度N反馈调节 图8 PWM程序流程图4 系统测试 本设备的操作说明见附件1。4.1 基本要求中(1)的测试数据固定电机到帆板之间的距离,用手转动转角,测试帆板转动得值与红外检测值比较如表1所示,本系统完成了基本要求(1)的功能。 表1 基本要求中(1)的测试数据次数转角值(度)测到转角值(度)距离(cm)误差值(度)1547712210912713201921714504951714.2 基本要求(2)数据测试固定电机到帆板之间的距离d=10cm,通过按键控制风力的大小,使帆板角度能够在060度范围内变化,同时在LCM1602上显示实时角度,测试数据如表2所示,本系统完成了基本要求(2)的功能。表2 基本要求中(2)的测试数据按键次数帆板转角(度)显示转角(度)距离(cm)误差值(度)311121112101522232223100825272527101113032303210115404240421002045484548101244952495210230576057601004.3 基本要求(3)数据测试当间距d=10cm 时,通过操作键盘控制风力大小,使帆板转角稳定在455范围内。要求控制过程在10 秒内完成,实时显示,并由声光提示,以便进行测试。同时在LCM1602上显示实时角度,测试数据如表3所示,本系统完成了基本要求(3)的功能。表3 基本要求中(3)的测试数据帆板转角(度)显示转角(度)距离(cm)误差值(度) 是否报警43454345102是43454345101是43454345102是43454345102是43454345101是43434345103是4.4 发挥部分(1)数据测试当间距d=10cm 时,通过键盘设定帆板转角,其范围为060。要求在5 秒内达到设定值,并实时显示。最大误差的绝对值不超过5。同时在LCM1602上显示实时角度,测试数据如表4所示,本系统完成了发挥部分(1)的功能。 表4 发挥部分(1)数据测试设定角度(度)帆板角度(度)测到角度(度)距离(cm)误差值(度)9119119111029119119111009119119111024446444647103444644465110144464446571004.5 发挥部分(2)数据测试间距d 在715cm 范围内任意选择,通过键盘设定帆板转角,范围为060。要求在5 秒内达到设定值,并实时显示。最大误差的绝对值不超过5。同时在LCM1602上显示实时角度,测试数据如表5所示,本系统完成了发挥部分(2)的功能。表5 发挥部分(2)数据测试次数帆板转角(度)测到转角(度)距离(cm)误差值(度)设定帆板转角19119117110291191181103911911101104911911151105444644467145644464446814574446444610145844464446151454.6 发挥部分(3)数据测试 固定转角,用手改变间距d=517cm滑动,测试帆板转动得值与液晶显示数据值比较值如表6所示。 表6 发挥部分(3)数据测试次数转角值(度)测到转角值(度)距离(cm)误差值(度)1454247523245434681234544461012445424717235 结论本系统以89S52芯片和直流电机为核心部件,通过TLC2543转换,对红外接收管接收的模拟量进行采样,可以通过按动按键逐步调节风扇转速去调节帆板的转动角度,也可以直接设置帆板需要转动的角度,让系统自行将帆板吹到设置的角度,测量精度高达2度,能够准确的测量和调节帆板的角度,是一个价格及性能综合考虑的方案。由于系统架构设计合理,功能电路实现较好,系统性能优良、稳定,较好地达到了题目要求的各项指标。参考文献:1.数字图像处理学,元秋奇著,北京:电子工业出版社,2000年;2.模拟电子线路基础,吴运昌著,广州:华南理工大学出版社,2004年;3.数字电子技术基础,阎石著,北京:高等教育出版社,1997年;4.单片机原理及应用,李建忠著,西安:西安电子科技大学,2002年5.单片机应用程序设计技术M. 何立民著,北京航空航天大学出版社. 2003年.第二章6.单片机实用低功耗设计M. 吴少军、刘光斌著,人民邮电出版社.2005年.7.全国大学生电子设计竞赛电路设计M. 黄智伟著.北京:北京航空航天大学出版社 2006. 附录1 操作说明 图9 各按键功能说明本作品主要通过红外传感器实时检测帆板的转角,并且可以通过按键调整,设置帆板角度。单片机上电后,1602液晶显示初始界面,“Welcome Please select”在此状态下(状态一)若按下1次“状态”键后再按下“确定”键则单片机跳转到状态二(手动或自动检测帆板角度),在这个状态下若用手托住帆板下端改变帆板的角度,则在1602液晶上将显示帆板的实时角度值;此状态下还可以通过按键启动,调整电机转速。当重复按下“加速”键可以逐渐增加电机转速,当重复按下“减速”键可以逐渐减慢电机转速;此时1602液晶实时显示帆板角度;在状态二下若按下“返回”键则返回初始界面。在初始界面是若按下两次“状态”按键后再按下“确定”键则单片机跳转到状态三(通过按键控制帆板恒定转过45度)在此状态下当重复按下“加速”键可以逐渐增加电机转速当帆板转角在45度正负5度时则停止按“加速”键,若超出45度则可适当按下“减速”键,将其保持在45度左右,若达到题目要求将发生声光报警,若此时按下“停止”键将停止电机转动和取消声光报警,在此状态下若按下“返回”键则返回初始界面。在初始界面是若连续按下三次次“状态”按键后再按下“确定”键则单片机跳转到状态四(通过键盘设定帆板转角并维持),在状态四的情况下可以设置帆板转角,但此设置转角数必须为两位且小于或等于60(例:05度, 56度)数值将显示在1602上然后按下“确认”键,电机转动将帆板陆续吹倒设定值并保持;最后再按下“返回”键程序将返回到初始状态(状态一),以此循环往复工作。附件2 总电路图1帆板控制系统原理图 图10 系统电路原理图2帆板控制系统PCB印刷图 图10电源模块 图11 帆板控制模块 图12 L298N模块 图13 按键模块附录3 程序清单1. 主程序#pragma OT (5,speed)#include#define uchar unsigned char#define uint unsigned intsbit beer =P17;uchar state=1,tcbz=0,fskz=0;uint temp=0,temp2=0,temp3=0,sjjd=0,sjjd1=0,designe_jiaodu=0,num=1000;bit Flag;uchar data key_jiaodu2;#includeLCD1602.h#includeAD2543.h#includebiaoge.h#includedisplay.h#includepwm.h#includekeyboard.h#includecheck.hvoid main(void) Init_LCD(); init(); temp3=read2543(0); beer=0; dianji=0; while(1) switch(state) case 1: display1(); /初始状态 keycan1(); break; case 2: display2(); /手动及加减检测角度 keycan2(); break; case 3: display2(); /调45度 check3(); keycan3(); break; case 4: display4(); /按键设置角度 keycan4(); if(designe_jiaodu+330)check5(); else check4(); break; 2头文件#ifndef _pwm_h_#define _pwm_h_sbit dianji=P30;uchar CYCLE=60,m=0; /定义周期 该数字X基准定时时间 如果是10 则周期是10 x 0.1ms char PWM_H=60 ;/定义高电平时间 void init() TMOD=0x011; /定时器设置 0.1ms in 12M crystal TH0=(65536-100)/256; TL0=(65536-100)%256; /定时0.1mS TH1=(65536-1000)/256; TL1=(65536-1000)%256; EA=1; ET0=1; ET1=1; TR0=0; TR1=0;void tim() interrupt 1 static uchar count; TH0=(65536-100)/256; TL0=(65536-100)%256; count+; if (count=PWM_H) dianji = 1; /电机转 else dianji = 0; if(count = CYCLE) count=0; void tim2() interrupt 3 m=m;if(m)dianji=0;TH1=num/256;TL1=num%256;elsedianji=1;TH1=(65536-num)/256;TL1=(65536-num)%256; #endif#ifndef _keyboard_h_#define _keyboard_h_uchar scan=0xfe,0xfd,0xfb,0xf7;uchar c4=15,anjian_num=0,c2=10,c1=10,number1=0;uchar keycan() uchar i,j,ini,inj,temp,find=0; for(i=0;i4;temp=temp|0xf0;for(j=0;j3)number1=0;if(key1=15) if(number1=1)state=2;TR0=1;Init_LCD(); else if(number1=2)PWM_H=60;TR0=0;dianji=0;state=3;Init_LCD(); else if(number1=3)state=4;Init_LCD(); void keycan2() /static uchar number2=0; uchar key2; key2=keycan(); if(key2!=c2) c2=key2;if(key2!=20) switch(key2) case 13:TR0=1;PWM_H=PWM_H-2;if(PWM_H0)PWM_H=0;break;/加风case 14:TR0=1;if(PWM_H=60)PWM_H=PWM_H+2;break; /减风case 12:PWM_H=60;TR0=0;dianji=0;break; /停止 if(key2=11)number1=0;state=1;PWM_H=60;TR0=1;Init_LCD(); void keycan3() static uchar c3=30; uchar key3; key3=keycan(); if(key3!=c3) c3=key3;if(key3!=20) switch(key3) case 13:TR0=1;PWM_H=PWM_H-5;if(PWM_H0)PWM_H=0;break;/加风case 14:TR0=1;if(PWM_H=60)PWM_H=PWM_H+5;break; /减风case 12:PWM_H=60;TR0=0;dianji=0;break; /停止 if(key3=11)number1=0;state=1;PWM_H=60;TR0=1;Init_LCD(); void keycan4() static uchar number=0; uchar key4; key4=keycan(); if(key4!=c4) c4=key4;if(key4!=20) if(number=0)&(key4=6)key_jiaodu0=key4; if(number=1)&(key410)key_jiaodu1=key4; if(key410)|(key4=15)number+;/ if(number=3) if(key4=15) TR1=1;TR0=0;tcbz=1; if(tcbz=1) if(key4=11) num=1000;number1=0;c4=15; key_jiaodu0=0;key_jiaodu1=0;number=0; TR1=0;TR0=0;dianji=0;state=1;Init_LCD(); #endif#ifndef _LCD1602_H_#define _LCD1602_H_#define DatePort P0sbit RS = P10;sbit RW = P11;sbit EN = P12;void delay_LCD(uint k) uchar i; while(k-) for(i=0;i113;i+);void Write_com(uchar com) RS=0; RW=0; DatePort=com; EN=1; delay_LCD(2); EN=0;void Write_dat(uchar dat) RS=1; RW=0; DatePort=dat; EN=1; delay_LCD(2); EN=0;void Init_LCD(void) Write_com(0x38); Write_com(0x06); Write_com(0x01); Write_com(0x0C);#endif#ifndef _AD2543_H_#define _AD2543_H_sbit AD_OUT = P16;sbit AD_IN = P15;sbit AD_CS = P14;sbit AD_CK = P13;void delayus(uint m) while(m-);uint read2543(uchar port) uint ad=0; uchar j; AD_CK=0; AD_CS=0; /片选 /port=4; delayus(50); for(j=0;j12;j+) ad=1; if(AD_OUT)ad|=0x01; AD_IN=(bit)(port&0x08); /写选通地址 AD_CK=1; delayus(6); AD_CK=0; delayus(3); /port=1; / return(ad);#endif#ifndef _display_h_#define _display_h_/sbit led=P12;uint temp1;uchar code disp= Welcom! ;uchar code disp1= Please select ;uchar code disp2=Angle:;void display1() uchar k; Write_com(0x80); k=0; while(dispk!=0) Write_dat(dispk); k+; k=0; Write_com(0xc0); while(disp1k!=0) Write_dat(disp1k); k+;void display2() uchar k; static uchar i2,h2; i2+; if(i22)&(h23) temp1=read2543(0); temp2=temp2+temp1; i2=0;h2+; if(h2=2) h2=0;temp=temp2;temp2=0;temp=temp/2; sjjd=out_jiaodu(temp); sjjd=sjjd*10; Write_com(0x80); k=0; while(dispk!=0) Write_dat(dispk); k+; k=0; Write_com(0xc0); while(disp2k!=0) Write_dat(disp2k); k+; Write_dat(sjjd/100+0x30); Write_dat(sjjd/10%10+0x30); Write_dat(.); Write_dat(sjjd%10+0x30); Write_dat(0xdf); void display4() uchar k; static uchar h4; if(h47) temp1=read2543(0); temp2=temp2+temp1; h4+; if(h4=6) h4=0;temp=temp2;temp2=0;temp=temp/6; sjjd1=out_jiaodu(temp); sjjd=sjjd1*10; W

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论