51单片机项目(27)——基于51单片机的智能门窗设计

1.功能设计

使用普中51单片机,门窗有自动模式和手动模式。
手动模式下,LCD1602显示屏上显示“manu mode”,通过红外遥控器,控制门窗的开关。其中,按键0代表开窗,按键1代表关窗。(使用风扇模拟门窗,开窗时,风扇正转3S后停止,关窗时,风扇反转3S停下)自动模式下,通过温度传感器和光敏传感器,测量环境温度与亮度(通过XPT2046进行AD转换采集光照信息),LCD1602第一行显示温度阈值和光照阈值,第二行显示实时温度数值和实时光照数值。当温度大于阈值、光照大于阈值、K3和K4都按下,开门窗,蜂鸣器响一会;如果不满足上述条件,关门窗,蜂鸣器响一会儿。
手动模式和自动模式之间的切换通过按键K1来控制;另外,温度阈值和光照阈值也可以通过开发板上的矩阵键盘调节。(详情请见代码注释!

演示视频:(视频中只演示了部分功能,完整的功能是如上述文字所描述的。因为当时开发的时候,有些功能是拍完视频以后加上去的!!

智能门窗演示视频

2.模块介绍

红外遥控是一种无线遥控技术,通过发射和接收红外光信号来控制电子设备。它经常被应用于家用电器、车载电子、玩具等电子设备中,方便用户使用这些设备的各种功能。

红外遥控的组成部分包括遥控器和接收器两部分。遥控器通常由按键、MCU(单片机)芯片、发射器等组成。按下遥控器上的按键,MCU芯片就会产生相应的代码信号给发射器,发射器将这个信号解码并转化为一组脉冲,然后通过红外光发射出去。接收器通常由红外接收器芯片、解码器、输出接口等组成。当接收器接收到发射器发射的红外信号后,红外接收器芯片会将光信号转化为电信号,解码器会对电信号进行解码,然后通过输出接口发信号给相应的设备控制电路,从而控制设备的各种功能。

红外遥控技术具有以下优点:
1. 操作方便:使用红外遥控器控制设备,不需要直接接触设备或使用物理按键,操作更为方便;
2. 使用范围广泛:红外遥控技术被广泛应用于家电、电子玩具、汽车等多个领域,使用范围广泛;
3. 成本较低:红外遥控器和接收器芯片的成本相对较低,使用成本不高;
4. 可靠性强:红外遥控信号不受电磁干扰影响,稳定可靠。

不过,红外遥控技术也存在一些缺点,比如传输距离较短,需要在一定距离内操作;也存在易受遮挡等问题。

LCD1602:

LCD1602,即16*2字符型液晶模块,是一种简单易用的显示设备,广泛应用于嵌入式系统、电子产品和各种控制面板上。

该模块的显示区域为16列*2行,每个字符的点阵为5*8。它由一个带背光的液晶显示屏和一个用于控制液晶显示的控制器(通常是Hitachi HD44780)组成。该控制器通过内置的MCU芯片实现了通信数据和指令的处理,同时还具有坐标控制、光标控制、屏幕清楚等功能。

LCD1602 显示模块的主要特点包括:
1. 显示内容丰富:能够显示各种字符、数字、符号等;
2. 显示效果清晰:采用高对比度的液晶显示面板可显示清晰明亮的字符。
3. 低功耗:具有低功率消耗和节能功能,适合用于需要长时间运行的系统;
4. 显示灵活:能够通过操作控制器实现光标显示、滚动显示、字符闪烁等多种显示方式。

DS18B20:

DS18B20是一种数字温度传感器,它使用一线数字接口进行通信,并通过1-Wire总线协议与主控设备进行通信。DS18B20以其精度高、易于使用和低功耗等特点而被广泛应用于各种温度监测和控制系统中。

DS18B20的主要特点和功能如下:

1. 高精度:DS18B20能够以0.5°C的精度测量温度范围从-55°C到+125°C,非常适用于对温度要求较高的应用。

2. 单线数字接口:DS18B20使用一线数字接口进行通信,只需一个引脚即可连接多个传感器,简化了Wiring和布线。

3. 1-Wire总线协议:DS18B20通过1-Wire总线协议与主控设备进行通信,这种协议允许单总线上连接多个设备。

4. 可编程分辨率:DS18B20的温度分辨率可根据应用需求设置为9位、10位、11位或12位,分别对应0.5°C、0.25°C、0.125°C和0.0625°C的分辨率。

5. 多种供电方式:DS18B20可以通过3-5V的电源供电,也可以使用主控设备的提供的供电。

6. 应用广泛:DS18B20常用于温度监测和控制领域,如室内温度监测、恒温控制、环境温度监测等。

DS18B20通过测量其内部集成的温度传感器和数字转换器,可以将温度转化为数字信号,并通过1-Wire总线协议传输给主控设备。由于其高精度、简单易用和灵活性强的特点,DS18B20在各种嵌入式系统和温度监测应用中得到了广泛的应用。

光敏电阻模块:

光敏电阻模块是一种常见的光敏传感器模块,也被称为光敏电阻传感器模块或光敏电阻模块。它主要由光敏电阻、电阻和输出调节电路组成。

光敏电阻是一种特殊的电阻,其电阻值会随着光照强度的变化而变化。当光照强度增加时,光敏电阻的电阻值会减小;当光照强度减小时,光敏电阻的电阻值会增加。

光敏电阻模块的工作原理是通过光敏电阻来感知光照强度的变化并将其转换为电压信号。当光照强度改变时,光敏电阻的电阻值随之变化,从而改变了输出电压。输出调节电路对输出电压进行放大和处理,最终将光照强度转换为可读取的模拟电压信号或数字信号。

光敏电阻模块的主要特点如下:
1. 灵敏度高:能够对光照强度的变化做出较为敏感的反应。
2. 响应速度快:能够迅速感知光照强度的变化,输出信号及时准确。
3. 易于使用:光敏电阻模块一般具有标准接口,方便与其他电路或设备连接。
4. 延伸应用:光敏电阻模块可用于自动光控灯、环境光检测、照明控制、光敏报警器等应用领域。

需要注意的是,光敏电阻模块的输出信号通常是模拟信号,需要通过模数转换器(ADC)将其转换为数字信号,并进一步处理。此外,不同型号的光敏电阻模块具有不同的灵敏度范围和特性,使用时需要根据具体需求选择合适的模块。

XPT2046:

XPT2046是一种集成了ADC、触摸屏控制器和SPI接口的集成电路,能够在各种电容式触摸屏上提供精准而稳定的位置检测和控制。该控制器适用于电容式触摸屏的常见应用场景,如智能手机、平板电脑、KTV点歌机、游戏机等。

XPT2046主要特点如下:
1. 高精度:XPT2046的位置检测精度非常高,可以实现像素级别的识别准确度,同时还具有多点触控和手写识别等功能。
2. 低功耗:XPT2046使用低功耗模式,可有效减少设备的耗电量;同时,该控制器在空闲模式下能够自动进入休眠状态,节约能源的同时也有助于延长设备寿命。
3. 接口简单:XPT2046使用SPI接口进行通信,具有简单易用的接口设计。
4. 支持多种触摸屏:XPT2046不同型号的控制器适用于多种不同的电容式触摸屏,并具有良好的兼容性。
5. 稳定可靠:XPT2046具有稳定的性能和可靠的运行,并支持多种保护措施,如短路保护、过温保护和低电压保护等。

本次主要把它用作AD转换器!!!

直流电机 :(记得要加驱动模块L298N)

直流电机是一种常见的电动机类型,它使用直流电源来产生转动力矩。直流电机的主要构成包括定子、转子、碳刷和电枢。

1. 定子(Stator):定子是直流电机的静止部分,通常由一组定子线圈组成,这些线圈通常被称为电枢。定子产生一个恒定的磁场,可以是永磁体或通过电流通过定子线圈产生的电磁体。

2. 转子(Rotor):转子是直流电机的旋转部分,通常由一个或多个导体组成。转子位于定子内部,在受到定子磁场作用下产生转矩,并通过轴承或其他方式与机械负载连接。

3. 碳刷(Brushes):碳刷是直流电机中的一个重要组件,它与转子的导体接触,并通过电流传递来实现转子的电磁激励。碳刷通常由碳或碳材料制成,可以在转子旋转时与定子保持良好的电接触。

4. 电枢(Armature):电枢是直流电机定子中的一组线圈,用于产生磁场。当电流通过电枢线圈时,在定子中创建一个磁场,与转子的磁场相互作用,从而产生转矩。

直流电机的工作原理是基于洛伦兹力原理。当电流通过电枢线圈时,在定子中产生磁场,这个磁场与转子中的磁场相互作用,产生一个力矩,使转子开始旋转。转子的旋转进一步导致碳刷与不同的电枢线圈接触,从而改变电流的流向,维持转子的运转。

3.完整工程

【免费】基于51单片机的智能门窗_51单片机控制门资源-CSDN文库icon-default.png?t=N7T8https://download.csdn.net/download/guangali/87704285

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/289556.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Vue2+3入门到实战】(17)VUE之VueCli脚手架自定认创建项目、ESlint代码规范与修复、 ESlint自动修正插件的使用 详细示例

目录 一、本节内容二、VueCli 自定义创建项目三、ESlint代码规范及手动修复1.JavaScript Standard Style 规范说明2.代码规范错误3.手动修正 四、通过eslint插件来实现自动修正 一、本节内容 VueCli脚手架自定认创建项目ESlint代码规范与修复ESlint自动修正插件 二、VueCli 自…

qt 异常汇总

1. C2338 No Q_OBJECT in the class with the signal (编译源文件 ..\..\qt\labelme-master\src\mainwindow.cpp mainwindow头文件中的类没有Q_OBJECT宏定义,或者其子类或者其他依赖没有Q_OBJECT宏定义。 全部qt类都要写上Q_OBJECT. 2. C2385 对connect的访…

uniapp中组件库的Checkbox 复选框 的丰富使用方法

目录 #平台差异说明 #基本使用 #自定义形状 #禁用checkbox #自定义形状 #自定义颜色 #横向排列形式 #横向两端排列形式 API #Checkbox Props #CheckboxGroup Props #CheckboxGroup Event 复选框组件一般用于需要多个选择的场景,该组件功能完整&#xff…

【Github】如何创建一个自己的仓库

一、创建Github账户 不多赘述,进入官网创建账户即可 二、进入个人主页,点击新建仓库 三、按照需求配置仓库信息,点击创建 四、通过git导入代码到仓库 流程大致如下: 1.进入要上传代码的地方,选择打开git命令行界面 2…

DNS主从服务器、转发(缓存)服务器

一、主从服务器 1、基本含义 DNS辅助服务器是一种容错设计,考虑的是一旦DNS主服务器出现故障或因负载太重无法及时响应客户机请求,辅助服务器将挺身而出为主服务器排忧解难。辅助服务器的区域数据都是从主服务器复制而来,因此辅助服务器的数…

Ubuntu软件和vmware下载

https://cn.ubuntu.com/download/desktop VMware 中国 - 交付面向企业的数字化基础 | CN

漏洞复现-天融信TOPSEC static_convert 远程命令执行漏洞(附漏洞检测脚本)

免责声明 文章中涉及的漏洞均已修复,敏感信息均已做打码处理,文章仅做经验分享用途,切勿当真,未授权的攻击属于非法行为!文章中敏感信息均已做多层打马处理。传播、利用本文章所提供的信息而造成的任何直接或者间接的…

【Week-P4】CNN猴痘病识别

文章目录 一、环境配置二、准备数据三、搭建网络结构四、开始训练五、查看训练结果六、总结2.3 ⭐torch.utils.data.DataLoader()参数详解6.1 print()常用的三种输出格式6.2 修改网络结构6.2.1 增加池化、卷积和bn层6.2.2 增加卷积、bn、卷积、bn 🍨 本文为&#x1…

界面控件DevExpress Blazor Grid v23.2 - 支持全新的单元格编辑模式

DevExpress Blazor UI组件使用了C#为Blazor Server和Blazor WebAssembly创建高影响力的用户体验,这个UI自建库提供了一套全面的原生Blazor UI组件(包括Pivot Grid、调度程序、图表、数据编辑器和报表等)。 在这篇文章中,我们将介…

Navicat 技术干货 | 如何查看关系型数据库(MySQL、PostgreSQL、SQL Server、 Oracle)查询的运行时间

在数据库优化中,理解和监控查询运行时间是至关重要的。无论你是数据库管理员、开发人员或是参与性能调优的人员,知道如何查看查询运行时间能为你的数据库操作提供有价值的参考。本文中,我们将探索几款热门的关系数据库(如 MySQL、…

❀记忆冒泡、选择和插入排序算法思想在bash里运用❀

目录 冒泡排序算法:) 选择排序算法:) 插入排序算法:) 冒泡排序算法:) 思想:依次比较相邻两个元素,重复的进行直到没有相邻元素需要交换,排序完成。 #!/bin/bash arr(12 324 543 213 65 64 1 3 45) #定义一个数组 n${#arr[*]} #获取数组…

DHTMLX Spreadsheet v5.1.1 Crack

DHTMLX Spreadsheet 5.1 具有新主题、简化的数字格式本地化、与框架的实时集成演示等 推出 DHTMLX Spreadsheet v5.1。新版本提供了一组有用的功能,这对开发人员和最终用户都有吸引力。 首先,新的电子表格版本提供了 4 个内置主题,可以根据您…

【完整代码】网上书店信息管理系统--基于Mysql数据库与java

网上书店信息管理系统 一、需求分析(一)设计系统的意义以及用途(二)实现的功能1.用户模块:1、全部图书浏览2、图书搜索3、购物车管理和订单查看4、修改密码 2.书店管理员模块1、图书类别管理2、图书管理3、全部订单查看…

【React】01-React 入门到放弃系列

01-React 入门 背景入门学生成绩录入的表单 小结 背景 由于捣鼓一些项目需要用到React,找了一些文档入门实践了一番。本篇文章以一个学生成绩录入的表单为例子,记录React 入门的一些基础操作。 入门 该操作的前提是本地安装了NodeJS环境。根据官网给的…

Docker入门教程(详解)

Docker容器化 一 入门 1. 引言 (1)单机部署 场景: 将多个应用部署一台服务器上。 问题 每个应用软件,都会消耗物理资源,共用计算机资源,彼此之间会形成竞争关系。 (2)多机部署 …

PHP反序列化漏洞利用及修复,示例代码讲解

您提到的PHP反序列化漏洞是一个重要的网络安全问题。在我的网络安全工程师的角色下,我可以提供关于此问题的深入分析。 PHP反序列化漏洞通常发生在当不可信的数据被反序列化时。序列化是将数据结构或对象状态转换为可存储或可传输的格式的过程,而反序列…

Springcloud 微服务实战笔记 Ribbon

使用 Configurationpublic class CustomConfiguration {BeanLoadBalanced // 开启负载均衡能力public RestTemplate restTemplate() {return new RestTemplate();}}可看到使用Ribbon,非常简单,只需将LoadBalanced注解加在RestTemplate的Bean上&#xff0…

AIGC时代-GPT-4和DALL·E 3的结合

在当今这个快速发展的数字时代,人工智能(AI)已经成为了我们生活中不可或缺的一部分。从简单的自动化任务到复杂的决策制定,AI的应用范围日益扩大。而在这个广阔的领域中,有两个特别引人注目的名字:GPT-4和D…

C/C++汇编学习(二)——学习使用IDA pro

学习使用IDA Pro是一项很有价值的技能,特别是对于那些对逆向工程和软件安全分析感兴趣的人。以下是一些基本步骤和概念,帮助你熟悉IDA Pro的界面和操作。 1. 熟悉IDA Pro界面和基本操作 主界面布局 IDA Pro的主界面包含多个组件,每个组件都…

pytest-yaml 测试平台-4.生成allure报告,报告反馈企业微信、钉钉、飞书通知

前言 定时任务执行完成后生成可视化allure报告,并把结果发到企业微信,钉钉,飞书通知群里。 生成allure报告 添加定时任务 执行完成后生成allure报告 查看报告详情 报告会显示详细的request 和 response 详细信息 也可以查看log日志 …