基于msp430的温控系统

发布者:心怀梦想最新更新时间:2015-08-18 来源: eefocus关键字:msp430  温控系统 手机看文章 扫描二维码
随时随地手机看文章
Created on: 2012-9-16

      Author: zhang bin

 

学习笔记

for msp430g2553

redesigned by zhang bin

2012-09-16

versions:v1.2

All Rights Reserved
 
电信实训报告

 

电信实训报告——基于msp430的温控系统
 

 

指导老师:        邓宏贵教授          

     题    目:     温度的测量与控制       

     小组成员:      张 彬 1404090315     

                    李梦平  1404090312     

                    邱泽宇 1404090130   

                    唐芳梅  1404090303     

                    马金雄  1404090320     

 

 

2012   年    月  30   

温度的测量和控制

1、设计思路描述:(含设计思路、原理框图等)

根据题目的基本要求,要实现的功能是对加热丝进行温度测量(本来题目要求对空心瓷电阻加热,但由于空心瓷电阻买不到合适的规格故用加热丝代替),显示温度,然后再利用测量得到的温度与设置温度来进行恒温加热控制。我们采用pt100作温度传感器,将加热丝直接绑在pt100上面,再将pt100接入惠斯顿电桥,将电桥两端的电压差送入仪表放大器放大后,AD采样送入MSP430单片机。然后单片机通过公式转换计算出温度,实现温度测量,并用12864液晶显示出来。在加热控制部分,我们首先通过人机接口,以中断的方式用键盘输入预设温度。然后通过PID算法输出PWM波驱动功率场效应管实现对加热丝的加热控制。

对于提高要求部分,在基础部分已可实现第一小问将电热元件温度稳定地控制在30℃~80℃之间的任一指定温度值的要求。对于第二问,我们在恒温加热的基础上对温度进行细分,并与设定时间内的某个时间点相对应。使得在一定的时间区间内只加热到一定的温度,从而能保证在一个较为恒定的时间内正好加热到预设温度,也保证了匀速升温。

其原理框图如下图1:

电信实训报告——基于msp430的温控系统
 

 

 
图1  系统原理框图

 

 
2、硬件电路图:(贴入设计的硬件电路)
 
 
1. 温度测量电路原理图
 
    Pt100感应温度变化而输出相应压差,仪表放大器放大微弱压差,送给AD采样后送进单片机处理。电路如下图
2:

电信实训报告——基于msp430的温控系统
 

图2  pt100测量电路

 

 
2.电源电路原理图
 
    8V直流电除给加热丝供电外还经LM317稳出5V电压供运放及AD等正常工作。5V电压又经TL431精稳出基准电压用
作桥电路和AD参考电压

电信实训报告——基于msp430的温控系统
 

图2.2 基准电压源电路

 

3.控制电路原理图

   
  模拟开关CS4051选通3个指示灯,三极管驱动MOS管作为加热开关

电信实训报告——基于msp430的温控系统
 

图3  控制电路

键盘电路原理图

 
   由于本款单片机的IO口有限,只能借助HD7279来接矩阵键盘实现温度设定值以及加热时间设定值的输入

电信实训报告——基于msp430的温控系统
 

图4  键盘电路

[page]
3、算法数学描述:(含算法的数学表达式、符号说明等)
 
 
本文主要采用两种算法实现题目要求:

第一个是PID算法的改进,由于温度控制是一个只能加热不能制冷的控制,所以我们只用了PI。首先通过P让温度加到一个离设定温度较近的温度,然后利用I逼近设定温度。

程序如下:

 

void pid()

{

 

   if (set_t-now_t>13)

  e2=0;

 

e1=set_t-now_t;   //设定值和实际值之间的误差

uk=kp*e1+ki*e2+kd*e3;

// wr_float(0,1,e2);

e2=e1+e2;

e3=e1-e4;

e4=e1;

if(uk>speed)   //防止升温过快

uk=speed;

if(uk<0)

uk=0;

 

control_value=1-uk;   //pid输出的控制量  即PWM的占空比

}

 

 

第二个是时间控制的线性算法

在时间控制中要求温度从40°均匀加热到60°,并且时间任意可设。

本程序实现的方法是:设定时间set_time是以s为单位,把40°到60°的这20°温差平均分成set_time份。然后在控制周期中,每一个周期让时间段time_m自加1,然后根据平均的公式算出该时间段应该达到的温度,公式如下:

电信实训报告——基于msp430的温控系统
 

因为控制时间输入set_time是以s为单位,而控制周期是100ms,所以上面要除以10。

具体的实现代码如下:

 

control_m_value=(float)time_m/set_time;

control_m_value=control_m_value/10;  //时间的控制以100ms为单位,时间的设定是以1s为单位

control_m_value=40+20*control_m_value;

set_t=control_m_value; 

pid();

CCR1=control_value*12000;      //调节PWM的占空比  12000为PWM周期

 

 
4、软件流程图:(贴入各程序流程图)

    程序是整个系统中很重要的一个组成部分,它在硬件的基础上协调着整个系统各个硬件部分的一同工作,控制着整个温控系统的一举一动。软件的主要功能包括有:

(1)传感器信号的采集、处理

(2)加热丝的PWM输出

(3)加热的温度和速度控制

(4)温控系统运行流程控制:程序初始化、温控的启动与结束、液晶显示模块控制

(5)温控信息显示与参数设定:状态显示、控制算法参数设定等

    

上面的几个能中,除了程序的初始化在主函数中执行,其他的各个部分都是在中断函数中执行的,其中键盘检测和数据输入是在键盘中断中执行,其他的数据采集、处理、控制等都是在定时器5ms中断中执行的。单片机平时处于低功耗模式,降低功耗。

程序的流程图如下:

 

电信实训报告——基于msp430的温控系统
 

图5  程序流程图

 

5、测试方法描述:(含模块与系统测试方法)

 
   (1)电源模块:输入8V直流电压,通过测试各点电压输出,保证5V的供电电源和4.2V的参考电压的正确输出。
 
   (2)测量模块:测量pt100两端的电阻,然后计算桥臂的理论电压值,测量两个桥臂的电压,与理论值进行对
比。测量仪表放大器的输入,对比理论计算经过仪表放大器的电压和实际仪表放大输出。通过在这些对比检查测量电路是否正常工作。
 
 
   (3)输出控制模块:焊接完后,在控制口上加5V和0V电压,看电路是否正常通断。
 
 
   (4)灯选模块:通过人为的给选择端加高低电平,看灯是否正常亮阻值为135欧姆的固定电阻接在pt100处,然后测桥电路输出,运放输入及输出

 

 
6、测试数据:(列表说明)

测试数据表格如下表1

 

 

V(参)

4.2V

4V

3.8V

V+

117.20mv

86.09mv

81.45mv

V-

90.12mv

111.84mv

106.23mv

ΔV

26.98mv

25.62mv

24.9mv

Vo

3.872v

3.682v

3.573v

 

 

 

 

 

 

 

 

 

 

 

 
其中V+表示含有pt100的桥臂输出。V-表示另一路桥臂输出。ΔV表示仪表放大输出。Vo表示仪表放大器的输出。V(参)表示AD和桥电路的参考电压。

 

 
7、数据分析与结论:(含测试数据分析、结论等)

(1)计算公式如下:电信实训报告——基于msp430的温控系统
 

                   

                  

     测得的V+和V-都可以通过电路参数计算来衍生是否正确,ΔV的值可以通过V+和V-的差值来验证,仪放的增益
也可以通过电路参数来验证
 
 
(2)结论分析
 
     测得的数据和用电路上各参数计算所得的理论值之间有一定的误差,但误差在可以接受的范围内。由于电阻
等的实际值与标称值之间是存在误差的,故最终我们是以测得的数据为标准来换算温度的值的,但我们会多测几组数据综合一下以尽量减小误差。

 

 
8、总结
 
 
    这次的电信实训我们选做的还是上次参加电设的题目——温度的测量与控制,只是这次相较于之前做了些该进。为减小误差,Pt100采用3线式的、运放也改成了精密性及稳定性更高的仪放;加热装置也从空心瓷电阻改成了易于控制的加热丝;大噪声、反应慢的继电器也改成了MOS管;软件上也做了一定的优化。经过这10天的努力我们成功的完成了实训要求的所有指标,对减少硬件电路设计误差有了更深的认识,同时也对MSP430单片机的优势和局限性有了一定的认识。
关键字:msp430  温控系统 引用地址:基于msp430的温控系统

上一篇:MSP430时钟模块总结
下一篇:温控程序部分报告——基于msp430g2553

推荐阅读最新更新时间:2024-03-16 14:29

msp430f149 4x4矩阵按键(薄膜)
main.c /******************************************************************** //DM430-A型开发板矩阵键盘控制程序,通过数码管显示按键值,采用逐行扫描 //4X4键盘接在P1口,通过控制IO口状态变化,逐行扫描按键是否按下 //调试环境:EW430 V5.30 //作者:mmp //创客 P1口设置为按键插入口 更改引脚在Config.h文件中 有黑的地方插P1.0~P1.3 因为有上拉电阻 1 5 9 13 2 6 10 14 3 7 11 15 4 8 12 16 本程序按键布局 按照需求更改 case 0xee:key=1;b
[单片机]
MSP430的AD采集程序
/* 基于msp430f169/149的双通道AD采集程序,,内部2.5V参考电压,中断处理方式,采用滑动平均的滤波 方式,在测试时稳定的电压的采集中在小数点后两位保持不动。 */ #include ADC.h #include stdio.h #include #define ADC_BUF_LEN 200 uint16_t ADC_Buf0 = {0} ; //ADC数据缓冲 uint16_t ADC_Buf1 = {0} ; uint32_t ADC_Buf0_Sum = 0 ; uint32_t ADC_Buf1_Sum = 0 ; void ADC_Init(void) { P6SE
[单片机]
MSP430 单片机内指针或结构体赋值为NULL,却有默认值的解决办法
在几天前的一个项目里我用单片机做了一个小的音游系统(暂时还没发出来),在里面遇到了很诡异的事情,首先这是我的音符结构体(就是音游里面能击打的那种音符): typedef struct note note; struct note { int notetype;//1为单键,0为长键 unsigned long create_time;//创建时间,单位为毫秒 unsigned int length;//音符长度,每次判定 unsigned int n_length;//现在音符剩余长度 }; 然后我去网上毛(?)了一个c语言的队列文件,这里也附上链接:https://blog.csdn.net/qq_
[单片机]
<font color='red'>MSP430</font> 单片机内指针或结构体赋值为NULL,却有默认值的解决办法
如何使用MSP430的ADC测量模拟电压?
在所有的嵌入式应用中几乎都会用到的一个功能就是ADC模块(模数转换器)。这些模数转换器可以读取来自模拟传感器的电压,如温度传感器、倾斜传感器、电流传感器、柔性传感器等等。因此,在本教程中,我们将学习如何通过Energia IDE开发环境使用MSP430G2中的ADC来读取模拟电压。我们将一个小型电位器连接到MSP开发板,并在模拟引脚上施加一个变化的电压,然后读取电压并将其显示在串行监视器上。 ADC模块简介 连接以及编程MSP430G2以读取模拟电压的过程几乎不需要10分钟。但是,让我们先花点时间了解一下MSP开发板上的ADC模块,以便能够在其他的文章中高效使用它。 微控制器是一种数字式设备,也就意味着它只能识别1和0。但
[单片机]
如何使用<font color='red'>MSP430</font>的ADC测量模拟电压?
sed1335的msp430程序
MSP430子程序(液晶控制器子程序) //------------------------------------------------------------ // Control SED1335 // TIme 2003.01.15 // Copyright 重庆东电 // FuncTIon show //------------------------------------------------------------ #define WC_ADD XBYTE #define WD_ADD XBYTE #define RD_ADD XBYTE #define RB_ADD XBYTE void IN
[单片机]
MSP430x4xx系列微控制器的独特时钟设计
微控制器时钟系统的设计对于系统的全局性能是十分关键的。为了得到廉价、准确而稳定的时钟,在大多数情况下,可采用石英晶体或者是陶瓷振荡器作为参考时钟。这些器件的典型工作频率范围为100kHz到10MHz。然而,它们都有一些缺点,即振荡器消耗的电流会随振荡器的振荡频率的增加而增加,因此,若采用的石英晶体振荡器具有高Q值,那么,在系统上电后,将需要一个较长的时间才能使频率和幅度达到稳态,所以,石英晶体振荡器不能为中断提供快速的响应。 对于一个电池供电的系统,最基本的要求就是功耗要低。但同时又会出现一些相互矛盾的问题,因为采用低频时钟虽然可以达到节能和延长电池使用时间的要求,但采用高频时钟却可以实现对事件的快速反应,并增强处理突发
[单片机]
深入理解MSP430单片机IO
一、MSP430单片机的端口概述 P1~P6每组有8个I/O 口,P3,P4,P5,P6具有I/O,及其它片内外设功能,每组具有4个寄存器。P1,P2除具有上述功能外还具有中断能力,每组具有7个寄存器。 二、PX端口 1. P1,P2端口 (1)PxDIR 输入/输出方向寄存器(x代表1,2) 相互独立的八位分别定义了Px7~Px0,8个引脚的输入输出方向。 0 输入模式,只能读。 1 输出模式,可读可写。 8为在PUC后都被复位及置为0. Eg:P1DIR=0X0F; 这里0X0F为16进制表示,对应的二进制为00001111,即将P1DIR的高4位置0,低4位置1,也就是将P1.7,P1
[单片机]
MSP430和nRF905的无线数传系统设计
在特殊环境的数据测控应用中,无线数据传输已经越来越广泛地被运用,MSP430+nRF905的组合特别适合于低功耗,短距离(100-200m)、小数据量的无线数传系统,MSP430 CPU在低功耗应用方面有很大优势,nRF905无线收发芯片具有功耗低、控制简单、可自动处理字头和CRC校验的优点,两者结合组成的数传系统可以在很多产品中得到应用。 1 MSP430简介 MSP430是TI公司新推出的16位系列单片机,在电池供电的低功耗应用中具有独特的优势,其工作电压在1.8-3.6V之间,正常工作时功耗可控制在200μA左右,低功耗模式使可实现2μA甚至0.1μA的低功耗,MSP430具有非常高的集成度,通常在单个芯片上集成有12位的
[网络通信]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved