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

摘 要:烟草干燥研究一直备受国内外烟草工作者的重视,在烟草干燥的方法中热风管处理法是利用热空气对流使烟草达到干燥的效果,这样可以控制烟草干燥时的温度,使烟草能够更好更快地干燥,因此温度的检测和控制是很重要的。本文基于单片机和外部传感器及模数转换器设计了烟草温度检测与控制装置。将铂电阻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,一经查实,立即删除!

相关文章

LeetCode 第二十一天

530. 二叉搜索树的最小绝对差 注意掌握中序遍历的迭代写法。 class Solution { public:int preValue -1;int MinAbs INT_MAX;void traversal(TreeNode* root){// 第一次写出新的递归题目 耶耶耶if (root nullptr) return;traversal(root->left);// 上一章卡尔给出的好方…

写静态页面——浮动练习

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>浮动…

Mongodb投射中的$slice,正向反向跳过要搞清楚

在投射中&#xff0c;使用$操作符和$elemMatch返回数组中第一个符合查询条件的元素。而在投射中使用$slice, 能够返回指定数量的数组元素。 定义 投射中使用$slice命令&#xff0c;指定查询结果中返回数组元素的数量。 语法 db.collection.find(<query>,{<arrayFi…

C++-类和对象(2)

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

C++进阶(八)红黑树

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

stm32--simulink开发之--timer的学习

总体的参考链接是&#xff1a; https://ww2.mathworks.cn/help/ecoder/stmicroelectronicsstm32f4discovery/ref/timer.html 输入&#xff1a; 1&#xff0c;配置项&#xff1a;Enable frequency input 缩写&#xff1a;freq conunt 说明&#xff1a;“freq count — Frequency…

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

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

Python爬虫学习之scrapy库

一、scrapy库安装 pip install scrapy -i https://pypi.douban.com/simple 二、scrapy项目的创建 1、创建爬虫项目 打开cmd 输入scrapy startproject 项目的名字 注意:项目的名字不允许使用数字开头 也不能包含中文 2、创建爬虫文件 要在spiders文件…

qt setStyleSheet 设置多个属性{}之间用空格间隔

setStyleSheet 设置多个属性时&#xff0c;大属性之间不能用分号&#xff0c;用 空格进行间隔 pbtn1->setStyleSheet("QPushButton {background-color: rgb(4,138,224);font: bold 12pt;color: rgb(255,255,255);} QPushButton:hover,QPushButton:pushed {background-…

GPT等大语言模型是典型的人机环境交互、协同系统

GPT等大语言模型是一种典型的人机环境交互、协同系统&#xff0c;同时也是一种基于Transformer模型的自然语言处理&#xff08;NLP&#xff09;模型&#xff0c;使用了大规模的无监督预训练和有监督微调的方法进行训练。通过预训练和微调的方式来生成文本。GPT能够根据输入的文…

【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;编程小白精心打造的。笔者用重金(时间和精力)打造&…

嵌入式学习记录15

结构体 struct 描述一些 基本数据类型不好描述的 &#xff1b;复杂的数据类型 就是要描述一类事物&#xff0c;需要从他的方方面面入手&#xff0c;而这些方面的数据类型又各不相同&#xff0c;这时需要整合在一起&#xff1b;就是结构体&#xff1b;而这个结构体相当于一个模…

NoSQL数据库简介

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

字符串函数(2)

目录 字符串替换 将所有员工姓名中的字母“A”替换为“_” 消除空格数据 字符串截取 字符串截取操作 从指定位置截取到结尾 截取部分内容 截取每一位员工姓名的前三位字符 面试题&#xff1a;请问利用 Oracle 中的 substr() 函数进行截取时&#xff0c;字符串的索引是从…

从淘宝商品详情API看电商行业的数据价值

在电商行业&#xff0c;数据已经成为驱动业务增长的关键因素。淘宝作为中国电商市场的主要参与者&#xff0c;其商品详情原数据的API在电商行业中具有显著的重要性。本文将深入探讨这个话题&#xff0c;并阐述如何实现实时数据获取。 一、淘宝商品详情原数据API的重要性 提供…

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

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