找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 5948|回复: 0
收起左侧

单片机按键控制智能窗帘的设计报告

[复制链接]
ID:161768 发表于 2017-8-15 16:24 | 显示全部楼层 |阅读模式
目录

  • 题目要求-----------------------------1
  • 实现功能-----------------------------1
  • 设计方案-----------------------------2
  • 设计感受----------------------------14

  • 附录:
程序、电路原理图-------------------15

摘要
  伴随着信息化时代的到来,智能化家居控制系统越来越多的出现在人们的日常生活中,给人们带来了安全、方便、舒适的生活环境,家居环境也因此越来越成为人们关注的热点。而窗帘是我们家居环境中必不可少的,但是传统的窗帘需要繁琐的操作,已经不能满足现代生活品质的要求,于是人们对家居环境提出了更高的要求,具有智能化的窗帘控制系统拥有广泛的应用前景。针对以上问题,设计了一种以STC89C52单片机为控制核心,集手动遥控控制、定时控制以及光感控制为一体的智能窗帘控制系统,实现了半自动和自动两种模式的控制方式。半自动模式下,可以通过人工操作机械按键实现窗帘的任意开合;自动模式下既可以通过遥控操作来实现窗帘的任意开合,也可以通过光敏电阻感应外界光照的强弱来自动控制窗帘开合,更加的人性化。智能控制不仅克服了传统窗帘功能单一,操作繁琐、智能化程度不高的缺点,而且可以满足不同环境场合的需求。

一、题目要求

一、 任务

设计制作一个简易的拉伸窗帘装置

基础要求

1、按键控制窗帘伸缩,并可中途停止,用1602或12864显示信息;

2、具有全开或全关限制开关防止窗帘过度打开或关闭导致损坏;

3、具有定时功能,可以在指定时间打开或关闭窗帘;

拓展要求

1、添加时钟芯片以获得准确的时间信息(具有掉电走时功能);可以考虑用步进电机和舵机驱动控制窗帘,并且可以显示窗帘拉度,允许模拟驱动,最好可以设计具体结构,依据难度不同给分;换用较高级液晶(OLED),并且可以通过红外遥控与手机蓝牙拉伸窗帘;

2、加温湿度传感器,可以随时检测室内温湿度,并设置报警装置,温度过高报警。

高级拓展:

              设置三种模式。手动模式,定时模式,光控模式并可以通过按键或者红外切换。光控模式可以设置上下限。并可以依据光强自动调节窗帘长度。


二、实现功能
1、做出了模型设计的具体结构。
2、按键控制窗帘伸缩,并可中途停止,用OLED显示信息;
3、具有全开或全关限制开关防止窗帘过度打开或关闭导致损坏;
4、采用DS1302时钟芯片以获得准确的时间信息(具有掉电走时功能);
5、用步进电机驱动控制窗帘,步距值不受电压的大小,电流的数值、波形、温度的变化等的影响,增加系统稳定性。
6、温湿度传感器,可以随时检测室内温湿度,并设置报警装置,温度过高报警。
7、具有定时功能,可以在指定时间打开或关闭窗帘;
8、设置有三种模式,遥控模式,定时模式,光控模式,并可以通过按键切换。光控模式可以依据光强自动控制窗帘的开合。傍晚窗帘自动拉合,早上窗帘自动打开。

三、设计方案

3.1 硬件设计整体框架

本次设计采用STC89C52RC单片机,液晶显示屏OLED,以及ULN2003电机驱动作为系统的主要模块,单片机作为整个设计的控制器件,OLED作为显示器件,四路遥控开关模块和光敏电阻控制模块构成了智能窗帘的运动控制模块。系统框图如3-1所示
图3-1
3.2 控制芯片STC89C52
本次设计采用STC89C52作为控制芯片,STC89C52是STC公司生产的一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。STC89C52使用经典的MCS-51内核,但做了很多的改进使得芯片具有传统51单片机不具备的功能。在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。具有以下标准功能:8k字节Flash,512字节RAM,32位I/O口线,看门狗定时器,内置4KBEEPROM,MAX810复位电路,3个16位定时器/计数器,4个外部中断,一个7向量4级中断结构(兼容传统51的5向量2级中断结构),全双工串行口。另外STC89C52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。最高运作频率35MHz,6T/12T可选。如图3-2所示
图3-2
3.3 液晶显示屏的选取及接口设计
本次设计在液晶屏的选取上主要考虑了OLED12864与LCD12864这两种较为常用的型号,OLED12864的优点在于
1.OLED只需要四个I/O接口,给系统内的其他模块节省了大量的I/O口;
2.OLED可以自身发光,而LCD则不能。所以OLED比LCD要亮得多,另外,OLED对比度更大,色彩效果更加丰富;
3.LCD需要背景灯光点亮,而OLED在需要点亮的单元才加电,并且电压很低,因此更加节能;
4.OLED没有视角范围的限制,可视角一般可以达到160度,重量也比LCD轻的多;
对比后决定选取OLED12864作为本次设计的显示屏。 3-3为电路接口框图。

图3-3
3.3.1 液晶显示屏OLED12864字符的显示
OLED12864显示模块显示屏为128列、64行,使用1片有64行输出的行驱动器和2片列驱动控制器,其中每片列驱动器有64路输出。行 驱动器与MCU没有关系,只要提供电源就能产生驱动信号和同步信号,模块的外部信号仅与列驱动器有关。列驱动器内置64×64位显示存储器,RAM被分为 8页,每页8行;显示屏上各像素点显示状态与显示存储器各位数据一一对应,显示存储器的数据直接作为图形显示的驱动信号,为“1”显示,为“0”不显示。3.3.2OLED12864主要技术参数1.0.96寸OLED显示屏的驱动芯片为:SSD13062.接口类型:IIC3.OLED12864管脚定义:GND:电源地VCC:电源正极(供电3.3-5V)SCL:IIC时钟线SDA:IIC数据线
3.4时钟模块DS1302
DS1302是美国DALLAS公司推出的一种高性能、低功耗的实时时钟芯片,附加31字节静态RAM,采用SPI三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号和RAM数据。实时时钟可提供秒、分、时、日、星期、月和年,一个月小与31天时可以自动调整,且具有闰年补偿功能。工作电压宽达2.5~5.5V。采用双电源供电(主电源和备用电源),可设置备用电源充电方式,提供了对后背电源进行涓细电流充电的能力。DS1302与单片机之间能简单地采用同步串行的方式进行通信,仅需三根I/O线:复位(RST)、I/O数据线、串行时钟(SCLK)。时钟/RAM的读/写数据以一字节或多达31字节的字符组方式通信。DS1302工作时功耗很低,保持数据和时钟信息时,功耗小于1mW。
DS1302的外部引脚分配如图3-4-1所示及内部结构如图3-4-2所示。DS1302用于数据记录,特别是对某些具有特殊意义的数据点的记录上,能实现数据与出现该数据的时间同时记录,因此广泛应用于测量系统中。
DS1302的引脚分配如图3-4-1
图3-4-1

各引脚的功能为:
VCC1  电池引脚
VCC2  主电源引脚   
当Vcc2>Vcc1+0.2V时,由Vcc2向DS1302供电;
当Vcc2< Vcc1时,由Vcc1向DS1302供电。
SCLK:串行时钟,输入,控制数据的输入与输出;   
I/O:三线接口时的双向数据线;      
X1,X2为32.768kHz晶振引脚
GND 地
RST 复位
I/O 数据输入/输出
内部结构如图3-4-2
图3-4-2  DS1302内部结构图
DS1302含充电电路,可以对作为后备电源的可充电电池充电,并可选择充电使能和串入的二极管数目,以调节电池充电电压。
3.5温湿度模块
DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器,它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性和卓越的长期稳定性。传感器包括一个电阻式感湿元件和一个NTC测温元件,并与一个高性能8位单片机相连接。因此该产品具有品质卓越、超快响应、抗干扰能力强、性价比极高等优点。每个DHT11传感器都在极为精确的湿度校验室中进行校准。校准系数以程序的形式存在OTP内存中,传感器内部在检测信号的处理过程中要调用这些校准系数。单线制串行接口,使系统集成变得简易快捷。超小的体积、极低的功耗,使其成为该类应用中,在苛刻应用场合的最佳选择。产品为4针单排引脚封装,连接方便。连接如图3-5
图3-5
型号:DHT11
参数:
相对湿度:
分辨率:0.1%RH        16Bit
精度:25℃  正负 %2
温度:
分辨率:0.1%RH        16Bit
量程范围:25℃        正负0.2℃ 至 -40℃ ~ -80℃
响应时间:1/e(63%)        10S
电气特性:供电DC3.5  - 5.5V 电流 0.3mA 待机60uA
采样周期:每次大于2秒
引脚说明
1、VDD    供电 3.5V-5.5V DC
2、I/O  串行数据,单总线,必须接上拉电阻 5.1K左右,这样空闲时 DATA总是为高电平
3、GND    接地,电源负极
4、NC     空脚
数据格式
8bit湿度整数数据 + 8bit湿度小数数据 + 8bint温度整数数据 + 8bit温度小数数据 + 8bit校验位
校验算法
将湿度、温度的整数小数累加,只保留低8位。
处理器接口(P1.0)与DHT11通信约定:
主从结构,DHT11为从机,单片机作为主机, 只有主机呼叫从机,从机才能应答。
详细流程
单片机发送起始信号 -> DHT响应信号 -> DHT通知单片机准备接受信号 -> DHT发送准备好的数据 -> DHT结束信号-> DHT内部重测环境温湿度数据并记录数据等待下一次单片机的起始信号。
单片机起始信号:
1、设置P1.0引脚为输出状态并输出高电平
2、再将P1.0输出为低电平,持续时间大于18ms,此时DHT检测到后从低功耗模式->高速模式
3、P1.0引脚设置为输入状态,由于上拉电阻的关系,P1.0就变为高电平,从而完成一次起始信号。
THD响应信号、准备信号:
(DHT在单片机 P1.0引脚输出低电平时,从低功耗模式转至高速模式,等待P1.0引脚变为高电平)
1、DHT输出 80us低电平 作为应答信号
2、DHT输出 80us高电平 通知微处理器准备接受数据
3、连续发送 40位数据(上次采集的数据)
DHT数据信号:
数据为“0”格式:50us的低电平 + 26-28us的高电平
数据为“1”格式:50us的低电平 + 70us的高电平
DHT结束信号:
DHT的I/O引脚输出40位数据后,继续输出低电平50us后转为输入状态,由于上拉电阻,I/O随之变为高电平。DHT内部开始重测环境温湿度数据,并记录数据,等待外部的起始信号。
3.6蜂鸣器报警模块
电磁式蜂鸣器驱动原理:
蜂鸣器发声原理是电流通过电磁线圈,使电磁线圈产生磁场来驱动振动膜发声的,因此需要一定的电流才能驱动它,单片机IO引脚输出的电流较小,单片机输出的TTL电平基本上驱动不了蜂鸣器,因此需要增加一个电流放大的电路。单片机实验板通过一个三极管S9013来放大驱动蜂鸣器,原理图见下面图3-6:

图3-6
如图所示,蜂鸣器的正极接到VCC(+5V)电源上面,蜂鸣器的负极接到三极管的集电极C,三极管的基级B经过限流电阻R1后由单片机的P2.3引脚控制,当P2.3输出低电平时,三极管T1截止,没有电流流过线圈,蜂鸣器不发声;当P2.3输出高电平时,三极管导通,这样蜂鸣器的电流形成回路,发出声音。因此,我们可以通过程序控制P2.3脚的电平来使蜂鸣器发出声音和关闭。
3.7电机驱动模块
    借助单片机STC89C52对四相步进电机进行 控制时,需要通过I/O口输出具有一定时序的方波作为步进电机的控制信号,但仅靠该TTL电平无法直接驱动电机。如果采用74LS373进行驱动电机,必须增加许多寄存器才能驱动,因此考虑电机驱动芯片ULN2003来驱动步进电机。
1 驱动芯片ULN2003   ULN2003是一种高耐压、大电流的达林顿陈 列,由七个NPN达林顿管组成。每一对达林顿都串联一个2.7K的基极电阻,在5V的工作电压下与TTL和CMOS电路直接相连,可以直接处理需要标准逻辑缓冲器来处理的数据。 ULN2003的内部结构如图1,灌电流可达500mA,并且在关态时能够承受50V的电压,可以在高负载电流下并行输出运行。其中,由单片机STC89C52的P1.4-P1.7脚作为ULN2003的1~4口输入端所构成的步进电机驱动电路如图2。
图3.7
    1.步进电机是将电脉冲信号转变为角位移或线位移的开环控制元件。在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,即给电机加一个脉冲信号,电机则转过一个步距角。这一线性关系的存在,加上步进电机只有周期性的误差而无累积误差等特点。使得在速度、位置等控制领域用步进电机来控制变的非常的简单。您可以通过控制脉冲个数来控制角位移量,从而达到准确定位的目的;同时您可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。
    2. 驱动电机   电机驱动的关键要点就是精确控制电机旋转的角度。程序设计时要根据传感器的信息判断旋转方向,以便起动相应的转动方向子程序。正反控制程序分别按控制脉冲顺序的要求采用相应制模型,并判断是否大幅度转向,采用变脉冲宽度方式来实现电机调速。程序设计时把步进电机的控制方式建立成控制模型,并以数据表形式存于程序存储器中,并采用寄存器进行计数达到控制步进电机转动的步数。
3.8光敏电阻模块

    该系统的自动模式是由光敏电阻模块来控制电机的驱动从而达到晚上自动拉窗帘,早上开窗帘的目的。其中主控芯片为LM339。LM339类似于增益不可调的运算放大器。每个比较器有两个输入端和一个输出端。两个输入端一个称为同相输入端,用“+”表示,另一个称为反相输入端,用“-”表示。用作比较两个电压时,任意一个输入端加一个固定电压做参考电压(也称为门限电平,它可选择LM339输入共模范围的任何一点),另一端加一个待比较的信号电压。当“+”端电压高于“-”端时,输出管截止,相当于输出端开路。当“-”端电压高于“+”端时,输出管饱和,相当于输出端接低电位。两个输入端电压差别大于10mV就能确保输出能从一种状态可靠地转换到另一种状态,因此,把LM339用在弱信号检测等场合是比较理想的。LM339的输出端相当于一只不接集电极电阻的晶体三极管,在使用时输出端到正电源一般须接一只电阻(称为上拉电阻,选3-15K)。选不同阻值的上拉电阻会影响输出端高电位的值。因为当输出晶体三极管截止时,它的集电极电压基本上取决于上拉电阻与负载的值。另外,各比较器的输出端允许连接在一起使用。光敏电阻与LM339连接如图3-8,
图3-8
    R9和R10通过分压,输入到IN1-的电压为2.5V,白天时光敏电阻阻值大,输入到IN1+的电压只有零点几伏,三极管截止;到傍晚时光敏电阻的阻值变大,输入到IN1+的电压能达到4V左右,三极管导通,驱动电机拉合窗帘。
3.9四路遥控开关
无线电遥控器(RF Remote Control)是利用无线电信号对远方的各种机构进行控制的遥控设备。常见的无线电发射接收模块常用的无线电遥控系统一般分发射和接收两个部分。发射部分一般分为两种类型,即遥控器与发射模块,遥控器和遥控模块是对于使用方式来说的,遥控器可以当一个整机来独立使用,对外引出线有接线桩头;而遥控模块在电路中当一个元件来使用,根据其引脚定义进行应用,使用遥控模块的优势在于可以和应用电路天衣无缝的连接、体积小、价格低、。接收部分一般来说也分为两种类型,即超外差与超再生接收方式,超再生解调电路也称超再生检波电路,它实际上是工作在间歇振荡状态下的再生检波电路。超外差式解调电路与超外差收音机相同,它是设置一本机振荡电路产生振荡信号,与接收到的载频信号混频后,得到中频信号,经中频放大和检波,解调出数据信号。超外差式的接收器稳定、灵敏度高、抗干扰能力也相对较好。
将模式的切换、各种指令的运行集中在四路遥控上,将四个按键的功能实现最大化。其与单片机的连接如图3-9所示
图3-9
该系统共有三种模式可供选择。定义D按键为模式切换。
  当OLED屏幕上显示模式为M字样时为手动遥控模式,在此模式下A按键为窗帘拉合,B按键为停止电机运行,C按键为窗帘打开。
  当OLED屏幕上显示模式为D字样时为自动模式,到傍晚亮度下降到一定程度之后窗帘自动拉合,早上亮度增强到一定程度窗帘自动打开。
  当OLED屏幕上显示模式为T字样时为定时模式,可定时让窗帘拉合(用I表示)或打开(用O表示)。在此模式下B按键可以在时分秒以及I/O之间移位,A按键为+1,C按键为-1。
3.10  220V-12V变压模块
220v转12v稳压电源,需要先降压,后整流、再稳压即可达到要求。
电路工作原理如图3-10-1
图3-10-1
从变压器输出的15V交流电通过桥式整流变成15V直流电,再经过
LM7812引脚图如图3-10-2
图3-10-2

电路设计如图3-10-3
图3-10-3
3.11  12V-5V变压模块
LM7805是常用的三端稳压器,一般使用的是TO-220封装,能提供DC 5V的输出电压,应用范围广,内含过流和过载保护电路。带散热片时能持续提供1A的电流,如果使用外围器件,它还能提供不通的电压和电流。
LM7805引脚图如图3-11-1
图3-11-1
电路设计如图3-11-2
图3-11-2
3.12  限位开关

图3-12

四、设计感受
  我们三个人从转完专业在一个班就开始在一起工作,虽然实际上真正拿来认真干活的时间并不是太多,但交情从这里面确实提升了。
可以说,从一开始我自己没有什么经验,以至于很多的信息是错误的,这一点的确需要反省,不知道怎样写论文,不知道要自己焊板子,不知道怎样填写设计报告前几页,都能够看出来一些端倪了,所以,这一点,以后也需要尽量改正吧。
  单片机并不是很难,只不过是结合了软件和硬件而已,如果只是将硬件那部分模型化,看作是一堆地址的话,也是so esay的,只是说归说,还是要多实践的,我说的不难,是没有我们想象中难,只要脚踏实地,并不难。我们作出这个作品,已然能够证明了吧。
  可是真到了要设计时候,才发现光靠书本上的知识,是远远不够的。说不定设计需要用的器件都是你没用过的,所以不能只局限于书本上的知识。虽然无数次的讨论中午们也有争吵,也有不悦,但是总体来说我们配合得还不错。紧赶慢赶,无数调试,一次次失败,一次次更改,我们设计出来的是电子作品,得到的是实际操作的经验,收获的是相互之间的友谊。看到摆杆达到一项项指标,我们激动的同时,也对自己的团队增加了一份信心。
年轻的小伙子血气方刚,更是冲劲十足,毕竟不是一个大脑,各有各的想法,看到别人进入误区,自己不懂干着急,同样也把人家的情绪带到了谷底,这样很不利于开展各自的工作,应改互相加油鼓劲,即使是不说话,给同伴一个安静的空间思考问题也比点燃他心中的火药桶有用得多。哎,事后怎么说都对,但是作为当事人想达到这个样子,我只能说“革命尚未成功,同志仍需努力”。
虽然只是几个月的努力,但是却使我们收益一生,在以后的人生路上我们一定会继续努力下去。谢谢学校给我们这样的机会,谢谢老师对我们的教导。好,暂时就说这么多吧,我并不想稀里糊涂地度过这个学期,校赛已经较为满意地结束了,挺开心的。

  • 附录
(1)电路原理图:

1、
控制部分

2.电源部分





(2)程序如下(仅附录主程序)

#include <REG52.h>
#include "main.h"
#include "dht11.h"
#include "oled.h"
#include "bmp.h"
#include "ds1302.h"
#include "motor.h"
#include "key.h"

sbit beep=P2^3;
unsigned int t,j;
unsigned char a,b,c,d;
unsigned int i,num,numm,flag,flag1;
unsigned char number;
unsigned char str[5];
unsigned char hour1,minute1,second1;
void display();

void main(void)
                            {
                                          while(1)





…………限于本文篇幅 余下代码请从51黑下载附件…………
完整论文下载(word格式 可编辑):
http://www.51hei.com/bbs/dpj-87017-1.html




回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表