嵌入式课程设计温度传感器课程设计.doc
嵌入式系统原理与应用课程设计温度传感器设计与应用 班 级:光信息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<t<0 Rt=R01+At+Bt*t+C(t-100)t*t*t (1)0t<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 参考电源电路二、 恒流源测温电路:恒流源式测温的典型应用电路如图 3 所示。测温原理:通过运放 U1A 将基准电压 3.3V 转换为恒流源,电流流过 Pt100 时在其上产生压降,再通过运放 U1B 将该微弱压降信号放大(图中放大倍数为 10),即输出期望的电压信号,该信号可直接连 AD 转换芯片。根据虚地概念“工作于线性范围内的理想运放的两个输入端同电位”,运放U1A的“ +”端和“ -”端电位V+V-3.3V;假设运放U1A的输出脚 1 对地电压为Vo,根据虚断概念,( 0-V-) /R1+( Vo-V-) /RPt1000,因此电阻Pt100 上的压降VPt100Vo-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 转换芯片。差动放大电路中 R2R3、 R4R5、放大倍数R5/R3=R4/R2=10,运放采用单一 5V供电。在本次课程设计中,差动放大电路采用负反馈电路。电路图如图:(4) 低通滤波电路。通过一个低通滤波电路,过滤掉其中的交流成分。IN4733是一个稳压二极管,可以稳定输出电压。使电压保持稳定。第三章 软件部分#include "delay.h"#include "sys.h"#include "usart.h"#include "timer.h"#include "adc.h" int main(void) u16 adcx;float temp,t;SystemInit();delay_init(72); /延时初始化NVIC_Configuration(); uart_init(9600);Adc_Init(); while(1)adcx=Get_Adc(ADC_Channel_0);/printf("%dn",adcx);temp=(float)adcx*(3.3/4096); t=(temp-1.0)*256;printf("%fn",t);delay_ms(250); #include "adc.h"void Adc_Init(void) ADC_InitTypeDef ADC_InitStructure; GPIO_InitTypeDef GPIO_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);/使能指定的ADC1ADC_ResetCalibration(ADC1);/重置指定的ADC1的校准寄存器while(ADC_GetResetCalibrationStatus(ADC1);/获取ADC1重置校准寄存器的状态,设置状态则等待ADC_StartCalibration(ADC1);/开始指定ADC1的校准状态while(ADC_GetCalibrationStatus(ADC1);/获取指定ADC1的校准程序,设置状态则等待ADC_SoftwareStartConvCmd(ADC1, ENABLE);/使能指定的ADC1的软件转换启动功能 /获得ADC值/ch:通道值 03u16 Get_Adc(u8 ch) /设置指定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 );/等待转换结束return ADC_GetConversionValue(ADC1);/返回最近一次ADC1规则组的转换结果#include "delay.h" static u8 fac_us=0;/us延时倍乘数static u16 fac_ms=0;/ms延时倍乘数void delay_init(u8 SYSCLK)/SysTick->CTRL&=0xfffffffb;/bit2清空,选择外部时钟 HCLK/8SysTick_CLKSourceConfig(SysTick_CLKSource_HCLK_Div8);/选择外部时钟 HCLK/8fac_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 void delay_ms(u16 nms) u32 temp; SysTick->LOAD=(u32)nms*fac_ms;/时间加载(SysTick->LOAD为24bit)SysTick->VAL =0x00; /清空计数器SysTick->CTRL=0x01 ; /开始倒数 dotemp=SysTick->CTRL;while(temp&0x01&&!(temp&(1<<16);/等待时间到达 SysTick->CTRL=0x00; /关闭计数器SysTick->VAL =0X00; /清空计数器 /延时nus/nus为要延时的us数. void delay_us(u32 nus)u32 temp; SysTick->LOAD=nus*fac_us; /时间加载 SysTick->VAL=0x00; /清空计数器SysTick->CTRL=0x01 ; /开始倒数 dotemp=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 实物图