基于单片机的智能风扇设计

摘 要: 传统风扇无法根据周围环境的温度变化进行风速的调整,必须人为地干预才能达到需求 本文基于单片机的智能风扇主要解决以往风扇存在的问题,其有两种工作模式: 手动操作模式和自动运行模式,人们可以根据需要进行模式选择。 在自动运行模式下,风扇随周围环境温度的变化而自主调节风速,可实现 温度高,风速大; 温度低,风速小”。 同时,智能风扇在两种模式中都配置了定时功能,用户可以根据需要选择不同的定时时间 本次设计中对风扇的控制采用了触摸屏面板和无线通信技术,这将给用户带来便利。
关键词: 单片机; 智能风扇; 风速调整; 工作模式; 定时
在我们国家,电风扇是 80 年代才流行的一种家用小型电器,作为传统的清凉和解暑工具,电风扇具有价格低廉,占据空间少等特点。 受消费水平的制约,大多数家庭尤其在中小型城市和农村,风扇仍旧会占有很大的市场份额。 然而由于其功能单一且耗电量大,极大地限制了电风扇的发展空间。 近年来,单片机凭借其小巧、 抗干扰能力强 且易操作 成本低等特点,已经深入各领域,使用很广泛。 随着大型集成电路技术的进一步成熟,单片机的性能仍在快速地提高,未来单片机技术及传感器技术等的发展必将给电风扇的进一步发展带来突破性的变化。对于目前风扇的发展,采用单片机技术和传感器技术可以使风扇的功能更加完善、使用更加人性化。 传统的风扇,尤其是夏天晚上,风扇以不变的风速工作这样会使老年人和小孩着凉、 感冒,因为传统风扇风速的大小无法根据周围环境温度的变化作出调整,所以迫切需要一款能够满足现代人生活的风扇。

1 硬件电路设计与实现

1. 1 系统整体设计

系统整体框图如图 1 所示
本设计的整体思路: 系统设计主要包括两部分:
( 1 ) 终端( 接收命令) 部分: 温度传感器 ds18b20实时采集周围的温度,将微处理器读取的温度值实时显示在 LCD1602 无线收发模块通过串口与 51 单片机通信,将从 stm32 发来的数据读给 51单片机。 51 单片机根据其接收的命令,控制与其相连的外设
(2 ) 控制端( 发送命令) 部分: 通过对 STM32 编程,在 TFTLCD 模块上做一个智能风扇系统的功能
界面,通过触摸模块界面的功能按钮,产生相应的数据。 产生的数据通过串口发送给无线收发模块,无线收发模块将从串口传来的数据发送出去。 同时,与 stm32 单片机连接的 DHT11 实时读取周围环境的温湿度,其中 stm32 通过单总线通信方式访问DHT11,将读取的温湿度数据实时显示在 LCD

1. 2 各部分电路设计

1. 2. 1 51 单片机最小系统电路

单片机最小应用系统即用很少的电路元件组成可以让单片机正常运行的系统。 对于 51 单片机,其最小系统一般包括: 微处理器、 晶振电路 复位电路 、电源电路。
( 1 ) 按键复位电路: 由按键 、10 uf 电容和电阻组 成,用来对单片机本身和其扩展模块进行复位,使程序重新执行。
( 2 ) 晶 振 电 路: 51 单 片 机 的 晶 振 一 般 取11. 0592 MHz,这样可以准确 产 生 9600 bps 和19200 bps,产生的波特率用于串口通信 外部晶振电路结合单片机内部电路产生单片机正常工作的时钟,单片机代码的执行都基于晶振电路产生的时钟频率。
( 3 ) 电源电路: 51 单片机采用 5 V 供电,由外部提供电源。

1. 2. 2 液晶 LCD1602 显示电路

液晶 LCD1602 是数字式的,因此和单片机连接的电路简洁,易编写程序。 液晶 LCD1602 51 单片机的通信使用 8 位数据口,采用并行方式,每次传输 8 bit 的数据
本次设计中 LCD1602 第一行显示周围环境温度,温度显示只有整数位。 第二行显示风扇的风速级别,风扇未开启时,显示为 - ; 风扇正常工作时显示的风速级别在数字 1 ~ 3 之间

1. 2. 3 温度采集电路

proteus 仿真软件上搭建的 ds18b20 温度采集电路如图 2 所示 由于其与单片机通信采用单总线方式,故只含数据端口 DQ

1. 2. 4 电机驱动模块电路

本次设计中采用 51 单片机的定时器模拟 PWM波输出数字信号,并利用电机驱动模块 L298N 来驱 动 12 V 的直流电机,通过改变 PWM 波的高电平所占的比例来实现风扇风速的调节。 实际生活中由于风扇只往一个方向转,所以对 L298N 模块的配置如图 3 所示

1. 2. 5 串口通信电路

在多机通信系统中,单片机之间的数据交换一般多采用串行通信方式。 本次系统中串口电路包括两部分: 一部分是 stm32 ZigBee 节点的串口通信电路: 系统设计中 stm32 通过其串口的 TX 端发送数据给 ZigBee 模块, ZigBee 模块只需要从串口的 RX端读取数据,故只使用了一条数据线,连接电路图如图 4 所示 另外一部分是 51 单片机与 ZigBee 节点的串口通信电路: 系统设计中 ZigBee 模块从串口TX 端发送数据给 51 单片机, 51 单片机从串口的RX 端读取数据,故只使用了一条数据线,连接电路图如图 5 所示

在实际的硬件电路测试中发现,两个单片机系统在进行数据通信时,必须要共地,否则数据传输出错或无法接收到数据。

2 软件设计与实现

程序的编写都使用的是 C 语言, C 语言程序本身不取决于硬件资源,基本上稍做修改就可以将用户程序从不同的硬件系统平台上移植。

2. 1 主程序设计

主程序是整个设计的中心,它是将各个子模块通过逻辑判断相互结合起来构成的。 由于基于单机的智能风扇系统采用无线通信方式,故主程序 为两部分: 一部分是执行控制命令端的主程序,这一部分的程序设计是以对 51 单片机编程为基础构成的,主要包括: 风扇模式选择及风速调节、51 单片机与 ZigBee 模块之间的数据通信、 51 单片机定时读取ds18b20 采集的温度值 LCD1602 显示温度值及风扇的风速档位、 定时器模拟 PWM 波输出等,该主程序流程图如图 6 所示 另一部分是发送控制命令端的主程序,这一部分的程序设计是以对 stm32 单片机编程为基础构成的,主要包括: TFTLCD 触摸屏界面设计与显示、 DHT11 采集温湿度 、stm32 与 ZigBee模块之间的数据通信等,该主程序流程图如图 7 所示。

2.2 触摸屏界面以及 LCD 显示子程序设计

该部分完成的主要功能包括: 汉字 字符串的显示,图片的加载与显示,触摸屏触摸的实现。 完成这些功能,涉及的知识特别多,包括 TFTLCD 显示 、SPI通信、 触摸屏的触摸实现 内存管理 SD FATFS文件系统模块、 汉字显示原理以及汉字字库的制作 、图片的解码等相关知识。 该部分的设计流程图如图8 所示

2.3  51 单片机读取 ds18b20 采集的温度子程序 设计

通过单总线方式 51 单片机与 ds18b20 进行数据通信,由于 stc89c52 单片机在硬件上不支持单总线通信方式,故选取编程的方法来演示单总线通信方式来完成对温度传感器的访问。
单总线协议规定了以下时序: 初始化时序 读数据时序、 写命令时序 全部时序都将控制器作主机,单总线器件( 例如: 传感器等) 作从机。 特别要说明的是: 每次命令和数据的交换都是主机自动开启写时序,若单总线器件回复数据,则在结束写命令后,主设备要开始读时序完成数据的接收。 该部分程序设计的流程图如图 9 所示

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Leetcode每日刷题之面试题01.01.判断字符是否唯一

在学习编程语言的过程中相信大部分同学刚开始接触的循环语句都是 for 循环,今天我将介绍一个比较简洁的循环语句,可以帮助我们减少些许的代码量,也更加快捷,那就是范围 for 在我之前的博文中也有所介绍 详情点击:面向对…

五段式S型算法笔记

设定已知:v0 vmax j; 减加速段:tm到tmax 加加速段:0到tm tm:中点时间 vm:中点速度 vmax:最大速度; j加速度的斜率 -j相反加速度的斜率 这个图首先说明&#xff…

C 语言文件操作详解

目录 引言 一、基本概念 1.什么是文件 2.文件的属性 3.为什么使用文件 4.二进制文件和文本文件 二、文件的打开和关闭 1.流和标准流 2.文件指针 3.文件的打开和关闭 三、⽂件的顺序读写 1.顺序读写函数 2.详细介绍 1.fgetc 2.fputc 3.fgets 4.fputs 5.fscan…

OpenTiny HUICharts 正式开源发布,一个简单、易上手的图表组件库

引言 大家好! 我们非常高兴地跟大家宣布,今天正式发布我们的新产品——OpenTiny HUICharts。这是一款前端 Web 可视化图表库,其基础图表功能构建于 ECharts 之上,而高阶图表则采用了新的底层技术,以满足更广泛的数据…

AI 手机的技术展望

某某领导问到我,AI手机这个产业发展如何?对于,地方科技园区,应该如何发展相关产业?我一时还真说不上来,于是,查了一下资料,大概应对了一下。 一:AI手机的定义 首先&…

python管理mysql

[rootserver1 ~]# pip3 config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple //这是设置清华镜像站,提高下载安装速度,如果报错提示找不到config,这是因为版本低,临时使用清华镜像站来升级 pip&…

Python PDF文本处理技巧 - 查找和高亮文字

目录 使用工具 Python在PDF中查找和高亮文字并统计出现次数和页码 Python在PDF的特定页面区域中查找和高亮文字 Python使用正则表达式在PDF中查找和高亮文字 Python在PDF中查找文字并获取它的坐标位置 其他查找条件设置 在日常工作和学习中,我们常常需要处理各…

SAP MM学习笔记 - 豆知识05 - Customer Exit 实例,MM01上定义Customer Exit 来Check评估Class

上一章讲了一些MM模块的豆知识。 - MM01中设定的安全在库和最小安全在库 - MM01/MMSC/Customize自动 扩张物料的保管场所 - MM01中定义生产订单的默认入库保管场所 - VA01受注票中设定禁止贩卖某个物料 SAP MM学习笔记 - 豆知识03 - 安全在库和最小安全在库,扩…

linux文件——深度学习文件fd、文件系统调用

前言:从本片开始正式进入linux文件的学习,本片内容主要是文件的fd。 本篇内容博主将要先带友友回忆C语言中的文件操作接口,然后再过渡到操作系统中的系统调用的学习,最后理解操作系统中的文件操作。 ps:本节内容设计一…

AI 深度学习让金融 β 系数估算更精确

作者:老余捞鱼 原创不易,转载请标明出处及原作者。 写在前面的话: 传统的金融贝塔系数估计方法往往依赖于严格的假设,难以准确捕捉 Beta 的动态变化,这限制了它们在实际应用中的有效性。为了解决这些问题,本文开发了一种新方法:NeuralBeta,利用神经网络进行Bet…

Centos7安装高版本内核

背景 买到的设备安装Centos7系统,但是新的处理器已经不支持低版本的Linux内核了。而且在 CentOS 使用过程中,高版本的应用环境可能需要更高版本的内核才能支持,所以难免需要升级内核。 内核种类 关于内核种类: kernel-ml:kerne…

趋动科技陈飞:从小模型到大模型,AI时代下的数据中心建设

自AI大模型横空出世,不断推动着AI从学术界到产业界向大众破圈,新的时代正在来临。11月15-16日,由CDCC主办的“2023第11届数据中心标准大会”在北京国家会议中心盛大开幕。 本届大会的主题围绕“AI时代 重塑未来”,聚焦数据中心领…

Spring:springboot集成jetcache循环依赖问题

springboot版本:2.6.14 jetcache版本:2.6.2 启动项目报错如下: 解决方案: jetcache版本升级到2.6.4 https://github.com/alibaba/jetcache/issues/624

phpstudy搭建sqlilabs本地靶场

请先在网上解决好前置条件的下载和安装:phpstudy、vscode、navicat premium(非必要)、sqlilab的压缩包/文件夹 phpstudy--安装sqlilabs 1.打开phpstudy后,我们会用到MySQL5.7.26和Nginx1.15.11 #mysql5.7.26是因为sqlilabs靶场不支持高版本MySQL 2.在软…

Spring配置

1.Spring的两大核心思想IOC和AOP思想 1.1类注解 1.Controller, Service, Configuration, Component, Repository 1.2方法注解 bean(这个方法搭配上面的五大注解进行使用) 2.Bean的名称 2.1.类注解名称 (1)默认首字母小写驼…

【C语言篇】字符和字符串以及内存函数的详细介绍与模拟实现(上篇)

文章目录 字符函数字符输入输出函数字符输入函数字符输出函数 字符分类函数字符转换函数 字符串函数字符串输入输出函数字符串输入函数字符串输出函数 strlen函数的使用和模拟实现strcpy函数的使用和模拟实现strcat函数的使用和模拟实现strcmp函数的使用和模拟实现strncpy函数的…

三十三、【人工智能】【机器学习】【监督学习】- LightGBM算法模型

系列文章目录 第一章 【机器学习】初识机器学习 第二章 【机器学习】【监督学习】- 逻辑回归算法 (Logistic Regression) 第三章 【机器学习】【监督学习】- 支持向量机 (SVM) 第四章【机器学习】【监督学习】- K-近邻算法 (K-NN) 第五章【机器学习】【监督学习】- 决策树…

【计算机操作系统】死锁的概念

文章目录 死锁的定义死锁、饥饿、死循环的区别死锁产生的必要条件死锁的处理策略小结(思维导图) 死锁的定义 死锁是指多个进程因竞争资源而造成的一种僵局(互相等待),若无外力作用,这些进程都将无法向前推…

二维差分日常练习

前言&#xff1a;一开始写题的时候以为自己还记得&#xff0c;但是写的时候忘记了一个易错点 定义长度为 len , 那么 左上角的坐标为 &#xff08; i , j ) , 那么右下角的坐标为 为 ( i len -1 ,j len -1 ) #define _CRT_SECURE_NO_WARNINGS #include<bits/stdc.h> us…

【阿旭机器学习实战】【39】脑肿瘤数据分析与预测案例:数据分析、预处理、模型训练预测、评估

《------往期经典推荐------》 一、【100个深度学习实战项目】【链接】&#xff0c;持续更新~~ 二、机器学习实战专栏【链接】&#xff0c;已更新31期&#xff0c;欢迎关注&#xff0c;持续更新中~~ 三、深度学习【Pytorch】专栏【链接】 四、【Stable Diffusion绘画系列】专…