嵌入式课程设计温度传感器课程设计 2.docx

上传人:b****5 文档编号:7474226 上传时间:2023-01-24 格式:DOCX 页数:12 大小:633.16KB
下载 相关 举报
嵌入式课程设计温度传感器课程设计 2.docx_第1页
第1页 / 共12页
嵌入式课程设计温度传感器课程设计 2.docx_第2页
第2页 / 共12页
嵌入式课程设计温度传感器课程设计 2.docx_第3页
第3页 / 共12页
嵌入式课程设计温度传感器课程设计 2.docx_第4页
第4页 / 共12页
嵌入式课程设计温度传感器课程设计 2.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

嵌入式课程设计温度传感器课程设计 2.docx

《嵌入式课程设计温度传感器课程设计 2.docx》由会员分享,可在线阅读,更多相关《嵌入式课程设计温度传感器课程设计 2.docx(12页珍藏版)》请在冰豆网上搜索。

嵌入式课程设计温度传感器课程设计 2.docx

嵌入式课程设计温度传感器课程设计2

 

嵌入式系统原理与应用

课程设计

—温度传感器设计与应用

 

 

班级:

光信息121802班

姓名:

*****

学号:

2012180102##

指导教师:

邱***

日期:

2015.7.13

 

课程设计任务书

班级:

************

姓名:

****

设计周数:

1学分:

1

指导教师:

邱选兵

设计题目:

温度传感器的设计与应用

设计目的及要求:

目的:

1.熟悉手工焊锡的常用工具的使用及其维护与修理。

2.基本掌握手工电烙铁的焊接技术,能够独立的完成简单电子产品的安装与焊接。

熟悉电子产品的安装工艺的生产流程。

3.熟悉印制电路板设计的步骤和方法,熟悉手工制作印制电板的工艺流程,能够根据电路原理图,元器件实物设计并制作印制电路板。

4.熟悉常用电子器件的类别、型号、规格、性能及其使用范围,能查阅有关的电子器件图书。

5.能够正确识别和选用常用的电子器件,并且能够熟练使用普通万用表和数字万用表。

6.各种外围器件和传感器的应用;

7.了解电子产品的焊接、调试与维修方法。

要求:

1.根据题目进行调研,确定实施方案,购买元件,并绘制原理图,焊接电路板,调试程序;

2.焊接和写stm32程序及调试,提交课程设计系统(包括硬件和软件);.

3.完成课程设计报告

设计内容和方法:

掌握pt100的基本特点和原理并利用pt100来设计一个温度传感器,来实现对实时温度的测量。

方法:

设计好电路图,再用电烙铁将实物焊接到实验电路板上,通过串口输出显示相应的温度。

 

目录

第一章绪论4

第二章硬件部分5

第三章软件部分8

第四章总结11

参考文献12

附录13

附录1原理图13

附录2实物图14

 

第一章绪论

温度是表征物体冷热程度的物理量、是自然界中和人类打交道最多的两个物理参数,无论是在生产实验场所,还是在居住休闲场所,温湿度的采集或控制都十分频繁和重要,而且,网络化远程采集温湿度并报警是现代科技发展的一个必然趋势。

温度的测量及控制对保证产品质量、提高生产效率、节约能源、生产安全、促进国民经济的发展起到非常重要的作用。

由于温度测量的普遍性,温度传感器的数量在各种传感器中居首位,约占50%。

近年来,我国工业现代化的进程和电子信息产业连续的高速增长,带动了传感器市场的快速上升。

温度传感器作为传感器中的重要一类,占整个传感器总需求量的40%以上。

温度传感器是利用NTC的阻值随温度变化的特性,将非电学的物理量转换为电学量,从而可以进行温度精确测量与自动控制的半导体器件。

温度传感器用途十分广阔,可用作温度测量与控制、温度补偿、流速、流量和风速测定、液位指示、温度测量、紫外光和红外光测量、微波功率测量等而被广泛的应用于彩电、电脑彩色显示器、切换式电源、热水器、电冰箱、厨房设备、空调、汽车等领域。

近年来汽车电子、消费电子行业的快速增长带动了我国温度传感器需求的快速增长。

本次设计采用铂电阻pt100,pt100是铂热电阻,它的阻值会随着温度的变化而改变。

PT后的100即表示它在0℃时阻值为100欧姆,在100℃时它的阻值约为138.5欧姆。

它的工作原理:

当PT100在0摄氏度的时候他的阻值为100欧姆,它的阻值会随着温度上升而成近似匀速的增长。

但他们之间的关系并不是简单的正比的关系,而更应该趋近于一条抛物线。

铂电阻的阻值随温度的变化而变化的计算公式:

-200

(1)

0≤t<850℃Rt=R0(1+At+Bt2)

(2)

 

第二章硬件部分

温度传感器的电路模块

(1)参考电源。

(2)恒流源测温电路。

(3)信号放大电路。

(4)低通滤波电路。

一、参考电源电路:

对于整个设计而言,首要问题就是解决系统的供电问题。

要求电源模块稳定可靠。

在本课程设计中,电源供电模块的电源可以通过一个TL431和一个电位器VR1(502)调节产生一个3.3v的稳定的参考电源。

图1为参考电源电路。

TL431是可控精密稳压源。

它的输出电压用两个电阻就可以任意的设置到从Verf(2.5V)到36V范围内的任何值。

该器件的典型动态阻抗为0.2Ω,在很多应用中用它代替稳压二极管,例如,数字电压表,运放电路,可调压电源,开关电源等。

TL431是由德州仪器生产,所谓TL431就是一个有良好的热稳定性能的三端可调分流基准源。

它的输出电压用两个电阻就可以任意地设置到从Vref(2.5V)到36V范围内的任何值(如图1)。

该器件的典型动态阻抗为0.2Ω,在很多应用中可以用它代替齐纳二极管,例如,数字电压表,运放电路、可调压电源,开关电源等等。

 

图1参考电源电路

 

2、恒流源测温电路:

恒流源式测温的典型应用电路如图3所示。

测温原理:

通过运放U1A将基准电压3.3V转换为恒流源,电流流过Pt100时在其上产生压降,再通过运放U1B将该微弱压降信号放大(图中放大倍数为10),即输出期望的电压信号,该信号可直接连AD转换芯片。

根据虚地概念“工作于线性范围内的理想运放的两个输入端同电位”,运放U1A的“+”端和“-”端电位V+=V-=3.3V;假设运放U1A的输出脚1对地电压为Vo,根据虚断概念,(0-V-)/R1+(Vo-V-)/RPt100=0,因此电阻Pt100上的压降VPt100=Vo-V-=V-*RPt100/R1,因V-和R1均不变,因此图3虚线框内的电路等效为一个恒流源流过一个Pt100电阻,电流大小为V-/R1,Pt100上的压降仅和其自身变化的电阻值有关。

其中R1=3.3K欧,故VPt100=RPT100/1000,再经过放大电路,放大倍数为10倍得到最终的V=RPT100/100,即RPT100=V*100,再根据PT100温度和电阻的近似关系T=(RPT100-100)*2.56,得到T=(V-1)*256,这就是最终输出电压和温度的关系式。

恒流源接法

三、信号放大电路

电桥的压差信号经过运放LM358放大后输出期望大小的电压信号,该信号可直接连AD转换芯片。

差动放大电路中R2=R3、R4=R5、放大倍数=R5/R3=R4/R2=10,运放采用单一5V供电。

在本次课程设计中,差动放大电路采用负反馈电路。

电路图如图:

 

(4)低通滤波电路。

通过一个低通滤波电路,过滤掉其中的交流成分。

IN4733是一个稳压二极管,可以稳定输出电压。

使电压保持稳定。

第三章软件部分

#include"delay.h"

#include"sys.h"

#include"usart.h"

#include"timer.h"

#include"adc.h"

intmain(void)

{

u16adcx;

floattemp,t;

SystemInit();

delay_init(72);//延时初始化

NVIC_Configuration();

uart_init(9600);

Adc_Init();

while

(1)

{

adcx=Get_Adc(ADC_Channel_0);

//printf("%d\n",adcx);

temp=(float)adcx*(3.3/4096);

t=(temp-1.0)*256;

printf("%f\n",t);

delay_ms(250);

}

}

#include"adc.h"

voidAdc_Init(void)

{

ADC_InitTypeDefADC_InitStructure;

GPIO_InitTypeDefGPIO_InitStructure;

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_ADC1,ENABLE);//使能ADC1通道时钟

RCC_ADCCLKConfig(RCC_PCLK2_Div6);//72M/6=12,ADC最大时间不能超过14M

//PA0/1/2/3作为模拟通道输入引脚

GPIO_InitStructure.GPIO_Pin=GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3;

GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AIN;//模拟输入引脚

GPIO_Init(GPIOA,&GPIO_InitStructure);

ADC_DeInit(ADC1);//将外设ADC1的全部寄存器重设为缺省值

ADC_InitStructure.ADC_Mode=ADC_Mode_Independent;

//ADC工作模式:

ADC1和ADC2工作在独立模式

ADC_InitStructure.ADC_ScanConvMode=DISABLE;/

//模数转换工作在单通道模式

ADC_InitStructure.ADC_ContinuousConvMode=DISABLE;

//模数转换工作在单次转换模式

ADC_InitStructure.ADC_ExternalTrigConv=ADC_ExternalTrigConv_None;//转换由软件而不是外部触发启动

ADC_InitStructure.ADC_DataAlign=ADC_DataAlign_Right;

//ADC数据右对齐

ADC_InitStructure.ADC_NbrOfChannel=1;

//顺序进行规则转换的ADC通道的数目

ADC_Init(ADC1,&ADC_InitStructure);

//根据ADC_InitStruct中指定的参数初始化外设ADCx的寄存器

ADC_Cmd(ADC1,ENABLE);//使能指定的ADC1

ADC_ResetCalibration(ADC1);//重置指定的ADC1的校准寄存器

while(ADC_GetResetCalibrationStatus(ADC1));

//获取ADC1重置校准寄存器的状态,设置状态则等待

ADC_StartCalibration(ADC1);

//开始指定ADC1的校准状态

while(ADC_GetCalibrationStatus(ADC1));

//获取指定ADC1的校准程序,设置状态则等待

ADC_SoftwareStartConvCmd(ADC1,ENABLE);

//使能指定的ADC1的软件转换启动功能

}

//获得ADC值

//ch:

通道值0~3

u16Get_Adc(u8ch)

{

//设置指定ADC的规则组通道,设置它们的转化顺序和采样时间

ADC_RegularChannelConfig(ADC1,ch,1,ADC_SampleTime_239Cycles5);//ADC1,ADC通道3,规则采样顺序值为1,采样时间为239.5周期

ADC_SoftwareStartConvCmd(ADC1,ENABLE);

//使能指定的ADC1的软件转换启动功能

while(!

ADC_GetFlagStatus(ADC1,ADC_FLAG_EOC));//等待转换结束

returnADC_GetConversionValue(ADC1);

//返回最近一次ADC1规则组的转换结果

}

#include"delay.h"

staticu8fac_us=0;//us延时倍乘数

staticu16fac_ms=0;//ms延时倍乘数

voiddelay_init(u8SYSCLK)

{

//SysTick->CTRL&=0xfffffffb;//bit2清空,选择外部时钟HCLK/8

SysTick_CLKSourceConfig(SysTick_CLKSource_HCLK_Div8);

//选择外部时钟HCLK/8

fac_us=SYSCLK/8;

fac_ms=(u16)fac_us*1000;

}

//延时nms

//注意nms的范围

//SysTick->LOAD为24位寄存器,所以,最大延时为:

//nms<=0xffffff*8*1000/SYSCLK

//SYSCLK单位为Hz,nms单位为ms

//对72M条件下,nms<=1864

voiddelay_ms(u16nms)

{

u32temp;

SysTick->LOAD=(u32)nms*fac_ms;//时间加载(SysTick->LOAD为24bit)

SysTick->VAL=0x00;//清空计数器

SysTick->CTRL=0x01;//开始倒数

do

{

temp=SysTick->CTRL;

}

while(temp&0x01&&!

(temp&(1<<16)));//等待时间到达

SysTick->CTRL=0x00;//关闭计数器

SysTick->VAL=0X00;//清空计数器

}

//延时nus

//nus为要延时的us数.

voiddelay_us(u32nus)

{

u32temp;

SysTick->LOAD=nus*fac_us;//时间加载

SysTick->VAL=0x00;//清空计数器

SysTick->CTRL=0x01;//开始倒数

do

{

temp=SysTick->CTRL;

}

while(temp&0x01&&!

(temp&(1<<16)));//等待时间到达

SysTick->CTRL=0x00;//关闭计数器

SysTick->VAL=0X00;//清空计数器

}

 

第四章总结

一、设计及调试的注意点

1.电压基准源可以采用TL431按图1的电路产生可调的。

2.等效恒流源输出的电流不能太大,以不超过1mA为准,以免电流大使得Pt100电阻

自身发热造成测量温度不准确,试验证明,电流大于1.5mA将会有较明显的影响。

3.运放采用单一5V供电,如果测量的温度波动比较大,将运放的供电改为±15V双电源供电会有较大改善。

4.电阻R2、R3的电阻值取得足够大,以增大运放的U1B的输入阻抗。

二、收获

我们这次课程设计则选用了热电阻pt100,第一次我采用了桥电路的接法,但是电路很难达到平衡,而且其中一个电阻要用100欧德精密电阻,我只是用了一般的100欧电阻,到最后一直调不出来,误差一直在几度,最后选用了恒流源接法,通过调节3.3v基准电压,来获得一个恒流源,并且得到电阻,输出电压以及温度的公式。

同时,经过这些天的实际动操作,使我认识到看似简单的问题,真正做起来的时候,如果不认真、不按照确定的步骤进行,会产生很多问题比如在做的时候,忽视了人家说的100欧的精密电阻的作用,没有深入分析为什么使用精密电阻,现在知道公式T=(RT100-100)*2.56,即PT100的阻值每变化1欧,温度输出就会变化2.56摄氏度,而一般的电阻都有5%的误差,即100欧的就会产生5欧的误差,而5欧的误差就会使温度相差10℃左右,因此必须选用精密电阻。

根据在动手操作时必须弄清每一部的原理和方法,一定要养成良好的做事风格和习惯。

 

参考文献:

1.陈书旺,张秀清,董建彬编,传感器应用及电路设计,北京,化学工业出版社,2008。

2.陈杰,黄鸿编,传感器与检测技术,北京,高等教育出版社,2002。

3.曾光宇,杨洪,李博,王浩全编,现代传感器技术与应用基础,北京,北京理工大学出版社,2006。

 

附录

附录1原理图

附录2实物图

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1