单片机蜂鸣器编程音乐_基于单片机的智能鱼缸温控系统设计

d2f459ff0198ea42940a702a36b2b9c6.png

曹益豪

聊城大学东昌学院机电工程系

山东 聊城 252000

摘  要:为满足热带鱼的饲养要求,设计了一种基于AT89C52单片机的小型智能温控鱼缸系统。该系统利用DS18B20传感器检测水温,并通过测量温度与设定温度的对比控制加热装置的通断。现详细介绍了鱼缸系统的各部分硬件构成以及控制部分的程序设计,仿真软件模拟的结果证明该设计能够达到预期效果。

关键词:AT89C52单片机;水温控制;DS18B20传感器;Proteus模拟

0  引言

随着科学技术的不断发展和国民生活水平的不断提高,消费者需求的差异性趋势愈发明显。传统的鱼缸由于在体积、售价、保养成本以及适用品种等方面的相对劣势,其市场份额逐渐被更小型的观赏鱼缸所占据。目前市场上的观赏鱼缸通常具有保温、过滤、制氧和投食等功能,但往往是各自独立的非智能化整体控制系统[1]。该系统从温度控制入手,利用单片机收集处理水温传感器的检测数据,并根据具体情况决定加热器以及报警电路的开启和关闭,形成一套完整的智能鱼缸温控系统。

1  系统功能与总体结构

市场上的观赏鱼种多是热带鱼,水缸温度是其生长的关键因素之一。以月光鱼为例,其适宜的生活温度为18~25 ℃,在水温高于30 ℃或者低于10 ℃的环境中也可短期存活[2]。因此,当传感器检测到水体温度超出10~30 ℃的温度区间时,报警系统开始工作,指示灯点亮,蜂鸣器开启。当水体温度处于正常区间时,系统默认的初始控制温度在20 ℃,另设有增温与减温的按键,方便用户以人工调节温度的方式来适应月光鱼的不同生长阶段。为满足设计功能要求,智能鱼缸应由按键模块、温度检测模块、控制模块、报警模块、加热模块以及显示模块构成,系统整体结构框图如图1所示。

4f180df4d0454b33c11d158e8f5cd297.png

2  硬件电路设计

2.1  控制模块设计

智能鱼缸采用的核心控制芯片为AT89C52单片机,该型号的单片机具有成本低廉、性能可靠和兼容性好等优点,在市场上得到了广泛应用。其内部集成8 kB的ROM空间,足够支持智能鱼缸系统的程序编写,并且提供40个引脚与外部电路相连,满足系统性能的扩展需求[3]。本次设计中涉及到的单片机主要引脚及其功能如表1所示。

c0338942a701c13de7c79528f73121a1.png

2.2  温度检测模块设计

智能鱼缸采用的温度检测传感器为DS18B20温度传感器。该型号的温度传感器采用导热性高的密封胶灌封,因而具有灵敏度高和延迟度小等优点,同时其测量温度范围较大(-55~+125 ℃),满足系统功能需求。由于DS18B20采用了“1-wire”单线技术(即在1根I/O线上读写数据),因此传感器与外部电路的连接较为简单(图2),但同时也对读写的数据位提出了严格的时序要求[4]

6afda0421c29e8b0c85d84bf15d5d94a.png

2.3  加热模块设计

本次设计选择的加热器件为单U型加热管,其额定工作功率为2 kW,经测量满足鱼缸水体加热要求,同时其长度为250 mm,宽度为50 mm,尺寸符合鱼缸设计要求。由于加热器的额定工作电压为市电(220 V),远高于单片机的驱动电压(5 V),因此U型加热管的通断电由继电器电路控制。

2.4  按键模块设计

按键模块由3个按键构成,分别起到系统复位、升高温度和降低温度的功能。由于机械按键都会产生抖动的现象,所以需要特定设计来消除抖动带来的系统误动作[5]。常规的消抖手段有硬件消抖和软件消抖两种,出于简化电路结构方面的考虑,本设计采用的是软件消抖的方式,即在单片机模块中加入延时程序,只有在延时的前后都检测到同一高电平才表明按键被按下。

2.5  报警模块设计

本设计采用的报警电路如图3所示,主要由三极管、蜂鸣器和指示灯组成。当温度传感器检测到温度超出10~30 ℃的区间时,单片机I/O口输出电流,在上拉电阻的作用下使三极管导通,蜂鸣器和指示灯得电示警。

eb019a936fe384a49f0e74435d2b952d.png

2.6  显示模块设计

显示模块主要由4位共阳极数码显示管构成。当水体温度正常时,数码管的前两位分别显示鱼缸水温值的十位数值和个位数值,后两位则显示小数点之后的温度值。当示警电路接通时,若温度过高,则数码管首位显示字母“H”,若温度过低,则数码管首位显示字母“L”。

3  软件程序设计

本次设计系统除了控制主程序之外,还有报警子程序、按键子程序、继电器子程序、延时子程序和显示子程序等,程序设计流程如图4所示。

2e3156934f8195a9c6112d804f1d0362.png

4  结语

本次设计利用Keil软件进行单片机编程,并且借助Proteus软件进行仿真模拟,其模拟结果符合预期设想。该设计结构简单,功能完整,控制方便,既节省了鱼缸的空间,又满足了用户饲养热带鱼宠物的爱好。由于采用了单片机控制,系统还有更大的扩展空间,如增加食物投放功能和水体含氧量智能控制等。

[参考文献]

[1] 孔祥洪,王伟杰,宋连伟,等.观赏鱼缸智能控制器的仿真设计[J].实验室研究与探索,2013,32(5):12-15.

[2] 施振宁.月光鱼的生物学特性及饲养繁育[J].水产科技情报,2002,29(5):235-236.

[3] 曹旻罡.基于AT89C52单片机的水温控制系统的设计[J].数字技术与应用,2017(7):9-10.

[4] 李建兰,邵建龙.数字温度传感器DS18B20的关键时序研究[J].电子测试,2018(1):114-116.

[5] 熊中刚,刘小雍,李青,等.基于单片机的饮水机水温控制系统设计[J].信息技术与信息化,2018(4):47-48,52.

 作者简介 

曹益豪(1991—),男,山东聊城人,助教,研究方向:机电一体化。

792214bb80510a460c85e2a600f547d3.png

74bac90f592374b6d00979ddfe6f30dd.png

daa289a0cebbbaf712c4783e97f4d050.gif

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

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

相关文章

计算机快捷键 还原默认值,CAD默认快捷键如何恢复?教你还原CAD默认配置的方法...

小编告诉大家AutoCAD的操作命令和各种设置分为默认和自定义。 可以根据每个人的喜好进行设置。 不必完全遵循该软件的默认操作,只是因为此快捷键是可变的,所以我仍然不习惯更改我的个人操作,并且想要恢复为默认设置,我们如何还原它…

java开发指南_Java 12新功能完整指南

java开发指南六个月飞得如此之快,是时候再次仔细研究一下即将发布的新JDK版本。 让我们满足Java 12及其向开发人员介绍的功能。 自Oracle推出加速六个月的发布节奏以来已经有一段时间了,要跟上每个版本及其添加到表中的功能越来越难了。 从好的方面来看…

python语句join_Python中的join()函数的用法

函数:string.join() Python中有join()和os.path.join()两个函数,具体作用如下: join():连接字符串数组。将字符串、元组、列表中的元素以指定的字符(分隔符)连接生成一个新的字符串 os.path.join():将多个路径组合后返…

怎么升级计算机内存容量,如何升级电脑内存?给电脑内存升级的操作步骤

电脑内存是用来作为临时存储数据设备使用的,如果内存占用率高,会让电脑运行负荷。喜欢玩游戏的人对电脑内存要求都比较高。很多玩家在购机时内存选择并不大,一般都是标配8G及以下,那么如何升级电脑内存?下面就和大家一…

搜索Maven依赖资源/搜索Maven工件/搜索Maven构件/搜索依赖/搜索构件/搜索工件/下载依赖/依赖下载

文章目录依赖索引索引文件更新存放在本地的远程仓库的资源索引以及本地仓库的资源索引macOS 下索引文件的路径在 pom.xml 页面内按快捷键 ⌘N 搜索构件在资源库管理中,创建资源库时,选择 From Maven 来搜索构件通过 Maven 构件资源网站搜索依赖索引 如果…

在Selenium中按TagName定位元素

Selenium定位器是处理网页上的元素时的关键。 从ID,名称,类,标记名,XPath,CSS选择器等定位器列表中,可以根据需要选择其中任何一种,然后在网页上找到Web元素。 由于与tagName或linktext相比&…

python open读取_python,一读取文件open()

在实际操作中,我们经常会读取文件,这个时候python为我们提供了一个open()的方法,供我们读取文件,通过help(open),我们可以获取open的方法 f.close()关闭读取 f.read(size-1)读取文件size个字符,但未给size赋…

笔记本计算机风扇声音大怎么办,笔记本电脑噪音大怎么办 全解决方法

笔记本电脑在使用一段时间后,或多或少会产生令人厌烦的噪音。其中大的噪音多数来源于笔记本散热风扇。那么,笔记本电脑噪音大怎么办呢?下面我们来看具体解决方法吧。一、电脑噪音大怎么办之风扇原因在不少人看来,散热和噪音是一对不可调和的…

Maven的resources插件配置详解(含过滤器的配置详解)

文章目录指定配置文件所在的目录使用 excludes 元素可以排除指定的配置文件使用 includes 元素可以指定要处理的文件处理测试资源过滤器配置resources 插件,负责将配置文件复制到编译目录中。Maven Java Web 项目默认的编译目录 target/classes。两种配置文件 src/…

latex如何使节标题居左_为使节构建控制平面的指南第3部分-特定于域的配置API...

latex如何使节标题居左这是探索为Envoy Proxy构建控制平面的系列文章的第3部分。 在本博客系列中,我们将研究以下领域: 采用一种机制来动态更新Envoy的路由,服务发现和其他配置 确定哪些组件构成了控制平面,包括后备存储&#…

微信支付api的服务器上,服务器微信支付接口笔记(与app端对接)

到这里,准备工作就算完成了。支付流程步骤详解:步骤1:用户在商户APP中选择商品,提交订单,选择微信支付。这一步,app将相关订单信息提交给商户步骤2:商户后台收到用户支付单,调用微信…

python写sql语句_Python操作文件模拟SQL语句功能

一、需求 当然此表你在文件存储时可以这样表示 1,Alex Li,22,13651054608,IT,2013-04-01 现需要对这个员工信息文件,实现增删改查操作 1. 可进行模糊查询,语法至少支持下面3种: 1. select name,age from staff_table where age > 22 2. select * from…

Maven的maven-clean-plugin插件详解

maven-clean-plugin 插件对应的命令是 mvn clean,执行 mvn clean 命令会删除构建输出目录 target。 打开命令终端,切换到 pom.xml 所在目录下,执行下面的命令: [~/documents/IdeaProjects/demo02]$ mvn clean [INFO] Scanning f…

jep290涉及jdk版本_JDK 12 – JEP 325开关表达式

jep290涉及jdk版本JDK 12已于2019年3月19 日上线GA,继续致力于缩短发布周期和频繁发布。 该版本的功能部分可以在这里找到。 对于开发人员来说,有趣的功能之一是“ JEP 325开关表达式 ”,它可以作为预览功能使用。 此处定义的预览功能是&…

笑傲江湖客户端服务器地址修改,《笑傲江湖》改键调整操作手把手教你玩笑傲...

《笑傲江湖》采用全新引擎AngelicaIII打造,秉承原著武侠精髓,首推新派动作武侠网游概念——融入动作及格斗游戏要素,强调真实的打击感与流畅的动作连贯度,并运用方向判定、位移闪避、移动战斗、攻防一体等多重技术手段&#xff0c…

Maven的maven-compiler-plugin插件详解

文章目录mvn compilemvn test-compile编译插件的配置mvn compile mvn compile 命令会将 src/main/resources 下的资源文件复制到编译输出目录下;接着会将 src/main/java 目录下源代码编译输出到编译输出目录下。编译输出目录默认是 target/classes 目录。 打开命令…

python数据处理常用函数_pytorch中的自定义数据处理详解

pytorch在数据中采用Dataset的数据保存方式,需要继承data.Dataset类,如果需要自己处理数据的话,需要实现两个基本方法。 :.getitem:返回一条数据或者一个样本,obj[index] obj.getitem(index). :.len:返回样本的数量 。…

raid重构原理_5个重构原理示例

raid重构原理这篇文章介绍了重构真正的开源代码( Gradle Modules Plugin )时应用的五​​种(最著名的)重构原理。 语境 当我为Gradle Modules Plugin (PR #73 ) 单独编译 module-info.java &am…

extjs ajax 遮罩层,[Ext JS 4] 实战之Load Mask(加载遮罩)的显示与隐藏

前言Load Mask(遮罩)效果,就是在页面还没有完全显示出来之前, 加上一个转装转的效果。类似:添加这样的效果有两个好处:1. 在页面没完全show出来之前, 把后面的页面给遮罩起来, 防止进行一些非法的操作。2. …