基于单片机的烟草干燥温度控制系统设计

摘 要:烟草干燥研究一直备受国内外烟草工作者的重视,在烟草干燥的方法中热风管处理法是利用热空气对流使烟草达到干燥的效果,这样可以控制烟草干燥时的温度,使烟草能够更好更快地干燥,因此温度的检测和控制是很重要的。本文基于单片机和外部传感器及模数转换器设计了烟草温度检测与控制装置。将铂电阻PT100 作为温度传感器检测温度,通过模数转换器AD7705 对数据进行模数转换,并传给MSP430F149 单片机处理,最终由点阵式液晶OCM12864 显示。通过外部键盘设定温度,将设定的温度与检测到的温度进行比较,进而控制温度和电路的通断,即电炉丝是否处于加热状态,以此达到改变温度的目的。最终实现温度的实时检测和控制。
关键词:烟草干燥;温度;检测;PID 控制;单片机;控制系统

0 引 言
目前国内外烟草干燥的方法有以下几种:日晒处理法、风干处理法、明火烘烤法、热风管处理法。其中风干处理法是将烟草悬挂于避阳通风的建筑中,通过自然风干进行干燥处理。这种方法得到的烟草虽然烟草风味变得更柔和,并且能够降低其尼古丁的含量,但是利用外界自然条件进行干燥的时间较长。明火烘烤处理法是将烟草悬挂于明火之上,通过明火生起的浓烟,把烟叶熏熟,达到干燥效果,这种方法的不利之处也是干燥温度不易控制,并且明火容易将烟草烧坏。热风管处理法是将收获的烟草放置于密闭容器内,通过加热装置进行加热,利用热空气对流使烟草达到干燥的效果。这样可以控制烟草干燥时的温度,使烟草能够更好更快地干燥。因此,热风管处理法在烟草干燥领域得到了大范围的推广,它可以在烟草干燥过程中保证烟草的质量,并且能更快速地进行干燥处理。
烟草干燥过程中重要的部分就是温度检测和温度控制。通过烟草干燥曲线可以找到烟草干燥的最佳温度区间,在此区间内烟草干燥的速度最快,所用时间最短,并且干燥后的烟草质量也较好。基于此,本文设计了一个温度检测和温度控制系统,可以实现对干燥过程中的温度进行实时检测和显示;并可以对干燥温度进行设定,控制加热装置的加热状态,使干燥温度保持在最佳温度区间内。

1 烟草干燥加温测试装置整体设计

烟草干燥加温测试装置系统是基于单片机MSP430F149的闭环控制系统来对电加热炉进行温度控制的。系统总体设计框图如图1 所示。通过外部键盘输入设定要达到的目标温度;通过铂电阻PT100 对温度进行实时检测,并对当前的检测温度和目标温度进行比较,得到偏差,再对其进行PID 算法修正。本设计的温度控制部分由三极管和固态继电器组成,修正的结果决定单片机PWM 输出口输出高电平还是低电平,进而决定三极管导通与否,并确定固态继电器的工作状态,达到对电炉丝加热状态的控制,从而实现对干燥温度的控制。

2 烟草干燥加温测试装置的硬件设计

2.1 温度检测模块的硬件电路设计

本设计中温度检测模块使用铂电阻PT100 进行检测,通过电桥得到差动值,然后再经过AD 进行数据采集,将采集的数据送入单片机MSP430F149,最后通过液晶OCM12864进行温度显示。其中由TL431 组成的部分电路相当于一个10 V 的稳压电源,为供桥电源。电桥的输出电压可由下面的计算公式得出:

铂电阻PT100 在0 ℃时电阻值为100 Ω,电阻变化率为0.385 1 Ω/℃,由此可以得到RPT 的值,进而可以得到某温度范围内的电桥输出电压变化范围。

2.2 数据采集模块的硬件电路设计

本设计中数据采集模块所用的主要器件为AD7705,它可以通过编程设定增益和数据输出更新频率,还可以选择输入模拟缓冲器以及自校准和系统校准的方式,其中电源电压为5 V,基准电压由LM336 精密2.5 V 稳压器提供。

2.3 温度控制模块的硬件电路设计

温度控制部分利用三级管9012 通断控制继电器工作,三极管9012 为低电平导通。当控制器输出信号0 时,9012导通,从而使继电器导通,电炉丝加热进行升温;而当控制器输出信号1 时,9012 不导通,继电器断开,电炉丝停止加热。

3 温度检测控制系统中的软件设计

3.1 温度检测和温度控制部分程序设计

温度检测部分采用铂电阻PT100 对温度进行实时检测。通过AD 进行数据采集转换可以得到AD7705 的7 脚(AIN1+)、8 脚(AIN1-)的电压。根据公式(1)计算出温度检测部分的电桥输出电压并且可以得出RPT 的值。此值不可能是PT100 铂电阻分度特性对照表中的一个准确的电阻值,需要通过如下公式计算得到当前阻值对应的温度。

式中:RPT 是由电桥输出电压公式计算得到的电阻值;A、B为在PT100 铂电阻分度特性对照表中与RPT 最接近的阻值(设定A < B);a、b 分别是对应阻值A、B 的温度值;x 为当前温度值。
温度检测和控制部分的程序流程如图2 所示。

4 测试方法及结果

4.1 测试方法

首先将整个电路接通电源,此时液晶屏显示当前温度为室温,当按下键盘上的B 键,液晶显示屏第二行显示出“设置”,然后通过数字键0 ~ 9 设定所要达到的目标温度,按下确认键F。当输入目标温度高于当前检测到的温度时,单片机P5.7 输出低电平,三极管导通,固态继电器工作,控制系统工作,液晶显示屏上显示“升温” 状态;当加热温度达到目标温度时,单片机P5.7 输出高电平,加热电路断开,液晶显示屏上显示“降温”状态。这样就完成了温度的检测和控制。

4.2 测试结果

本设计的加温测试装置的温度测量范围为10 ~ 80 ℃。本设计最终实现了闭环的温度控制系统,并且对温度能够进行实时检测和显示。表1 给出了测得实验数据中的一组。

通过表1 可以看到,目标温度与实际检测温度的差值在0.3 ~ 0.5 ℃之间,在误差允许范围内。

5 结 语

烟草干燥是一个复杂的传热传质过程, 同时伴随有复杂的物理、化学变化,因此烟草干燥过程中的温度控制尤为重要。本文以单片机MSP430F149 作为电路的核心控制器件,设计了烟草干燥加温测试装置,整个系统由温度检测、温度对照像元电路模块和电容反馈互导放大器(CTIA)组成的384×288 非制冷红外焦平面新型读出电路,该电路结构通过Cadence 软件进行仿真。由结果可以看出,积分电压吻合表达式表现出良好线性度和放大性能,同时也减弱了环境与数据采集的绝对差对输出结果的影响,最终与预期设想相符合。

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

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

相关文章

写静态页面——浮动练习

0、效果&#xff1a; 1、html代码&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>浮动…

C++-类和对象(2)

目录 5.类的作用域 6.类的实例化 7.类对象模型 7.1 如何计算类对象的大小 7.2 类对象的存储方式猜测 1.对象中包含类的各个成员 ​编辑 2.代码只保存一份&#xff0c;在对象中保存存放代码的地址 ​编辑 3.只保存成员变量&#xff0c;成员函数存放在公共的代码段 ​编辑…

C++进阶(八)红黑树

&#x1f4d8;北尘_&#xff1a;个人主页 &#x1f30e;个人专栏:《Linux操作系统》《经典算法试题 》《C》 《数据结构与算法》 ☀️走在路上&#xff0c;不忘来时的初心 文章目录 一、红黑树的概念二、红黑树的性质三、红黑树结构四、红黑树的插入操作1、情况一2、情况二3、…

【C++】构造函数和析构函数详解

目录 前言 类中的六个默认成员函数 构造函数 概念 特性 析构函数 概念 特性&#xff1a; 前言 类中的六个默认成员函数 如果一个类中什么成员都没有&#xff0c;简称为空类。 空类中真的什么都没有吗&#xff1f;并不是&#xff0c;任何类在什么都不写时&#xff0c;编…

【Cookie反爬虫】某采购网站动态Cookie加点选验证码校验分析与实战

文章目录 1. 写在前面2. 请求分析3. JS反混淆4. 深度分析 【作者主页】&#xff1a;吴秋霖 【作者介绍】&#xff1a;Python领域优质创作者、阿里云博客专家、华为云享专家。长期致力于Python与爬虫领域研究与开发工作&#xff01; 【作者推荐】&#xff1a;对JS逆向感兴趣的朋…

字符串转换const char* , char*,QByteArray,QString,string相互转换,支持中文

文章目录 1.char * 与 const char * 的转换2.QByteArray 与 char* 的转换3.QString 与 QByteArray 的转换4.QString 与 string 的转换5.QString与const string 的转换6.QString 与 char* 的转换 在开发中&#xff0c;经常会遇到需要将数据类型进行转换的情况&#xff0c;下面依…

【C++入门到精通】特殊类的设计 | 单例模式 [ C++入门 ]

阅读导航 引言一、设计模式概念&#xff08;了解&#xff09;二、单例模式1. 饿汉模式&#xff08;1&#xff09;概念&#xff08;2&#xff09;模拟实现&#xff08;3&#xff09;优缺点&#xff08;4&#xff09;适用场景 2. 懒汉模式&#xff08;1&#xff09;概念&#xff…

金田金业教你如何看懂国际黄金价格走势图

对于黄金投资者来说&#xff0c;看懂国际黄金价格走势图是至关重要的。通过观察走势图&#xff0c;可以了解金价的实时动态&#xff0c;预测未来的走势&#xff0c;从而做出相应的投资决策。本文将详细解析如何看懂国际黄金价格走势图。 一、国际黄金价格走势图的基本构成 国…

【JavaEE】UDP协议与TCP协议

作者主页&#xff1a;paper jie_博客 本文作者&#xff1a;大家好&#xff0c;我是paper jie&#xff0c;感谢你阅读本文&#xff0c;欢迎一建三连哦。 本文于《JavaEE》专栏&#xff0c;本专栏是针对于大学生&#xff0c;编程小白精心打造的。笔者用重金(时间和精力)打造&…

NoSQL数据库简介

NoSQL数据库简介 Brief Introduction to NoSQL Databases By JacksonML 1. 什么是SQL&#xff1f; 在了解NoSQL之前&#xff0c;先简要介绍一下SQL。 SQL是 Structured Query Language&#xff08;结构化查询语言&#xff09;的缩写。 SQL在关系型数据中广泛使用&#xf…

大数据学习之Redis,十大数据类型的具体应用(三)

目录 3.7 Redis位图&#xff08;bitmap&#xff09; 概念 需求 是什么 说明 能干嘛? 基本命令 3.7 Redis位图&#xff08;bitmap&#xff09; 概念 由0和1状态表现的二进制位的bit数组 需求 用户是否登陆过&#xff1f;Y / N 广告是否被点击过&#xff1f; 钉钉打…

深入理解G0和G1指令:C++中的实现与激光雕刻应用

系列文章 ⭐深入理解G0和G1指令&#xff1a;C中的实现与激光雕刻应用⭐基于二值化图像转GCode的单向扫描实现⭐基于二值化图像转GCode的双向扫描实现⭐基于二值化图像转GCode的斜向扫描实现基于二值化图像转GCode的螺旋扫描实现基于OpenCV灰度图像转GCode的单向扫描实现基于Op…

RK3568平台 热插拔机制

一.热插拔的基本概念 热插拔是指在设备运行的情况下&#xff0c;能够安全地插入或拔出硬件设备&#xff0c;而无需关闭或重启系统。这意味着你可以在计算机或其他电子设备上插入或拔出硬件组件&#xff08;比如USB设备&#xff0c;扩展卡&#xff0c;硬件驱动器等&#xff09;…

计算机网络-调度算法-2(时间片轮转 优先级调度算法 多级反馈队列调度算法 多级队列调度算法)

文章目录 总览时间片轮转时间片大小为2时间片大小为5若按照先来先服务算法 优先级调度算法例题&#xff08; 非抢占式优先级调度算法&#xff09;例题&#xff08; 抢占式优先级调度算法&#xff09;补充 思考多级反馈队列调度算法例题 小结多级队列调度算法 总览 时间片轮转 …

设计模式学习笔记02(小滴课堂)

江湖传言里的设计模式-单例设计模式 单例设计模式中的懒汉方式实战 这种方式是线程不安全的&#xff0c;多个线程同时调用会创建多个对象。 所以我们就要给它加锁: 我们去测试一下&#xff1a; 因为构造函数已经私有化&#xff0c;所以不能直接用new的方式去创建对象。 现在我…

springboot本地测试

文章目录 本地测试引入依赖进入StudentMapper右键点击生成 项目结构 本地测试 引入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope> </d…

笔记本从零安装ubuntu系统+多种方式远程控制

文章目录 前言ubuntu启动盘Windows远程Ubuntu安装XrdpXrdp卡顿问题解决Xrdp 二次登录会死机的问题Xrdp 卡顿问题 MobaXtermRustDesk 外网远程VNC 远程SSH远程其它设置 总结 前言 我有台老笔记本&#xff0c;上大学第一年的时候买的&#xff0c;现在已经不怎么好用了。打算刷个…

初谈C++:引用

文章目录 前言概述引用特性应用场景做参数做返回值 传值、传引用效率比较引用和指针的区别 前言 在学习C语言的时候会遇到指针&#xff0c;会有一级指针、二级指针…很容易让人头昏脑胀。在C里面&#xff0c;引入了引用的概念&#xff0c;会减少对指针的使用。引用相当于给一个…

日历功能——C语言

实现日历功能&#xff0c;输入年份月份&#xff0c;输出日历 #include<stdio.h>int leap_year(int year) {if(year % 4 0 && year % 100 ! 0 || year % 400 0){return 1;}else{return 0;} }int determine_year_month_day(int *day,int month,int year) {if(mo…

ECharts 图表嵌入表格样式的demo

心累。。。 如果条件允许&#xff0c;还是强烈建议 用 Echartshtml 来实现&#xff08;表格部分由 html 来弄&#xff09;。 这里是调研阶段&#xff0c;想看看 ECharts 原生能做到什么程度。 先贴上样图&#xff1a; 贴上完整代码&#xff1a; <!DOCTYPE html> <…