智能电热水壶控制系统设计_第1页
智能电热水壶控制系统设计_第2页
智能电热水壶控制系统设计_第3页
智能电热水壶控制系统设计_第4页
智能电热水壶控制系统设计_第5页
已阅读5页,还剩90页未读 继续免费阅读

下载本文档

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

文档简介

智能电热水壶控制系统设计团队成员:队长:薛浩洲U队员:熊 博U队员:严 乐 U指导老师:张林 曾喻江2012年5月25日摘要:本论文设计介绍了ADuC7026为控制芯片,对电热水壶工作进行控制的方法。通过电加热电路对水进行加热,并对水的温度进行采样,采样信号通过DS18B20将数字量送入ARM,经微机处理后,结合按键控制实现LCD显示,并可实现对水的温度的控制和超过水温的报警系统。关键词:ARM;温度控制;控制器 Abstract: The thesis introducts the method of use the ADuC7026 which is the control chip to control the work of kettle heat with electric energy. Through electric heated circle, the water will be heated, then sample the temperature of the water. The sampling signal will set the mimic to the system of ARM through DS18B20, after processed by the computer and controlled by the switch, it will be showed by LCD.At the same time, the system can control the temperature beyond the setting, the system of alarm will run.Keywords:ARM;Temperature control;Controller 目 录一、系统设计目标31. 基本设计目标42. 发挥与拓展4二、系统方案设计与论证51. 系统方案选择与比较52. 系统框图和方案描述5三、理论分析计算6四、单元电路设计与功能实现说明111. 模块电路设计112. 流程图173. 模块实现184. 整体电路设计204.1 电路原理204.2 Pcb版图204.3 电路元器件清单21五、测试方案与测试结果221. 测试方案222. 测试仪器223. 测试结果22六、收获和体会23七、致谢27附录一:参考文献28附录二:系统框图28附录三:系统流程图28附录四:系统源码清单301. 头文件:302. 程序主体:35一、系统设计目标对于常规的电热水壶,只要接通电源,就开始加热,直到水沸腾后通过蒸汽来产生声音报警。这种设计有下面几个方面的不足:1如水壶中没水,电源误接通时也会一直加热,容易引起事故。2当只需要加热到沸点以下某一温度时,不能及时给出声音报警信号。3当水加热沸腾后不能自动停止工作。而电热水壶是家家户户都用的,因此本设计具有广泛的应用价值。本课程设计要求完成一个电热水壶控制器的电路设计。用ADuC7026作为控制芯片,管理整个电热水壶的工作情况,构成了一个闭环控制系统。具体来说,我们的智能电热水壶控制系统设计的目标是:产品化、人性化、智能化。首先,我们此次完成的作品是一个普通用户可以使用的产品,配套有产品使用说明书。然后,我们努力做到使我们的产品能够想用户之所想,知用户之所需,这包括人机交互环节的友好性以及使用过程中的流畅性。最后,在实现以上目标以后精益求精,依赖算法的不断完善,提高测量精度,增强算法的功能,实现产品的智能化。详细设计目标见下:1. 基本设计目标1) 控制加热2) 温度实时显示3) 烧沸断电4) 任意温度保温5) 蜂鸣提示2. 发挥与拓展1) 红外远距离控制2) 傻瓜烧水模式和智能烧水模式之间的切换3) 按键近距离控制4) 开始工作时间预设定5) 期望温度预设定6) 倒计时显示7) 工作时间实时显示8) 烧水过程中任意时刻重新设定9) 工作状态指示灯10) 产品化外包装11) 其他功能与性能。二、系统方案设计与论证1. 系统方案选择与比较拿到题目后我们团队首先很快提出了两套方案:方案一:采用功率电子器件控制电热水壶主电路。具体采用IGBT或其他类似功能的电力电子器件串联在热水壶供电线路中,并将电力电子器件的控制端连接芯片的输出管脚。通过程序给输出管脚置高低不同电平,实现电热水壶供电线路的导通与断开,从而控制电热水壶的工作状态。优点:环境适应能力强,可以承受大功率电器,产品寿命长等;缺点:强直流供电需要对220V交流进行整流,电路复杂等。方案二:采用电磁继电器作为电热水壶主电路的开关。同样,将电磁继电器串接入电热水壶供电线路的火线上,并且弱电控制部分接入芯片的输出管脚。通过程序的判断来输出高低电平,配合采用上拉电压及三极管控制电磁继电器的吸合与断开,控制电热水壶供电线路的导通与否,从而控制电热水壶的工作状态。优点:强弱电分离,直接用220V交流供电,电路简单等; 通过对以上两套方案进行比较,考虑具体实现时的难度,结合我们设计的目标,我们团队则更倾向于第二套方案。第二套方案中,采用电磁继电器实现电路控制和强弱电的分离。此方案中电路简单易行,器件体积较小,方便我们产品化的设计。同时不需要对220V高压进行整流处理,减少了很多不必要的麻烦。2. 系统框图和方案描述220V交流电源分出两路,一路通过电磁继电器和电热水壶相连接,电磁继电器处于交流电路的火线上,相当于开关;另一路通过220V交流转5V直流进行变压,提供5V直流电源,用来给最小系统板以及PCB外设板供电。与最小系统板相连接的还有温度传感器、输入输出外设、电磁继电器。温度传感器放置在电热水壶中,用来传回水壶中水的温度。通过输入的设定值与传感器返回温度值的比较、判断来控制输出端口状态,从而控制外设与电磁继电器,实现整体的智能控制。其中,温度传感器使用DS18B20,输入设备有按键和红外,输出设备为液晶显示屏、指示灯、蜂鸣器等。整体系统组成框图如下:220V交流电源电热水壶电磁继电器220V交流转5V直流变压器温度传感器ADuC7026输出设备输入设备图2.1 系统组成框图三、理论分析计算单元电路的设计多采用先在面包板上调试,实验通过以后再在PCB板上设定具体器件的参数,故外设电路中的电阻、电容等多采用经验值。设计的软件部分用到了PID算法,以精确控制温度,下面对此算法进行展开计算。PID(Proportional Integral Derivative)控制是控制工程中技术成熟、应用广泛的一种控制策略,经过长期的工程实践,已形成了一套完整的控制方法和典型的结构。它不仅适用于数学模型已知的控制系统中,而且对于大多数数学模型难以确定的工业过程也可应用,在众多工业过程控制中取得了满意的应用效果。PID 工作基理:由于来自外界的各种扰动不断产生,要想达到现场控制对象值保持恒定的目的,控制作用就必须不断的进行。若扰动出现使得现场控制对象值(以下简称被控参数)发生变化,现场检测元件就会将这种变化采集后经变送器送至PID 控制器的输入端,并与其给定值(以下简称SP 值)进行比较得到偏差值(以下简称e 值),调节器按此偏差并以我们预先设定的整定参数控制规律发出控制信号,去改变调节器的开度,使调节器的开度增加或减少,从而使现场控制对象值发生改变,并趋向于给定值(SP 值),以达到控制目的 ,如图 1 所示,其实PID 的实质就是对偏差(e 值)进行比例、积分、微分运算,根据运算结果控制执行部件的过程。 图3.1 模拟PID 控制系统原理图PID 控制器的控制规律可以描述为: (1)比例(P)控制能迅速反应误差,从而减小稳态误差。但是,比例控制不能消除稳态误差。比例放大系数的加大,会引起系统的不稳定。积分(I)控制的作用是:只要系统有误差存在,积分控制器就不断地积累,输出控制量,以消除误差。因而,只要有足够的时间,积分控制将能完全消除误差,使系统误差为零,从而消除稳态误差。积分作用太强会使系统超调加大,甚至使系统出现振荡。微分(D)控制可以减小超调量,克服振荡,使系统的稳定性提高,同时加快系统的动态响应速度,减小调整时间,从而改善系统的动态性能。根据不同的被控对象的控制特性,又可以分为P、PI、PD、PID 等不同的控制模型。数字PID 的实现在连续-时间控制系统(模拟PID 控制系统)中,PID 控制器应用得非常广泛。其设计技术成熟,长期以来形成了典型的结构,参数整定方便,结构更改灵活,能满足一般的控制要求。随着计算机的快速发展,人们将计算机引入到PID 控制领域,也就出现了数字式PID 控制。由于计算机基于采样控制理论,计算方法也不能沿袭传统的模拟PID 控制算法(如公式1 所示),所以必须将控制模型离散化,离散化的方法:以T 为采样周期,k 为采样序号,用求和的形式代替积分,用增量的形式(求差)代替微分,这样可以将连续的PID 计算公式离散: (2)式1 就可以离散为: (3)或者: (4) 这样就可以让计算机或者单片机通过采样的方式实现PID 控制,具体的PID 控制又分为位置式PID 控制和增量式PID 控制,公式4 给出了控制量的全部大小,所以称之为全量式或者位置式控制;如果计算机只对相邻的两次作计算,只考虑在前一次基础上,计算机输出量的大小变化,而不是全部输出信息的计算,这种控制叫做增量式PID 控制算法,其实质就是求的大小,而 k=k-k-1;所以将式4 做自减变换有: (5)其中温度控制PID 算法设计本设计利用了上面所介绍的位置式PID 算法,将温度传感器采样输入作为当前输入,然后与设定值进行相减得偏差ek,然后再对之进行PID 运算产生输出结果fOut,然后让fOut 控制定时器的时间进而控制加热器。为了方便PID 运算,首先建立一个PID 的结构体数据类型,该数据类型用于保存PID 运算所需要的P、I、D 系数,以及设定值,历史误差的累加和等信息:typedef struct PIDfloat SetPoint; / 设定目标 Desired Valuefloat Proportion; / 比例系数 Proportional Constfloat Integral; / 积分系数 Integral Constfloat Derivative; / 微分系数 Derivative Constint LastError; / 上次偏差int SumError; / 历史误差累计值 PID;PID stPID; / 定义一个stPID 变量下面是PID 运算的算法程序,通过PID 运算返回fOut,fOut 的值决定是否加热,加热时间是多少。PID 运算的C 实现代码:float PIDCalc( PID *pp, int NextPoint )int dError,Error;Error = pp-SetPoint*10 - NextPoint; / 偏差,设定值减去当前采样值pp-SumError += Error; / 积分,历史偏差累加dError = Error-pp-LastError; / 当前微分,偏差相减pp-PrevError = pp-LastError; / 保存pp-LastError = Error;+ pp-Integral * pp-SumError / 积分项- pp-Derivative * dError / 微分项); 在实际运算时,由于水具有很大的热惯性,而且PID 运算中的I(积分项)具有非常明显的延迟效应所以不能保留,我们必须把积分项去掉,相反D(微分项)则有很强的预见性,能够加快反应速度,抑制超调量,所以积分作用应该适当加强才能达到较佳的控制效果,系统最终选择PD 控制方案,下面C 代码所示为PD 控制的实现过程:float PIDCalc( PID *pp, int NextPoint )int dError,Error;Error = pp-SetPoint*10 - NextPoint; / 偏差,设定值减去当前采样值dError = Error-pp-LastError; / 当前微分,偏差相减pp-PrevError = pp-LastError; / 保存pp-LastError = Error;return (pp-Proportion * Error / 比例项- pp-Derivative * dError / 微分项);温度控制实现 通过温度的PID 运算,产生结果fOut,该参数决定是否加热,加热时间是多长。该程序如下:stPID.Proportion = 2; /设置PID 比例值stPID.Integral = 0; /设置PID 积分值stPID.Derivative = 5; /设置PID 微分值fOut = PIDCalc ( &stPID,(int)(fT*10) ); /PID 计算if(fOut=0)*P_IOA_Buffer &= 0xff7f; /温度高于设定值,关闭加热器else*P_IOA_Buffer |= 0x0080; /温度低于设定值,打开加热器 加热时间由主函数计算,由TimerB 中断控制。主程序中通过PIDCalc 函数得到fOut 参数,如果该参数大于“0”,则开启加热器。IRQ2_TMB 中断一直处于允许状态,每进入一次IRQ2_TMB 中断,fOut 参数减1,直到fOut = 0,停止加热。如果PIDCalc 计算结果比较大说明离目标温度相差较大,则加热时间比较长,如果计算结果比较小,说明离目标温度相差较小,加热时间相对较短。四、单元电路设计与功能实现说明1. 模块电路设计蜂鸣器模块:图4.1 蜂鸣器模块控制电路图 蜂鸣器模块采用外接上拉电压以提供较大的驱动电流。通过芯片P0_1输出端口的高低控制三极管NPN1的导通或截止以驱动蜂鸣器。R1电阻限流使用。 当程序判断达到预设温度以后,输出端口置高,蜂鸣器工作,发出提示信号。当温度低于设定温度是,蜂鸣器则不工作。 继电器模块:图4.2 电磁继电器模块控制电路图电磁继电器模块的控制电路图如图4.2所示,同样通过上拉5V高电平来提供较大的驱动电流。通过对输出端口P0_2的置高或置低,控制三极管NPN2的导通或者截止,进而使线圈的工作状态发生转换。继电器连接强电的两个触电为1和2(或3),通过线圈导通吸合可动触电1,控制火线的导通获断开,从而进行烧水的控制。 开关SW00控制P0_2输出端口是否控制三极管NPN2,从而实现傻瓜烧水模式和智能烧水模式之间的切换。 当开关拨到1、3相连时,继电器处于常闭状态,实现傻瓜烧水模式。当开关拨到1、2相连时,继电器的工作状态受P0_2端口的控制。通过程序判断,当温度达到设定值时,输出端口置高,三极管导通,线圈吸合触电,断开强电。温度传感器、红外接收头、电源模块:图4.3 传感器、红外、电源模块电路图其中,GET为红外接收头,TT为温度传感器,Battery为电源模块。电源则是连接变压器整流后提供的5V直流电。温度传感器三个端口分别接VDDIO、GND和P2_7输入端口。红外接收头有两个端口连接VCC和GND,另一个输入端口连接P1_4 。按键模块:图4.4 按键模块电路图 通过四个按键可以对温度时间进行设定。按下按钮后,相应输入端口置高,四个输入端口通过或门组合进入中断,执行相应的中断程序。我们设计依次实现切换、加、减、确认功能。排针模块: 图4.5 排针模块电路图我们一共设计了两处排针模块,分别是24*2和20*4 。两排的排针连接最小系统板上的对应的24*2的排针,目的是把芯片的对应端口引到PCB板上,方便连线的同时可以将我们自己设计的PCB板固定在最小系统板的上方,减小产品的体积。一排的排针连接液晶显示屏,用来控制液晶显示器的显示及固定液晶显示器之用。4输入或门模块:图4.6 4输入或门模块电路图或门模块用来组合四个按键的输入值,实现只要有一个按键按下,P1_5端口则输入高电平,让程序进入中断,再通过判断是哪一个按键被按下来实现相应的设定功能。变压器模块:图4.7 变压器模块电路图变压器模块实现对220V交流的整流以输出5V直流,实现对最小系统板和PCB外设板供电的自给自足。2. 流程图烧开水是是否结束 倒计时进入设置是否设置 开始是否否 否否保温是否结束结束是是蜂鸣器响继电器断开是是否达到温度设置是继续烧开水否是否设置 图4.8 整体流程图3. 模块实现蜂鸣器控制模块代码:/* 功能:P0.1置位*/void BeepOn()GP0SET |= (117);/* 功能:P0.1清零*/void BeepOff()GP0CLR |= (117);继电器控制模块代码:/* 功能:P0.2置位*/void RelayOn()GP0CLR |= (118);/* 功能:P0.2清零*/void RelayOff()GP0SET |= (118);中断处理模块代码:void IRQ_Handler(void) _irq if(IRQSTA & (13) ) != 0)/判断是否为Timer1 IRQCountTime();T1CLRI = 0;T1LD = 0x;if(IRQSTA & (122) != 0) /判断是否为按键中断PauseTime();CheckKey();StartTime();if(IRQSTA & (121) != 0) /判断是否为红外中断PauseTime();CheckIR();HandleIR();DelayMs(10);StartTime();return;按键处理模块代码:/* 功能:检测按下哪个键*/void CheckKey()/S1 按下if( (GP0DAT & (15) ) = (15) )SwitchKey();/S2 按下if( (GP0DAT & (16) ) = (16) )AddKey();/S3 按下if( (GP1DAT & (12) ) = (12) )DecKey();/S4 按下if( (GP1DAT & (13) ) = (13) )AckKey();DelayMs(100);PID温度控制模块代码:float PIDCalc()static int LastError = 70; / 上次偏差float Proportion = 2; / 比例系数 Proportional Constfloat Derivative = 5; / 微分系数 Derivative Constint dError,Error;Error = set_tmp - tmp; / 偏差,设定值减去当前采样值dError = Error - LastError; / 当前微分,偏差相减LastError = Error;return (Proportion * Error / 比例项+ Derivative * dError / 微分项);4. 整体电路设计4.1 电路原理图4.9 电路原理图4.2 Pcb版图根据原理电路图手工绘制PCB电路图,最终的印刷电路板如下图所示:图4.10 PCB电路图4.3 电路元器件清单表4.1 电路元器件清单型号数量说明S90132NPN三极管电阻71K电容10.1uF轻触按键4长柄按钮排针1注1124*2排针2注2120*1芯片74ls2514输入或非门开关1单刀双掷蜂鸣器1响声继电器1强电开关DS18B201温度传感器HS0038A21红外接收头注:1、用于连接PCB扩展板与系统板;为满足相应封装的48脚连接线。2、用于连接PCB扩展板与液晶显示器;为满足相应封装的20脚连接线。五、测试方案与测试结果1. 测试方案通过温度计和我们的产品显示温度的同步对比,测量产品测定温度的准确性。对比使用PID算法前后对温度控制的精确度,不断完善温度测定的准确度。2. 测试仪器 满足量程的温度计、产品的温度传感器3. 测试结果图5.1 烧水温度过程曲线六、收获和体会说是为期十五周的ADI电子竞赛终于要在这周结束了。看着自己的成果,我们团队的队员们可以很骄傲地说:我们终于做成了!的确,经过了这难忘的十五周,我们终于完成了智能电热水壶控制系统的设计,并有了我们成型的产品。回想这十五周里,我们从不懂到朦胧有些懂,直到最后彻底懂,全部的一个过程便是我们在相关方面学习成长的一个历程。作为队长,我想说:我们的团队是十分优秀的!我们有着编写了好几千行C程序的熊博,我们有着心灵手巧、善于创新设计的严乐,当然,作为团队的一员,通过不断的学习,我也完成了相应的任务,配合软件、外观的要求设计出了功能齐全,可塑性高的PCB板。最后的成果是对我们团队的肯定和鼓励。看着队员们各自认真地研究自己分配的任务时,脑中便模糊已经有了我们最后能做成功的这样一个成品。熊博的软件功底过硬,严乐作为一个女生更是少不了细心周到,而对于什么都不懂的我来说,负责整块硬件方面的设计,着实是一项艰巨的任务!自己知道肩负的重任,自己从一开始便做好了努力去弥补自身知识储备不足的弱势。对于电路的学习,对于最小系统板的学习,对于设计软件的学习,一步步按部就班地去规划,去完善,并配合着试着去一步步做出点东西。就这样,我从一开始的一窍不通到后来的有点明白知道,直到最后的成功投板!感觉真的很神奇,只要你花时间了,只要你用功去做了,我发现任何事情都是可以做好的,尽管你以前有没有做过类似的事!当然,过程中也会遇到打击。有时想完成一个小小的点,很有可能思考一天都没有去解决好;有时由于设计的更新,可能一周要跑去两趟广埠屯咨询、学习;更有时一个BUG没有解决,从晚上调到第二天早上还没搞好,然后一整天睡不了觉太多的令人失望的回忆,现在想想有些真是太不应该,但毋庸置疑的是这一切对自己的成长、对自己的不断丰富都是有很大帮助的。而在设计PCB板子的过程中,我也掌握了一项本领,那便是对Altium designer的学习使用。从一开始的基本电路图,到后来的规范的整个电路的设计,直到最后的自己手动布线成功的PCB板的成功出台,期间的成就感真是与日俱增。而且,在设计基本电路的同时,自己也在不断去思索能不能多加些元器件,多实现一些小巧的功能。等全部设计完了后才发现,我们的确有了很多附加的功能。很开心,自己画出了人生的第一块PCB板,可能布局不是最完美的,但自己真是十分喜欢。另外的一些工作就是与两位队员一起,设计外观和界面。这也花了我们不少的时间,方案也是被改了又改,直到最后一刻,我们才算统一了我们的设计思路,才有了一系列的赶工、熬夜。这段过程无疑是开心的!我们在一起学习,在一起讨论,在一起吃饭,在一起聊天!当我们在一天天丰富自己的同时,我们的团队也在日益茁壮,我们之间的友谊更是与日俱增。当我们的工作室里笑声最爽朗的时刻,那一定使我们学有所成后放松一下的时段。有那么一阵子,我们每天很早就背着电脑,拿着水壶和各种混杂的器件来到启明学院,开始一天的工作。有时忘了吃饭,有时懒得吃饭,有时熬夜到很晚,有时累到趴下。也许并不是这门课程有多么困难,多么重要,我们只是想展示我们自己的智慧,我们只想完成我们的目标,我们想去多学习!相信这段成长的时光定会给我们留下些许美好的回忆,相信我们的所有付出都是十分值得的!最后,感谢我的团队每名队员的付出,也感谢在此过程中帮助过我们的老师和同学。青春岁月里有你们相伴,那边是最美好的展示! 薛浩洲电子课设心得(熊博): 为期15周的ADI电子竞赛,终于在我们组员的共同努力下,顺利的完成了结题,个人在其中从老师,学长,和队友的身上都学到了不少的东西。 本次课程设计任务中,我主要担任ARM开发的代码编写部分。大一自学单片机控制的时候,我零零散散的学过一些C语言硬件编程的知识。刚开始接到课设题目的时候,我开始了ARM控制的正式学习,所用的资料是Aduc7026原理及应用这本书。这本教程是自己在网上买的,书中的很多例程对自己都有很大的启发。通过这次系统的学习,才发现以前自己学习到的只是皮毛。在这次电子竞赛的压力之下,自己的硬件编程水平才有了质的提高。 下面就个人编程过程中遇到的一些问题和收获做一个简单的总结。首先说一下ARM与单片机IO口操作上的差别,单片机中,我们可以直接给某一管脚赋值高电平,例如P0.2=1。而在ARM中,IO口的操作都是通过寄存器完成的,例如通过对GP0DAT赋值,但是这其中很容易存在重复赋值导致的问题,因为在将某一管脚置高时很可能就将其他的管脚置低。为此,要寻找一种方法,只对GP0DAT中的某一位改变的运算操作,我最后采用的运算方式如下:置1操作:GP0CLR |= (118);置0操作:GP0DAT &= (118);这样一来,就会保证在对某一位操作时,不会影响其他位的值。其次介绍一下中断控制方面的收获,由于自己是在Keil环境下编写整个工程,ARM中断刚开始一直有问题,程序始终不能进入中断中,后来在网上查资料才知道并不是程序的问题,而是Keil软件的设置不正确,通过这次的找错过程,我对中断的实现有了更深的认识。最后总结一下红外检测模块的调试过程,之前在上“计算机网络”课程的时候,我曾用单片机写过红外检测的程序,于是这次就直接想把它搬到ARM上用,但是程序读到的键码始终不对。然后想了想,觉得可能是延时不太对,由于是软件延时,不好直接计算准确的延时时间。于是,在延时程序后加入使管脚反向的代码,通过示波器测量电平变化之间的时间,就可以准确的得出延时的准确时间,通过反复的实验测量,最终顺利的读出正确的键码。通过这次,我明白了硬件测量在软件测试中的重要作用。 在代码编写的过程中,有一点是我自己比较自豪的,那就是代码的规范性,在开始编写之前,我上网查找了有关Keil软件编程的一些规范。也在自己的代码里得到了实现,这其中包括函数命名的规范,函数内变量命名的规范,函数间全局变量命名的规范,甚至是注释的规范。 通过这次课程设计,我对硬件编程有了更深的认识。非常感谢基地学长和老师对我的指导,谢谢!电子课设心得(严乐):从竞赛题目布置下来到最终结题完稿,也历经了三个多月的时间。这么长的时间里,虽说有时候挺辛苦的,但最终回想起来,收获还是挺多的。下面就个人部分做点小小的总结。 因为之前没有在基地做项目的经验,所以,在拿到比赛题目后有点不知道如何着手。好在团队里熊博同学在这方面比较有经验,我们组就组织了一次小型的交流会,讨论了各自对“智能电热水壶”的理解,及今后如何准备。之后,我们又约曾喻江老师,和他进行了更细致的交谈,交谈过程中,他和我们着重谈论了国外大学生在做比赛时的“产品化思想”,而我国学生在这方面的不足:只实现了功能,像一个模型,而没有产品化、生化话。此次交谈后,我们对自己的作品也有了一个初步的定位:产品化、智能化、人性化。这也是指导我们比赛准备的核心思想。在确定了核心思想后,我们就开始准备自己的比赛题目了。根据个人的兴趣,我们小组对工作任务进行了合理的分工:熊博负责软件实现部分,薛浩洲负责电路部分,我主要负责机械设计部分(实现产品化)。分工明确后,我们各自便开始准备自己部分的工作。 因为机械设计部分主要在后期实现,所以前期我也协助薛浩洲同学完成了部分电路方面的工作最小电路板的连线,继电器、蜂鸣器及红外接收头的电路设计。我的重点部分是机械设计。刚开始,我并不知道我们应该怎样完成作品的封装。于是想到了利用以前金工实习时所学的铣床,利用编程实现。但询问后,他们说这个是不可能实现的,首先就是设备问题,学生基地这边没有,只能找外面做,这样经费太多。放弃这个想法后,薛浩洲提议用有机玻璃做,但是我觉得这样做出来的效果肯定是不好的,首先,它不美观;那样的话,就达不到最初产品化、人性化的要求了。在不知如何是好后,我向电工基地的老师求助,他在分析了我们现有材料后,建议我们去广埠屯买专门的封装盒,然后再根据自己板子的特点,进行人性化的界面设计。 经过挑选后,最终买来的封装盒是一个封闭的塑料盒,而且比我们的板子要高些、宽些、长些。将它进行加工,以完美的承载我们的电路板的工作就落在我身上啦!首先,我们的智能电热水壶是一个包含输入、输出的智能系统。那我就必须在封装盒适当的地方打孔、切割以使得我们的LCD显示屏能看得见,还有按键、开关、指示灯、温度传感器的线、插槽等等这些,且必须保证他们在确定的、恰当的、刚好的位置和大小。这个要求确实够难。于是我选用了最为精确的数字游标卡尺进行测量。为了防止出错,我先用空白的有机玻璃作为实验,这样实验了一块又一块的有机玻璃板后,我打算在封装盒上动工了。不过,谨慎的我还是去找机械的学长们交流了一下,因为我觉得我在画直线时,我的线不够水平。于是他们向我推荐了一个更精确、更好用的测量工具高度尺。高度尺确实是个好用的工具。简单方便,更重要的是精确、水平度好!画好线后,就要进行打孔、切割、打磨等工艺了。虽是第一次,但我很感兴趣,学得也很快。此外,对于封装盒过高、过长、过宽的问题,我是在下面量身定做了一个恰好的泡沫底板,将我们的电路板完美的固定住了。经过这么复杂的准备后结果怎样呢,可以看看我们最终的产品! 大家看到的也许只是一个普普通通的封装盒,看起来也很简单,但要把它做好、做精确、做美观确实不易。我们现在展示的这个,实际上它是我第五次实践的结果。有过困难,有过付出,留下更多的是收获。一路走来,我很感谢我当初选择了这次比赛,因为它真的让我学到了很多! 在此,也非常感谢张林老师、曾喻江老师和赵鑫师兄对我的指导和帮助,谢谢!七、致谢在本次课程设计的过程中,有很多同学、老师帮助过自己。无论是从硬件上的支持,还是精神上的鼓励,都让我们有了继续坚持的决心和勇气!在此,特别感谢我们的指导老师张林老师和我们班的任课老师曾喻江老师,离开了老师们的指导,我们很难完成这样的一次课程设计。同时,感谢那些在一起共同探讨、帮助,共同完成这样的一次课程设计的同学们!附录一:参考文献1 孙来军等ADuC7026原理与应用电子工业出版社,2009 2 谢晋雄等环境温度条件对电热水壶温升试验结果影响的试验研究检验检疫学刊,2010 3 许雪梅,何善亮水沸腾前水层的温度分布现代物理知识2004年第2期,2004 4 林祝亮等基于PID算法的家用电热水器恒温控制系统设计仪器仪表学报,2006 其他一些网上搜索的零碎的资料和图片。附录二:系统框图系统整体组成框图220V交流电源电热水壶电磁继电器220V交流转5V直流变压器温度传感器ADuC7026输出设备输入设备附录三:系统流程图烧开水是是否结束 倒计时进入设置是否设置 开始是否否 否否保温是否结束结束是是蜂鸣器响继电器断开是是否达到温度设置是继续烧开水否是否设置 附录四:系统源码清单1. 头文件:1) common.h#ifndef _COMMON_H_#define _COMMON_H_#include #include #include #endif2) int.h#ifndef _INT_H_#define _INT_Hvoid IRQ_Handler(void) _irq;#endif3) interface.h#ifndef _INTERFACE_H_#define _INTERFACE_H_extern int flash_time;void Display(void);void UpdateDisplay(void);#endif4) io_ctrl.h#ifndef _IO_CTRL_H_#define _IO_CTRL_H_/ IO口初始化函数void IOInit(void);/ 蜂鸣器使用P0.1控制void BeepOn(void);void BeepOff(void);/ 继电器使用P0.2和P0.3控制void RelayOn(void);void RelayOff(void);#endif5) ir.h#ifndef _IR_H_#define _IR_H_#define uchar unsigned char#define uint unsigned intextern int key_id;void IRInit(void); void beep(void);void CheckIR(void);void HandleIR(void);void SetNum(void);void CheckIR2(void);#endif6) key.h#ifndef _KEY_H_#define _KEY_Hextern char flash;void KeyInit(void);void CheckKey(void);void SwitchKey(void);void AddKey(void);void DecKey(void);void AckKey(void);#endif7) ocm12864.h#ifndef _OCM12864_H_#define _OCM12864_H_#include.headocm12864.htypedef unsigned char uchar;typedef unsigned int uint;#define lcddata_out GP3DAT /P3#define lcddata_in (char)(GP3DAT & 0xFF)#define LCD_DOUT_EN GP3DAT=(GP3DAT|0xFF)#define LCD_DIN_EN GP3DAT=(GP3DAT&0x00FFFFFF)#define set_rs() GP4DAT=(GP4DAT|0x)/P4.0 A0#define clear_rs() GP4DAT=(GP4DAT|0x)&(0x)#define set_rw() GP4DAT=(GP4DAT|0x) /P4.1#define clear_rw() GP4DAT=(GP4DAT|0x)&(0x)#define set_en() GP4DAT=(GP4DAT|0x) /P4.2#define clear_en() GP4DAT=(GP4DAT|0x)&(0x)#define set_cs() GP4DAT=(GP4DAT|0x)/P4.3#define clear_cs() GP4DAT=(GP4DAT|0x)&(0x)#define set_reset() GP4DAT=(GP4DAT|0x)/P4.4#define clear_reset() GP4DAT=(GP4DAT|0x)&(0x)/*/*函数声明*/*/void LCD_Delay(unsigned long v);void check_busy(void);void write_data(unsigned long dat);void write_command(unsigned long command);void reset(void);void clear_screen(uchar m);void lcd_initial(void);void set_page_address(uchar page);void set_colume_address(uchar colume);void disp_word(uchar col,uchar pag,uchar ascii);void disp_chn(uchar col,uchar pag,uchar ascii);void disp_str(uchar col,uchar page,uchar *cn);void setpoint(uchar x,uchar y);void point(uchar x,uchar y);void disp_bmp( uchar const *puts );void shuxian(uchar n,uchar e,uchar f);void hengxian(uchar k);void delaynum(unsigned char num);void write_floatNum(uchar col,ucha

温馨提示

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

评论

0/150

提交评论