基于单片机设计的智能风扇(红外线无线控制开关调速定时)
一、项目介绍
在炎热的夏季,风扇成为人们室内生活中必不可少的电器产品。然而,传统的风扇控制方式存在一些不便之处,比如需要手动操作开关、无法远程控制和调速,以及缺乏定时功能等。为了解决这些问题,设计了一款基于单片机的智能风扇,利用红外线无线控制开关、调速和定时功能,使用户能够更加便捷和舒适地使用风扇。
主控芯片采用STC89C52,这是一款功能强大且性能稳定的单片机,具备足够的计算和控制能力。通过支持红外线NEC协议,该单片机能够接收遥控器发送的控制指令,并根据指令完成对风扇的开关、调速和定时切换。
为了实现风扇的控制,采用了L298N驱动模块来驱动小型的直流电机,模拟真实风扇的工作原理。L298N驱动模块具有高电流和高电压的特点,可以有效地控制电机的转速和方向。通过单片机的IO口与L298N驱动模块进行连接,可以精确控制电机的转速,并且支持正转、反转和停止等操作。
这个智能风扇项目具备多项实用的功能。利用红外线遥控器,用户可以随时随地对风扇进行开关操作,无需手动接触开关,提高了使用的便捷性。通过调速功能,用户可以根据需要调整风扇的转速,以获得理想的风速效果,增加了舒适感。还有定时功能,用户可以设置定时关闭风扇,避免长时间运行造成不必要的能耗,同时也提供了更多的节能选项。
此外,基于单片机设计的智能风扇还具备一定的智能化潜力。通过进一步的开发和改进,可以引入温湿度传感器,实现自动调节风速的功能,根据环境温湿度情况自动调整风扇转速,为用户带来更加智能、个性化的使用体验。
智能风扇的设计背景源于对人们日常生活的需求和对智能化家居的追求。通过采用单片机控制和红外线无线控制技术,结合驱动模块的应用,成功地打造了一款功能强大、操作便捷的智能风扇,让人们在炎热夏季享受到更为舒适和智能化的生活体验。

二、整体项目设计思路
2.1 硬件设计思路
(1)主控芯片选择:选择了STC89C52作为主控芯片。STC89C52是一款功能强大且性能稳定的单片机,具备足够的计算和控制能力,适合用于风扇控制。
(2)红外接收模块选择:为了支持红外线无线控制功能,选用了适用于NEC协议的红外接收模块。该模块能够接收遥控器发送的红外信号,并将其转换成电信号供主控芯片进行处理。
(3)驱动模块选择:为了驱动小型直流电机,采用了L298N驱动模块。L298N驱动模块具有高电流和高电压的特点,可以有效地控制电机的转速和方向。
(4)其他器件选择:除了上述关键器件外,还需要选择适当的传感器、按键开关、显示屏等组件,根据需求进行搭配和连接。
2.2 软件设计思路
(1)红外协议解码:首先,需要编写程序对红外接收模块接收到的红外信号进行解码,识别出NEC协议中的控制指令。这些指令包括开关、调速和定时控制等功能。
(2)控制逻辑设计:根据接收到的控制指令,编写程序实现相应的风扇控制逻辑。例如,根据接收到的开关指令控制电机的启停,根据调速指令控制电机转速的变化,根据定时指令设置风扇的定时关闭等。
(3)与L298N驱动模块的通信:将主控芯片的IO口与L298N驱动模块进行连接,并编写程序实现与其的通信。通过设置相应的引脚状态,控制电机的正转、反转和停止等操作。
(4)用户界面设计:如果有显示屏的需求,可以设计一个简单的用户界面,显示当前风扇状态、转速、定时设置等信息,提供用户操作的反馈和展示。
(5)其他功能增强:根据需求可以进一步增加其他功能,比如温湿度传感器的接入,实现智能调节风速的功能。
三、硬件连线说明
下表是智能风扇模块和单片机的连接关系:
| 模块 | 引脚连接到单片机的IO口 |
|---|---|
| 红外接收模块 | P1.0 |
| L298N驱动模块 | |
| ENA | P2.0 |
| ENB | P2.1 |
| IN1 | P2.2 |
| IN2 | P2.3 |
| 小型直流电机 | |
| 正转 | P2.4 |
| 反转 | P2.5 |
| 停止 | P2.6 |
四、项目代码设计
#include <reg51.h>sbit IN1 = P2^2;
sbit IN2 = P2^3;
sbit ENA = P2^0;
sbit ENB = P2^1;
sbit IR_IN = P1^0;void delay(unsigned int t) {unsigned int i, j;for (i = 0; i < t; i++)for (j = 0; j < 1000; j++);
}void motorControl(int speed, int direction) {switch (direction) {case 1: // 正转IN1 = 1;IN2 = 0;break;case -1: // 反转IN1 = 0;IN2 = 1;break;case 0: // 停止IN1 = 0;IN2 = 0;break;}// 调整PWM占空比控制速度if (speed < 0) speed = 0;if (speed > 255) speed = 255;ENA = 1;ENB = 1;delay(speed);ENA = 0;ENB = 0;
}sbit IR_IN = P1^0;void delay(unsigned int t) {unsigned int i, j;for (i = 0; i < t; i++)for (j = 0; j < 1000; j++);
}void irInit() {IT0 = 1; // 设置外部中断0下降沿触发EX0 = 1; // 使能外部中断0EA = 1; // 允许中断
}void irINT0() interrupt 0 {unsigned int i;unsigned char repeatFlag = 0;unsigned long codeValue = 0;delay(16); // 等待16ms,进入起始位if (IR_IN == 0) {delay(8); // 等待8ms,确认起始位if (IR_IN == 1) {for (i = 0; i < 32; i++) {while (IR_IN == 1); // 等待低电平的结束位delay(3); // 等待3ms,读取数据位if (IR_IN == 0) {codeValue <<= 1;} else {codeValue = (codeValue << 1) | 0x0001;}while (IR_IN == 0); // 等待高电平的开始位或重复码标志}repeatFlag = codeValue & 0xFF;codeValue >>= 8;// 在这里根据codeValue的值进行控制操作// 比如判断codeValue的值对应的指令是开启风扇,则执行相应代码}}EX0 = 1; // 再次使能外部中断0
}void main() {int speed = 0; // 初始速度为0int direction = 0; // 初始方向为停止irInit();while (1) {if (IR_IN == 0) {// 接收到红外信号// 解析红外信号,根据NEC协议得到控制指令if (控制指令为开启风扇) {direction = 1; // 设置为正转} else if (控制指令为关闭风扇) {direction = 0; // 设置为停止} else if (控制指令为调整风速) {speed = 风速值; // 设置风速值} else if (控制指令为定时切换) {// 执行定时操作,你可以使用定时器/计数器来实现}// 执行风扇控制motorControl(speed, direction);}}
}
五、总结
通过使用STC89C52主控芯片和L298N驱动模块,成功地设计了一款智能风扇系统。该系统支持红外线NEC协议接收遥控器发送的控制指令,实现了风扇的开关、调速和定时切换功能。
在项目实施过程中,编写了红外信号解码函数,将接收到的指令转换为对应的控制操作。通过控制L298N驱动模块的输入引脚,实现风扇电机的正转、反转和停止等控制操作。利用PWM技术调整占空比,实现了风扇的调速功能。此外,通过定时器/计数器实现了风扇的定时切换功能,可以根据用户需求自动开启或关闭风扇。
相关文章:
基于单片机设计的智能风扇(红外线无线控制开关调速定时)
一、项目介绍 在炎热的夏季,风扇成为人们室内生活中必不可少的电器产品。然而,传统的风扇控制方式存在一些不便之处,比如需要手动操作开关、无法远程控制和调速,以及缺乏定时功能等。为了解决这些问题,设计了一款基于…...
k8s报错pause 3.2 解决方案
报错 Failed to create pod sandbox: rpc error: code Unknown desc failed to get sandbox image "k8s.gcr.io/pause:3.2": failed to pull image "k8s.gcr.io/pause:3.2": failed to pull and unpack image "k8s.gcr.io/pause:3.2": failed…...
基于遗传算法的电器分类,基于GA的电器分类
目录 背影 遗传算法的原理及步骤 基本定义 编码方式 适应度函数 运算过程 代码 结果分析 展望 完整代码下载链接:基于遗传算法的电器识别,基于遗传算法的电器分类(代码完整,数据齐全)资源-CSDN文库 https://download.csdn.net/download/abc991835105/88506649 背影 电器…...
某XX自考小程序的AES加密分析
前言 主要是报了自考在这个小程序上面做题,就研究了一下这个接口本文仅供学习交流使用,请勿随意传播。如有侵犯你的权益及时联系我删除。 一、抓包分析打开小程序,打开devtools 工具,这里就不啰嗦,直接上过程。 点击…...
加密算法笔记
MD5: 目前相对容易破解,且容易发生碰撞; 不可逆(但是网络上有很多破解方法) SHA256: 不会碰撞; 可以加盐,也可以不加盐; 不可逆; HmacSHA256在线加密-HmacMD5加密-散列哈希HASH加密工具 相同点 1、都是密码散列函数,加密不可逆。 2、都可…...
Sa-Token拦截全部接口必须登录-然后自定义注解来匿名登录-作为权限框架支持,并且同时使用了注解和路由的拦截器模式,此部分的配置如下:
场景 在博主目前正在开发的项目中,就采用了Sa-Token作为权限框架支持,并且同时使用了注解和路由的拦截器模式,此部分的配置如下: Override public void addInterceptors(InterceptorRegistry registry) { List<String> n…...
公司企业端口映射
文章目录 前言如何进行内网映射打开路由器管理网址设置端口映射 前言 公司为了提供稳定的网络服务,需要拥有一个稳定的IPV4的网络地址,一般公司有点规模的,会去电信局里面拉一根专门的网线,获取稳定的全球IPV4地址。 一个IPV4地…...
gitlab安装和使用
gitlab安装和使用 1.下载必要的依赖 sudo yum install curl openssh-server openssh-clients postfix cronie #需要执行sudo service postfix start #配置邮箱的sudo chkconfig postfix on #配置邮箱的#这句是用来做防火墙的,避免用户通过ssh方式和http来访问。su…...
【论文阅读】DALL·E: Zero-Shot Text-to-Image Generation
OpenAI第一代文本生成图片模型 paper:https://arxiv.org/abs/2102.12092 DALLE有120亿参数,基于自回归transformer,在2.5亿 图片-文本对上训练的。实现了高质量可控的text to image,同时也有zero-shot的能力。 DALL-E没有使用扩…...
说一下 toRef、toRefs,以及他们的区别
toRef:创建一个新的Ref变量,转换Reactive对象的某个字段为Ref变量 toRefs:创建一个新的对象,它的每个字段都是Reactive对象各个字段的Ref变量 说一下toRef 先定义一个reactive对象 interface Member {id: numbername: string } c…...
修改Android Studio默认的gradle目录
今天看了一下,gradle在C盘占用了40多G。我C盘是做GHOST的,放在这里不方便。所以就要修改。 新建目录名(似乎无必要) ANDROID_SDK_HOMEG:\SOFTWARES\android-sdk GRADLE_USER_HOMEG:\SOFTWARES\.gradle 修改目录 File->Setti…...
鲁大师电动车智能化测评报告第二十三期:实测续航95km,九号Q90兼顾个性与实用
鲁大师第二十三期智能化电动车测评排行榜数据来源于鲁大师智慧实验室,测评的车型均为市面上主流品牌的主流车型。截止目前,鲁大师智能化电动车测评的车型高达130余台,且还在不断增加和丰富中。 一、测评依据 鲁大师电动车智能化测评体系包含车辆的状态采集与管理硬件系统、车辆…...
初始化项目骨架(Web3项目一实战之一)
暌违将近一年的时光,也该是时候来几个项目实践。要不,当再次翻看 玩以太坊链上项目的必备技能(…solidity之旅X) ,却未曾见有关于 Web3 项目的实战博文,不免让人唏嘘! 其实,在我敲下玩以太坊链上项目的必备技能这些文字时,心中早有了势必要弄出一个Web3的项目(当然,通…...
在opencv OpenCV中打开相机摄像头,用分水岭算法实时实现图像的分割与提取
import cv2 import numpy as np# 定义回调函数 def callback(x):pass# 打开摄像头 cap cv2.VideoCapture(0)# 创建窗口和控件 cv2.namedWindow(image) cv2.createTrackbar(threshold, image, 0, 255, callback)# 初始化参数 bgdModel np.zeros((1, 65), np.float64) fgdModel…...
CodeWhisperer 的正确使用
1、重点: 重点1: 推出 Amazon Bedrock。这项新服务允许用户通过 API 访问来自 AI21 Labs、Anthropic、Stability AI 和亚马逊的基础模型。(Anthropic 就是之前跟 ChatGPT 掰手腕的 Claude 的模型。Stability AI 就是 Stable Diffusion 背后的…...
selenium xpath定位
selenium-xpath定位 <span style"background-color:#2d2d2d"><span style"color:#cccccc"><code class"language-javascript">element_xpath <span style"color:#67cdcc"></span> driver<span styl…...
「我在淘天做技术」音视频技术及其在淘宝内容业务中的应用
作者:李凯 一、前言 近年来,内容电商似乎已经充分融入到人们的生活中:在闲暇时间,我们已经习惯于拿出手机,从电商平台的直播间、或者短视频链接下单自己心仪的商品。 尽管优质的货品、实惠的价格、精致的布景、有趣的…...
el-input 输入后失去焦点
说了是无情,写了更无情,你说你看了不点赞是不是更绝情?遇到这种神奇的BUG,也是大家无奈的神情。 来分析看代码: <div class"card-item input-item" :class"{ w-100: followRadio 2 }"v-for&…...
docker创建并访问本地前端
docker创建并访问本地前端,直接上命令: 安装nginx镜像: docker pull nginx 查看已安装的nginx: docker images 创建DockerFile文件,直接在当前文件夹种创建 touch Dockerfile 在Dockerfile写入内容: F…...
数据结构之单链表基本操作
🤷♀️🤷♀️🤷♀️ 今天给大家分享的是单链表的基本操作。 清风的个人主页 🎉欢迎👍点赞✍评论❤️收藏 😛😛😛希望我的文章能对你有所帮助,有不足的地方还请各位…...
SpringBoot-17-MyBatis动态SQL标签之常用标签
文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…...
Chapter03-Authentication vulnerabilities
文章目录 1. 身份验证简介1.1 What is authentication1.2 difference between authentication and authorization1.3 身份验证机制失效的原因1.4 身份验证机制失效的影响 2. 基于登录功能的漏洞2.1 密码爆破2.2 用户名枚举2.3 有缺陷的暴力破解防护2.3.1 如果用户登录尝试失败次…...
基于大模型的 UI 自动化系统
基于大模型的 UI 自动化系统 下面是一个完整的 Python 系统,利用大模型实现智能 UI 自动化,结合计算机视觉和自然语言处理技术,实现"看屏操作"的能力。 系统架构设计 #mermaid-svg-2gn2GRvh5WCP2ktF {font-family:"trebuchet ms",verdana,arial,sans-…...
阿里云ACP云计算备考笔记 (5)——弹性伸缩
目录 第一章 概述 第二章 弹性伸缩简介 1、弹性伸缩 2、垂直伸缩 3、优势 4、应用场景 ① 无规律的业务量波动 ② 有规律的业务量波动 ③ 无明显业务量波动 ④ 混合型业务 ⑤ 消息通知 ⑥ 生命周期挂钩 ⑦ 自定义方式 ⑧ 滚的升级 5、使用限制 第三章 主要定义 …...
通过Wrangler CLI在worker中创建数据库和表
官方使用文档:Getting started Cloudflare D1 docs 创建数据库 在命令行中执行完成之后,会在本地和远程创建数据库: npx wranglerlatest d1 create prod-d1-tutorial 在cf中就可以看到数据库: 现在,您的Cloudfla…...
《用户共鸣指数(E)驱动品牌大模型种草:如何抢占大模型搜索结果情感高地》
在注意力分散、内容高度同质化的时代,情感连接已成为品牌破圈的关键通道。我们在服务大量品牌客户的过程中发现,消费者对内容的“有感”程度,正日益成为影响品牌传播效率与转化率的核心变量。在生成式AI驱动的内容生成与推荐环境中࿰…...
MySQL 8.0 OCP 英文题库解析(十三)
Oracle 为庆祝 MySQL 30 周年,截止到 2025.07.31 之前。所有人均可以免费考取原价245美元的MySQL OCP 认证。 从今天开始,将英文题库免费公布出来,并进行解析,帮助大家在一个月之内轻松通过OCP认证。 本期公布试题111~120 试题1…...
【论文阅读28】-CNN-BiLSTM-Attention-(2024)
本文把滑坡位移序列拆开、筛优质因子,再用 CNN-BiLSTM-Attention 来动态预测每个子序列,最后重构出总位移,预测效果超越传统模型。 文章目录 1 引言2 方法2.1 位移时间序列加性模型2.2 变分模态分解 (VMD) 具体步骤2.3.1 样本熵(S…...
DeepSeek 技术赋能无人农场协同作业:用 AI 重构农田管理 “神经网”
目录 一、引言二、DeepSeek 技术大揭秘2.1 核心架构解析2.2 关键技术剖析 三、智能农业无人农场协同作业现状3.1 发展现状概述3.2 协同作业模式介绍 四、DeepSeek 的 “农场奇妙游”4.1 数据处理与分析4.2 作物生长监测与预测4.3 病虫害防治4.4 农机协同作业调度 五、实际案例大…...
中医有效性探讨
文章目录 西医是如何发展到以生物化学为药理基础的现代医学?传统医学奠基期(远古 - 17 世纪)近代医学转型期(17 世纪 - 19 世纪末)现代医学成熟期(20世纪至今) 中医的源远流长和一脉相承远古至…...
