历史上的今天
今天是:2024年09月17日(星期二)
2021年09月17日 | 28-基于51单片机的智能窗帘设计
2021-09-17 来源:eefocus
具体实现功能
系统由STC89C51+1602液晶+步进电机+光敏电阻+按键模块+DS1302时钟模块+ADC0832模块+电源构成。
1、LCD1602显示日期和时间、当前控制模式及光照强度;
2、可通过按键切换:手动模式、定时模式、光控模式;
3、手动模式:通过开窗帘和关窗帘键对窗帘进行控制;
4、定时模式:通过按键设置开窗帘和关窗帘的时间;
5、光控模式:光照强度大于设置值时开启窗帘,否则关闭;
6、步进电机正转半圈,模拟开窗,红色LED灯点亮;电机反转半圈,模拟关窗,红色LED灯熄灭。
按键说明:
按键1:切换模式(在手动模式、定时模式、光控模式循环切换)
按键2:进入当前时间的设置(年、月、日、时、分的设置)
按键3:进入定时时间和光控阈值大小的设置
按键4:减(手动关闭窗帘)
按键5:加(手动开启窗帘)

设计背景
智能家居以住宅为平台,兼备建筑、网络通信、信息家电、设备自动化,集系统、结构、服务、管理为一体的高效、舒适、安全、便利、环保的居住环境,尽显便捷将家中的各种设备(如音视频设备、照明设备、窗帘控制、空调控制、网络家电等)通过家庭网络连接到一起。与普通家居相比,不仅具有传统的居住功能,提供安全舒适的家庭生活空间,还能提供全方位的信息交互功能,优化人们的生活方式。
随着社会信息化的加快,人们的工作、生活和通讯、信息的日益紧密。信息化社会在改变人们生活方式与工作习惯的时候,也对传统的住宅提出了挑战,社会、技术以及经济的进步更使人们的观念随之巨变。人们对家居的要求早已不是物理空间,更为关注的是一个安全、方便、舒适的居家环境。
随着技术产业结构的调整,生产工艺的飞速发展,人们的生活水平不断提高,家用电气逐渐普及。高精度、多功能、低功耗是现代科技发展的趋势。在这种趋势下,窗帘的数字化、智能化已经成为现代生产研究的主导设计方向。
单片机在电子产品中的应用已经越来越广泛,结合感光系统和时钟系统的智能窗帘系统具有较好的发展前景。
硬件设计
整个系统以STC89C52单片机为核心器件,配合电阻电容晶振等器件,构成单片机的最小系统。其它个模块围绕着单片机最小系统展开。其中包括,显示设备使用1602液晶,可以同时显示年、月、日、时、分、控制模式、光照强度等基本信息;时钟模块采用DS1302芯片,初始化之后,就会开始运行计算时间,单片机只需进行时间信息的读取即可;光照检测电路采用光敏电阻和模数转换芯片ADC0832,将模拟量数字化并显示出来;窗帘使用步进电机进行代替模拟,同时配有一个LED灯用来指示窗帘当前的开关状态;本设计还有5个按键作为操作输入设备,可以对当前时间进行调整设置和设置窗帘开关时间和光控阈值等;最后是供电采用常用的USB 5V进行供电。
软件设计
软件设计思路:最开始先进行液晶和时钟芯片的初始化,然后就进入了一个循环处理的过程。包括先读取时钟芯片的日期时间数据,然后在1602液晶上面显示出来,接着读取光照强度并显示。再往下就是按键扫描,如果检测到有按键按下去了,则根据不同的按键进行不同的任务处理。然后根据不同的模式,进行不同的窗帘开关控制。如果是手动模式的话,则根据开窗帘键和关窗帘键对窗帘进行开关控制;如果是定时模式的话,则根据设置的开启时间和关闭时间对窗帘进行控制,而如果是光控模式的话,则判断当前光照是否高于设置的控制阈值,是的话话则关闭窗帘,相反则开启窗帘。至此完成一次循环的过程。
原理图
本系统原理图设计采用Altium Designer19,具体如图。
程序
本设计利用KEIL5软件实现程序设计,具体如图。

仿真实现
本设计利用protues8.7软件实现仿真设计,具体如图。
史海拾趣
|
本帖最后由 jameswangsynnex 于 2015-3-3 20:01 编辑 我们大量ROHM BU72435库存价格好,有需求请和我联系。 陈庭松 13138889236 … 查看全部问答> |
|
请想象一下,当您乔迁新居,要将电器的电源插头插进墙上插座里去,结果却发现根本不能匹配时是什么感受。应该感谢几十年之前设立的电气标准,发生这种事情的可能性已经很少了。其他还有一些标准也在为我们服务,比如我们可以跟与不同网络服务商打交 ...… 查看全部问答> |
|
Windows CE中的命令提示行的和PC机上的XP中的有啥区别? 网上说: Windows CE和Windows XP Embedded存在诸多本质区别。首先,Windows CE是一款全32位、Unicode操作系统,它不支持MS-DOS或Windows 3.x应用。 这里说的MS-DOS不就是台式机上的命令提示行中DOS ...… 查看全部问答> |
|
我想实现在wince液晶上 显示采样信号波形。波形频率很低。 肯定要包括ADC驱动,和应用程序 第一个问题:我想要ADC每隔500ms采样一次,用中断来实现。这个500ms中断在驱动中如何实现? 第二个问题:应用程序获取AD结果可以使用流驱动接口,但是读 ...… 查看全部问答> |
|
串口通讯中的DCB结构 我看很多程序,它里面使用了BCD结构,但是BCD结果不是在winbase.h中定义的吗, 程序里面并没有#include \"winbase.h\",但是编译确实成功的,为什么? 我是学了VC现在学EVC,觉得有点困扰,EVC很多库函数都不一样了,怎么找 ...… 查看全部问答> |
|
以下我做了不同平台的测试 第一个平台是Default language为中文(中国) 第二个平台是Default language为英语(英文) 第三个平台是Default language为英语(英文),并加入MUI多国语言的支持. 应用程序代码如下: char cTest[] & ...… 查看全部问答> |
|
小弟关于bootloader中有几个问题不清楚,麻烦兄弟们帮忙解释下, 1,其中涉及到内存映射,它的作用是什么? 2,cpu又是如何区分flash和ram的地址呢,难到有控制flash和ram地址的寄存器吗? 3,如果flash的os要加载到ram中执行,又是如何实现拷贝的呢,如 ...… 查看全部问答> |
|
各位同道中人,欢迎各位谈谈自己入门的经验以及推荐一些好的资料,作为LZ,先为大家献上一点啦! 现面有几个不错的网站 ,仅供参考 http://162.105.146.27/cgi-bin/ftp_search?BeginWith=208&FType=255&word=Linux http://linux.ubuntu.org. ...… 查看全部问答> |
|
在下大四学生,之前在学校只接触过很浅的嵌入式知识,现在毕业设计被安排在一公司参加一个项目,要实现一块板子的以太网通讯功能,板子应该是arm cortex m3核心,lm3s9b92的型号,我要实现的功能是将温度、液位等数据通过以太网接口传给计算机,我 ...… 查看全部问答> |






