红外感应自动窗帘控制器报告_第1页
红外感应自动窗帘控制器报告_第2页
红外感应自动窗帘控制器报告_第3页
红外感应自动窗帘控制器报告_第4页
红外感应自动窗帘控制器报告_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

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

文档简介

1、课程设计(论文) 课程名称: ARM嵌入式系统 题 目: 自动窗帘控制器设计 院 (系): 电气与控制工程学院 目 录第1章 ARM嵌入式系统概述21.1嵌入式系统21.2嵌入式系统的特点2第2章 步进电机原理简介22.1步进电机22.1.1步进电机原理32.1.2步进电机的一些基本参数32.1.328BYJ48步进电机及其电气特性4第3章 控制系统的总体设计43.1自动窗帘控制器设计要求:53.2总体设计思路53.3系统硬件设计53.3.1 EasyARM2131开发板功能63.3.2 ULN003A驱动芯片6 3.3.3 12864液晶显示73.3.4 电机驱动模块83.3.5显示模块93

2、.4总设计电路图93.5软件设计103.5.1 程序流程:11结论11心得体会12参考文献:15设计程序:16第1章 ARM嵌入式系统概述1.1嵌入式系统嵌入式计算机系统的出现,是现代计算机发展史上的里程碑。嵌入式系统诞生于微型计算机时代,与通用计算机的发展道路完全不同,形成了独立的单芯片的技术发展道路。由于嵌入式系统的诞生,现代计算机领域出现了通用计算机与嵌入式计算机两大分支。1.2嵌入式系统的特点(1) 由于嵌入式系统一般是应用于小型电子装置,系统资源相对有限,所以内核较之传统的操作系统要小得多。(2) 嵌入式系统的个性化很强,其中的软件系统和硬件的结合非常紧密,一般要针对硬件进行系统的移

3、植,即使在同一品牌、同一系列的产品中也需要根据系统硬件的变化和增减不断进行修改。(3) 嵌入式系统一般没有系统软件和应用软件的明显区分,不要求其功能的 设计及实现过于复杂,这样一方面利于控制系统成本,同时也利于实现系统安全。 高实时性的操作系统软件是嵌入式软件的基本要求。而且软件要求固化存储,以提高速度。软件代码要求高质量和高可靠性。 (4) 嵌入式软件开发要想走向标准化,就必须使用多任务的操作系统。嵌入式系统的应用程序可以没有操作系统而直接在芯片上运行;(5) 嵌入式系统开发需要专门的开发工具和环境。由于嵌入式系统本身不具备自主开发能力,即使设计完成以后,用户通常也不能对其中的程序功能进行修

4、改,因此必须有一套开发工具和环境才能进行开发,这些工具和环境一般是基于通用计算机上的软硬件设备以及各种逻辑分析仪、混合信号示波器等。第2章 步进电机原理简介2.1步进电机 在电气时代的今天,电动机一直在现代化的生产和生活中起着十分重要的作用。无论是在工农业生产还是在日常生活中的家用电器,都大量地使用着各种各样的电动机。因此对电动机的控制变得越来越重要了。2.1.1步进电机原理步进电机是机电控制中一种常用的执行机构,其原理是通过对它每相线圈中的电流和顺序切换来使电机作步进式旋转。驱动电路由脉冲信号来控制,所以调节脉冲信号的频率便可改变步进电机的转速。通俗地说:当步进驱动器接收到一个脉冲信号,它就

5、驱动步进电机按设定的方向转动一个固定的角度(及步进角)。通过控制脉冲个数即可以控制角位移量,从而达到准确定位的目的。同时通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的,现在比较常用的步进电机包括反应式步进电机(VR)、永磁式步进电机(PM),混合式步进电机(HB)和单相式步进电机等。四相步进电机按照通电顺序的不同,可分为单四拍、双四拍、八拍三种工作方式。单四拍与双四拍的步距角相等,但单四拍的转动力矩小。八拍工作方式的步距角是单四拍与双四拍的一半,因此,八拍工作方式既可以保持较高的转动力矩又可以提高控制精度。单四拍、双四拍与八拍工作方式的电源通电时序与波形分别如图a、b、c所示

6、:a. 单四拍 b. 双四拍 c八拍2.1.2步进电机的一些基本参数电机固有步距角:它表示控制系统每发一个步进脉冲信号,电机所转动的角度。电机出厂时给出了一个步距角的值,如86BYG250A型电机给出的值为0。90/1。80(表示半步工作时为0。90、整步工作时为1。80),这个步距角可以称之为“电机固有步距角”,它不一定是电机实际工作时的真正步距角,真正的步距角和驱动器有关。步进电机的相数:是指电机内部的线圈组数,目前常用的有二相、三相、四相、五相步进电机。电机相数不同,其步距角也不同,一般二相电机的步距角为0。90/1。80、三相的为0。750/1。50、五相的为0。360/0。720。在

7、没有细分驱动器时,用户主要靠选择不同相数的步进电机来满足自己步距角的要求。如果使用细分动器,则“相数”将变得没有意义,用户只需在驱动器上改变细分数,就可以改变步距角。2.1.328BYJ48步进电机及其电气特性步进电机28BYJ48型四相八拍电机,电压为DC5VDC12V。当对步进电机施加一系列连续不断的控制脉冲时,它可以连续不断地转动。每一个脉冲信号对应步进电机的某一相或两相绕组的通电状态改变一次,也就对应转子转过一定的角度(一个步距角)。当通电状态的改变完成一个循环时,转子转过一个齿距。四相步进电机可以在不同的通电方式下运行,常见的通电方式有单(单相绕组通电)四拍(A-B-C-D-A。),

8、双(双相绕组通电)四拍(AB-BC-CD-DA-AB-。),八拍(A-AB-B-BC-C-CD-D-DA-A。)下图为本设计所用到的28BYJ48步进电机28BYJ48电气性能:1. 额定电压:12VDC另有电压:5V、6V、24V2.相数:43.减速比:1/64另有减速比:1/16、1/324.步距角:5.625/645.驱动方式:4相8拍6.直流电阻:2007%(25)7.空载牵入频率:600Hz8.空载牵出频率:1000Hz9.牵入转矩:34.3mN.m(120Hz)10.自定位转矩:34.3mN.m11.绝缘电阻:10M(500V)12.绝缘介电强度:600VAC/1mA/1S13.绝

9、缘等级:A14.温升:50K(120Hz)15.噪音:40dB(120Hz)16.重量:大约40g17.未注公差按:GB1804-m18.转向:CCW第3章 控制系统的总体设计3.1自动窗帘控制器设计要求:1)用protel画出最小系统及外围扩展电路2)显示部分可用12864或者数码管,最好用上位机(VB或labvIEW界面)3)驱动部分用三极管搭接H桥驱动,或uln2003驱动4)要求小组成员分工明确3.2总体设计思路1) 本次设计采用EasyARM2131 ARM芯片为主控制芯片,由ULN2003A为驱动芯片控制步进电机转动;并通过MG12864点阵图形液晶图形模块显示步进电机转动模式。系

10、统硬件总体设计框图如图所示12864液晶显示EasyARMLPC2131最小系统红外感应模块四相五线步进电机ULN2003A驱动芯片系统原理结构框图3.3系统硬件设计本设计共用到的功能器件有,EasyARM2131开发板、ULN2003A驱动芯片、MG12864液晶显示屏、四相五线式步进电机、按键开关等器件。 3.3.1 EasyARM2131开发板功能EasyARM2131开发板是广州周立功公司设计的EasyARM系列开发套件之一,采用了PHILIPS公司基于ARM7TDMI-S 核、单电源供电、LQFP64封装的LPC2131,具有JTAG仿真调试、ISP编程等功能。如下图所示为2131功

11、能框图。 EasyARM2131开发板功能框图 可进行GPIO的控制实验,如LED闪烁控制、键盘输入、蜂鸣器控制、模拟SPI等; 也可进行外部中断实验,学习向量中断控制器(VIC); 定时器控制实验,如定时控制LED、按键捕获输入、匹配比较输出等;使用RS232转换电路,完成UART通讯实验等。3.3.2 ULN003A驱动芯片 ULN2003 的每一对达林顿都串联一个2.7K 的基极电阻,在5V 的工作电压下它能与TTL 和CMOS 电路直接相连,可以直接处理原先需要标准逻辑缓冲器来处理的数据。ULN2003 工作电压高,工作电流大,灌电流可达500mA,并且能够在关态时承受50V 的电压,

12、输出还可以在高负载电流并行运行。 ULN是集成达林管IC,内部还集成了一个消线圈反电动势的二极管,可用来驱动继电器。它是双列16脚封装,NPN晶体管矩阵,最大驱动电压为50V,电流为500MA,输入电压为,适用于TTL COMS,由达林顿管组成驱动电路。下图为ULN2003A的管脚功能图。 ULN2003A管脚图ULN2003 高压大电流达林顿晶体管阵列芯片,吸收电流可达500mA,输出耐压50V,具有很强的驱动能力。内部具有7组达林顿管电路,可以驱动7路负载。IN为输入端可由单片机引脚直接控制,当输入端为高电平时,输出端OUT输出低电平。3.3.3 12864液晶显示带中文字库的128X64

13、 是一种具有4 位/8 位并行、2 线或3 线串行多种接口方式,内部含有国标一级、二级简体中文字库的点阵图形液晶显示模块;其显示分辨率为12864, 内置8192个16*16点汉字,和128个16*8 点ASCII 字符 集.利用该模块灵活的接口方式和简单、方便的操作指令,可构成全中文人机交互图形界面。可以显示84行1616点阵的汉字,也可完成图形显示.低电压低功耗是其又一显著特点。由该模块构成的液晶显示方案与同类型的图形点阵液晶显示模块相比,不论硬件电路结构或显示程序都要简洁得多,且该模块的价格也略低于相同点阵的图形液晶模块。当15脚为低且16脚为高时选中TH12864-15的左区(左边的6

14、464),当15脚为高且16脚为低时选中MG12864的右区(右边的6464)。19脚和20脚是为了在光线暗的环境下看到液晶显示器的显示内容而加的背光,即在液晶显示器的背面加一光源。控制线RW、CSI、CS2、RS必须在使能线E为低的时候改变。当使能线E为高时控制线RW、CSI、CS2、RS不能改变;使能线E为高时TH12864-15从数据线DB0DB7输出数据。下图为TH12864-15的管脚说明。引脚号 符号 功能引脚号 符号 功能1GND 模块的电源地714 DB0DB7 并行数据072VDD 模块的电源正端15PSB 并/串行接口选择3 V0 LCD驱动电压输入端16NC空脚4 RS

15、并行的指令/数据选择信号;串行的片选信号17RET复位,低电平有效18 NC 空脚5 R/W 并行的读/写选择信号;串行的数据口19 BLA 背光源正极(LED+5V)6 E 并行的使能信号;串行的同步时钟19BLK 背光源负极(LED-0V)TH12864-15管脚说明3.3.4 电机驱动模块设计使用ULN2003A驱动芯片来驱动步进电机,用发光二极管来显示程序的运行状态。驱动电路如下图所示。电机驱动模块电路3.3.5显示模块 设计采用TH12864-15点阵式液晶显示屏,使用串行接法,电路模块图如下图所示。 12864液晶显示模块3.4总设计电路图3.5软件设计3.5.1 程序流程:设置引

16、脚功能液晶初始化是否上升沿跳变是电机正转是否下降沿跳变是电机反转结论 本次课程设计中主体功能采用步进电机实现,显示功能采用液晶12864实现,对于步进电机的驱动采用uln2003芯片,使用方便,简化电路。对于液晶12864的操作采用串行通信,串行通信操作简单,连线方便。检测感应模块主要通过检测人体运动产生电平跳变即有人走近窗帘或者离开窗帘,然后将信号发送给lpc2131来控制电机正反转。对于主程序的设计,先定义一个标志变量flag,当检测到电平上升沿时,控制电机正转,变量flag=1;当检测到下降沿,同时flag=1时即人离开窗帘,控制电机反转,关闭窗帘。定义两个变量用来计数,在开关窗帘过程中

17、,每当电机转动一圈时,相应变量自动加一,当变量达到设定上限值时,电机停止转动,即窗帘已经完全打开或者完全关闭。心得体会 在这次课程设计没有实际操作以前,我觉得ARM课程设计会比较麻烦,为此我们参考了别人的设计,初步了解总体思路后开始动手实践。由于有C语言编程经验和51单片机课设的经验,再结合ARM课程的学习,真正设计的过程中并没有想象的那么困难。使得我从一开始对系统的不太熟悉,到能开发一个简单的系统,在这整个过程中我学到了很多东西,掌握了一些常用的开发技能,也发现了大量的问题,有些在设计过程中已经解决,有些还有待今后慢慢学习。 同样的,这次课程设计也让我意识到心态的重要性,看着别人一个个都快做

18、好了,自己很着急,就想草草做完了事。谁知越急躁就是越达不到想要的效果。等到静下心来,和其他同伴商量后才又回到正常状态,在不断的失败和努力中,最后终于实现了效果。尽管不是很完美,但是我却觉得很满意。通过这次ARM课程设计,不仅锻炼了我们的动手能力,培养了团队协作及永不放弃、不屈不挠的精神。并且使我们对ARM的知识得到了进一步的提高,同时感谢对我们帮助的同学和老师,谢谢你们对我们的帮助和支持。通过这次课程设计,让我更加深刻了解课本知识,和以往对知识的疏忽得以补充,在使用手册时,有的数据很难查出,但是这些问题经过这次设计,都一一得以解决,我相信这本书中还有很多我为搞清楚的问题,但是这次的课程设计给我

19、相当的基础知识,为我以后工作打下了严实的基础。虽然这次课程是那么短暂的2周时间,我感觉到这些天我的所学胜过我这一学期所学,课程设计是培训学生运用本专业所学的理论知识和专业知识来分析解决实际问题的重要教学环节,是对三年所学知识的复习和巩固。同样,也促使了同学们的相互探讨,相互学习。因此,我们必须认真、谨慎、踏实、一步一步的完成设计。如果时间可以重来,我可能会认真的去学习和研究,也可能会自己独立的完成一个项目,我相信无论是谁看到自己做出的成果时心里一定会很兴奋。此次设计让我明白了一个很深刻的道理:团队精神固然很重要,但人往往还是要靠自己的努力,自己亲身去经历,这样自己的心里才会踏实,学到的东西才会

20、更多。课程设计是一个重要的教学环节,通过课程设计使我们了解到一些实际与理论之间的差异。通过课程设计不仅可以巩固专业知识,为以后的工作打下了坚实的基础,而其还可以培养和熟练使用资料,运用工具书的能力,把我们所学的课本知识与实践结合起来,起到温故而知新的作用。课程设计诚然是一门专业课,给我很多专业知识以及专业技能上的提升,同时又是一门讲道课,一门设计课,给了我许多道,给了我很多思,给了我莫大的空间。同时,设计让我感触很深。使我对抽象的理论有了具体的认识。在课程设计过程中。我对arm有了更加深刻的认识对电机驱动的搭建显示模块的调试光敏感应电阻的应用理解的更加透彻。 总之,这次课程设计使我收获很多、学

21、会很多、比以往更有耐心很多。感谢学校及老师给我们这次课程设计的机会,最真挚的感谢我们的辅导老师 ,在设计过程中,老师精心的辅导和不厌其烦地的态度才使得我们以顺利的完成这次设计,他那无私的奉献的精神照耀着我们对学习的热爱,同时也增加我们对知识的追求和欲望度。为期三周的课程设计很快就过去了!通过三周的课程设计让我有很大的收获,不仅让我在理论方面有了更深的了解,还让我的动手能力有了很大的提高。在我看来总体感觉很充实,很有意义。在本学期前十二周我们学习了ARM这门课程,通过本次实训,它巩固和加深了我们课堂上所学的理论知识,同时我感觉这次的实践难度比我以往的难度要大,我们不仅要学习理论知识还要和时间结合

22、起来。 这次长达三周的课程设计,我们需要在几个课题中选择一个,我们组选择了自动窗帘控制器设计,这次课程设计一切都要靠自己,依靠团队合作,我们齐心协力,从开始到最后一直在耐心的查询资料、讨论思考咨询老师。这次课程设计我们从设计电路图到焊接电路板,一切都要求自己动手。通过这次课程设计我们真正了解到其实每个人都是潜力股,不管你之前会不会,只要你耐心学习,认真思考,不管再难的知识我们都会掌握,在这之前我们基本上就没有接触过这方面的知识。这次课程让我们掌握很多具体知识,对元器件的样子、用途和仪器的使用,都有很大的掌握。在设计好电路后我们进行焊接电路板,在焊接电路板时我们分为两组,一人焊接电路,另两人负责

23、检查电路和调试。在我们的努力下,焊接好了电路板,但是并没有达到预期的效果,我们就使用电源和万用表检查错误,在不断修正直至成功。 纸上得来终觉浅,绝知此事要躬行。课程设计真的是大学学习生活里很有必要的一项学习方式。也许是它安排的时间太少,或者是对课程设计内容太陌生,很多人变得越来越不重视它,课程设计过程中也渐渐变得不积极了。我想说任何理论知识离开了实践它就是一无是处的,我们学理论知识的最终目的都是要把它运用于实践当中。所以,在这为数不多的课程设计中,即使困难再大,我们都要珍惜每一个过程,增强自己的动手能力。 通过本次课程设计,我们组员在惊叹别人焊的电路板的同时,相比之下知道了自己的动手能力有多差

24、;在询问老师的时候知道了自己的理论知识还是比较贫乏;也在实践的过程中掌握了不少技巧。 作为自动化专业的学生,我深知动手能力的培养在我们心目中有着至高的地位,并且理论知识所起到作用更是不可轻视的,这也为我们今后的学习敲响了警钟,指明了方向,今后我们要加强理论学习结合实践训练,巩固理论知识,使学习的理论知识实实在在的能够应用于生活。在本次课程设计过程中,我们组得到了老师的细心指导与帮助,在此,表示感谢!通过此次课程设计,使我更加扎实的掌握了有关ARM嵌入式系统方面的知识,在设计过程中虽然遇到了一些问题,但经过一次又一次的思考,一遍又一遍的检查终于找出了原因所在,也暴露出了前期我在这方面的知识欠缺和

25、经验不足。实践出真知,通过亲自动手制作,使我们掌握的知识不再是纸上谈兵。过而能改,善莫大焉。在课程设计过程中,我们不断发现错误,不断改正,不断领悟,不断获龋最终的检测调试环节,本身就是在践行“过而能改,善莫大焉”的知行观。这次课程设计终于顺利完成了,在设计中遇到了很多问题,最后在杨老师的指导下,终于游逆而解。我想在今后社会的发展和学习实践过程中,一定要不懈努力,不能遇到问题就想到要退缩,一定要不厌其烦的发现问题所在,然后一一进行解决,只有这样,才能成功的做成想做的事,才能在今后的道路上劈荆斩棘,而不是知难而退,那样永远不可能收获成功,收获喜悦,得到社会及他人对你的认可!参考文献:1周立功.编著

26、.ARM微控制器基础与实践M.北京:北京航空航天大学出版社.2005.2黄智伟.ARM嵌入式系统应用设计与实践M.北京:北京航空航天大学出版社.2011.2沈建华.译.ARM嵌入式系统开发、软件设计与优化M.北京:北京航空航天大学出版社.2005.设计程序:#include config.h#include stdio.h#define KEY1 117 / P0.17#define KEY2 120 / P0.20 #define BEEPCON 17 / P0.7#define KEY3 121 / P0.21#define MOTO1 19 / P0.9 #define MOTO2 11

27、0/ P0.10#define MOTO3 112/ P0.12#define MOTO4113/ P0.13#define MOTOCON0x3c / MOTO控制字#define GPIOSET(PIN) IO0SET = PIN / 方便修改置位端口#define GPIOCLR(PIN)IO0CLR = PIN / 方便修改清位端口#define LCD_CON 0x000c0080 /液晶显示控制字#define E_CLK (118) ; /clock input 同步时钟输入端 const uint32 RW_SID= (119) ; /data input/output 串行数

28、据输入、输出端 const uint32 CS = (10; dly-)for (i=0; i10; i+); /串行发送一字节数据 void SendByte(uint8 dat) uint8 i; IO0SET=CS; for(i=0;i8;i+) IO0CLR=E_CLK ;delay(5);if(dat&0x80)IO0SET=RW_SID;delay(5);else IO0CLR=RW_SID; IO0SET=E_CLK;delay(5); dat=dat1; IO0CLR=CS; /串行接收一字节数据 unsigned char ReceieveByte(void) uint8 i

29、,d1,d2; for(i=0;i8;i+) IO0CLR=E_CLK;delay(5); IO0SET=E_CLK;delay(5); if(RW_SID)d1+; d1=d11; for(i=0;i8;i+) IO0CLR=E_CLK;delay(5); IO0SET=E_CLK;delay(5); if(RW_SID)d2+; d2=d21; return (d1&0xF0+d2&0x0F); /写控制命令 void SendCMD(uint8 dat) SendByte(0xF8); SendByte(dat&0xF0); SendByte(dat&0x0F)4); /写显示数据或单字

30、节字符 void SendDat(uint8 dat) SendByte(0xFA); SendByte(dat&0xF0); SendByte(dat&0x0F)0; dly-) for(i=0; i4000; i+); void MOTO_Mode2(uint8 i) while(fan!=0x5cf)&(KEY3&IO0PIN)!=0) initlcm(); display(0x80,FZ); delay(100); display(0x90,ZZ1); delay(100); /* AB */ GPIOSET(MOTO1); GPIOSET(MOTO4); DelayNS(i); GPIOCLR(MOTO1); GPIOCLR(MOTO4); /* BC */ GPIOSET(MOTO4); GPIOSET(MOTO3); DelayNS(i); GPIOCLR(MOTO4); GPIOCLR(MOTO3); /* CD */ GPIOSET(MOTO3); GPIOSET(MOTO2); DelayNS(i); GPIOCLR(MOTO3); GPIOCLR(MOTO2); /* DA */ GPIOSET(MOTO2); GPIOSET(MOTO1); DelayNS(i); GPIOCLR(MOTO2); GPIOCLR(MO

温馨提示

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

评论

0/150

提交评论