嵌入式课程设计温度传感器课程设计2.docx
- 文档编号:5289918
- 上传时间:2022-12-14
- 格式:DOCX
- 页数:11
- 大小:632.69KB
嵌入式课程设计温度传感器课程设计2.docx
《嵌入式课程设计温度传感器课程设计2.docx》由会员分享,可在线阅读,更多相关《嵌入式课程设计温度传感器课程设计2.docx(11页珍藏版)》请在冰豆网上搜索。
嵌入式课程设计温度传感器课程设计2
嵌入式系统原理与应用
课程设计
—温度传感器设计与应用
班级:
光信息121802班
姓名:
*****
学号:
2012180102##
指导教师:
邱***
日期:
2015.7.13
课程设计任务书
班级:
************
姓名:
****
设计周数:
1学分:
1
指导教师:
邱选兵
设计题目:
温度传感器的设计与应用
设计目的及要求:
目的:
1.熟悉手工焊锡的常用工具的使用及其维护与修理。
2.基本掌握手工电烙铁的焊接技术,能够独立的完成简单电子产品的安装与焊接。
熟悉电子产品的安装工艺的生产流程。
3.熟悉印制电路板设计的步骤和方法,熟悉手工制作印制电板的工艺流程,能够根据电路原理图,元器件实物设计并制作印制电路板。
4.熟悉常用电子器件的类别、型号、规格、性能及其使用范围,能查阅有关的电子器件图书。
5.能够正确识别和选用常用的电子器件,并且能够熟练使用普通万用表和数字万用表。
6.各种外围器件和传感器的应用;
7.了解电子产品的焊接、调试与维修方法。
要求:
1.根据题目进行调研,确定实施方案,购买元件,并绘制原理图,焊接电路板,调试程序;
2.焊接和写stm32程序及调试,提交课程设计系统(包括硬件和软件);.
3.完成课程设计报告
设计内容和方法:
掌握pt100的基本特点和原理并利用pt100来设计一个温度传感器,来实现对实时温度的测量。
方法:
设计好电路图,再用电烙铁将实物焊接到实验电路板上,通过串口输出显示相应的温度。
第一章绪论
温度是表征物体冷热程度的物理量、是自然界中和人类打交道最多的两个物理参数,无论是在生产实验场所,还是在居住休闲场所,温湿度的采集或控制都十分频繁和重要,而且,网络化远程采集温湿度并报警是现代科技发展的一个必然趋势。
温度的测量及控制对保证产品质量、提高生产效率、节约能源、生产安全、促进国民经济的发展起到非常重要的作用。
由于温度测量的普遍性,温度传感器的数量在各种传感器中居首位,约占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实物图
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 嵌入式 课程设计 温度传感器
![提示](https://static.bdocx.com/images/bang_tan.gif)