当前位置: 首页 > article >正文

基于单片机的智能温控风扇系统的设计

[摘 要] 设计一种基于单片机的智能温控风扇系统,系统由 STC 系列的 51 单片机 温度传感器 LED 数码管和风扇等模块组成。 本系统具有对外界温度感知以及对感知数据进行分析处理 智能调节等功能,避免因温度过高而产生对整个系统的损坏,以此提高整个系统的性能。
[关 键 词] 单片机;温度传感器; PWM

引言

随着现代科技的日益发展,传统的电风扇不能满足人们的生活需求,它只能以恒定的速度运行,这对人们的生活造成诸多不便。 在夜间,人们在熟睡时无法有效对风扇进行变速,即使有智能遥控器,也会影响人们休息。 而且传统电风扇定时功能也存在一定局限性,鉴于以上诸多缺点,我们需要设计一款智能风扇系统解决我们当前遇到的实际问题。 智能温控风扇系统是利用感知当前温度从而决定风扇是否运行及运行速率的一种智能化模式,这不仅能很好地节约能源,同时也更适应人们的现代生活。 (如图 1 所示)

硬件方案设计

(一)智能温控风扇系统设计原理图

本系统以 51 单片机为核心,配以数码管驱动 按键复位 温度传感器、 电源电路 设计简单,方便使用

(二)单片机的晶振与复位电路

在单片机系统中复位电路起到了很重要的作用,因为单片机在上电过程中不稳定,在这期间执行相关操作会造成电路损坏。因此需要一个复位电路来避免这样的现象发生。 对于单片机来说晶振电路也是很重要的,晶振决定着系统的时钟周期,没有时钟周期单片机就无法工作,整个系统就没有意义。 本设计中开关复位与晶振电路如图 3 所示,当复位按键按下时,系统复位一次

(三)温度传感器电路

该模块采用 DS18B20 作为温度传感器,与我们常用的热敏电阻相比,它能够更加直接读出被测物体的温度并且可根据我们的需求通过编程来实现数值的读取。 此款温度传感器有自己的单线接口方式,使用过程中无需外接元件。 在采集温度时,若经过的信号电流过大,需要串联一个电阻,使电流尽可能减小。 因此 R16 在这个电路中就是起到这样一个保护作用

(四)风扇驱动电路

如图 5 所示是风扇驱动电路,其中 R15 为电机负载,其工作 原理是:单片机响应用户的参数设置,在 I/O 口送出一个低电平, 使工作电路导通工作
电机的调速方式是整个系统中的一个相当重要的方面,该方式选择的正确与否决定着整个系统的性能。 本设计中是通过控制改变三极管的导通,使输出端的电压发生改变,结合 PWM 调速原理实现风扇调速效果。

软件设计方案

如图 6 ,在程序启动后,主程序先完成对自身的初始化 先由传感器模块读取当前温度,可以实时显示在数码管上。 通过按键设置一个温度的上下限,将传感器读取到的温度和设置的上下限值进行对比,从而来判断风扇该如何运行。 当读取到温度值后,由外围的驱动电路通过 P2.3 口将送来的 PWM 信号放大,给出低电平使三极管导通,从而驱动电机转动。 该程序利用了 PWM 原理进行调速,而频率和占空比是 PWM 的两个重要参数 这里需要用到两个定时器,一个控制频率一个控制占空比,通过控制高电平持续时间来调节占空比,从而让风扇调速运转。 随着传感器对温度的实时采集,可以自动调节风扇的转速,既能达到节能的效果,又可以让人享受舒适的环境。

调试运行

该部分采用 Proteus 软件仿真进行调试,附仿真图供参考如图 7 所示:
经调试,风扇的转速可以通过事先设置的温度上下限进行自动调速。 当温度低于设定下限值时,风扇停止运转,当温度在上限值和下限值之间时,风扇调速运转,当温度大于上限值时,风扇全速运转,整体符合事先设计的要求。

总结

基于单片机的智能温控风扇系统能通过 DS18B20 温度传感器实时的采集系统周围的温度,经单片机处理后能实现风扇自动调速。 该系统克服了传统电风扇的缺点,不仅能用于平时日常生活,在工业大型器械散热系统中也能发挥巨大作用。 该系统编程简单,可扩展程序广泛,适用范围广,有巨大的市场前景。

http://www.kler.cn/news/316073.html

相关文章:

  • C语言实现冒泡排序
  • 在泰国旅游不会口语怎么办?求推荐翻译软件!!!
  • 网安新声 | 黎巴嫩BP机爆炸事件带来的安全新挑战与反思
  • 计算机毕业设计选题推荐-基于python+Django的全屋家具定制服务平台
  • Vue3实现类ChatGPT聊天式流式输出(vue-sse实现)
  • torch.embedding 报错 IndexError: index out of range in self
  • 数据结构之二叉树遍历
  • 【Linux系统编程】第二十一弹---进程的地址空间
  • 《概率论与数理统计》学渣笔记
  • uni-app功能 1. 实现点击置顶,滚动吸顶2.swiper一个轮播显示一个半内容且实现无缝滚动3.穿透修改uni-ui的样式
  • 美团测开OC!
  • 【论文串烧】多媒体推荐中的模态平衡学习 | 音视频语音识别中丢失导致的模态偏差对丢失视频帧鲁棒性的影响
  • erlang学习:Linux常用命令2
  • Github 2024-09-23 开源项目周报 Top15
  • Kubernetes集群架构、安装和配置全面指南
  • 目标检测-数据集
  • 【MySQL】获取最近7天和最近14天的订单数量,使用MySQL详细写出,使用不同的方法
  • 想学习下Python和深度学习,Python需要学习到什么程度呢?
  • C++入门——(类的默认成员函数)析构函数
  • 数据库基础知识---------------------------(3)
  • 早期病毒和反病毒技术(网络安全小知识)
  • MATLAB系列08:输入/输入函数
  • SSCMS 插件示例 一插件创建及插件菜单
  • 大厂面试真题:SpringBoot的核心注解
  • FastAPI 的隐藏宝石:自动生成 TypeScript 客户端
  • Golang | Leetcode Golang题解之第423题从英文中重建数字
  • C++学习
  • 机器学习——Bagging
  • String类和String类常用方法
  • LinuxC高级作业1