国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

STM32 熱敏電阻NTC的軟件設(shè)計(jì)(ADC采集)

這篇具有很好參考價(jià)值的文章主要介紹了STM32 熱敏電阻NTC的軟件設(shè)計(jì)(ADC采集)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

目錄

?

前言

一、查表函數(shù)

二、ADC采集? ? ? ?

三、查表

四、數(shù)據(jù)濾波


前言

記錄一些我在工作和學(xué)習(xí)過(guò)程中遇到的問(wèn)題。

NTC:在淘寶隨便買(mǎi)的

單片機(jī)型號(hào):STM32G030C8T6

目的:用單片機(jī)采集NTC溫度

代碼是小學(xué)生水平!

? ? ? ? 電路設(shè)計(jì)可以參考https://blog.csdn.net/qq_45217932/article/details/127513686?spm=1001.2014.3001.5501

一、查表函數(shù)

? ? ? ? NTC就是隨溫度變化阻值變化的傳感器,所以在硬件上只要計(jì)算出他現(xiàn)在是什么阻值就能得到他的溫度了,什么阻值對(duì)應(yīng)什么溫度。也就是阻值隨溫度變化的對(duì)照表。我在淘寶隨便買(mǎi)的隨便問(wèn)的,我買(mǎi)了兩個(gè)型號(hào)反正RT表是大差不差,可以參考一下。

熱敏電阻adc采樣電路,stm32,單片機(jī),嵌入式硬件

? ? ? ? ?得到RT表只是第一步,還要把你測(cè)量的溫度范圍對(duì)應(yīng)的阻值打到軟件上,這樣才能形成這個(gè)表,純手打的有沒(méi)有打錯(cuò)我也沒(méi)一個(gè)一個(gè)對(duì)比,反正用到現(xiàn)在也是沒(méi)出錯(cuò)就對(duì)了。

#define NTCTABNum 251

float NTCTAB_2[NTCTABNum] = {
	32.660,31.040,29.500,28.060,26.680,25.400,24.180,23.020,21.920,20.880,  				//0   -  
	19.900,18.970,18.090,17.260,16.460,15.710,15.000,14.320,13.680,13.070,  				//10  -  19
	12.490,11.940,11.420,10.920,10.450,10.000,7.574 ,9.166 ,8.778 ,8.408 ,	 				//20  -  29
	8.058 ,7.722 ,7.404 ,7.098 ,6.808 ,6.532 ,6.268 ,6.016 ,5.776 ,5.546 ,					//30  -  39
	5.326 ,5.118 ,4.918 ,4.726 ,4.544 ,4.368 ,4.202 ,4.042 ,3.888 ,3.742 ,					//40  -  49
	3.602 ,3.468 ,3.340 ,3.216 ,3.098 ,2.986 ,2.878 ,2.774 ,2.674 ,2.580 ,					//50  -  59
	2.488 ,2.400 ,2.316 ,2.234 ,2.158 ,2.082 ,2.012 ,1.942 ,1.876 ,1.813 ,					//60  -  69
	1.751 ,1.693 ,1.637 ,1.582 ,1.530 ,1.480 ,1.432 ,1.385 ,1.341 ,1.289 ,					//70  -  79
	1.256 ,1.216 ,1.178 ,1.141 ,1.105 ,1.071 ,1.038 ,1.006 ,0.975 ,0.9452,					//80  -  89
	0.9164,0.8888,0.862 ,0.8364,0.8114,0.7874,0.7642,0.7418,0.7202,0.6994,					//90  -  99
};

二、ADC采集? ? ? ?

????????在介紹采集之前,我想說(shuō)一下關(guān)于ADC+DMA,我想大家大部分都是用的這個(gè)采集的,我現(xiàn)在還是會(huì)用的階段。我就簡(jiǎn)單說(shuō)下我的理解吧,ADC全稱Analog-to-Digital Converter,模數(shù)轉(zhuǎn)換器顧名思義將模擬量轉(zhuǎn)換成數(shù)字量,在這里就是我們采集到的溫度(模擬量)經(jīng)過(guò)單片機(jī)的ADC轉(zhuǎn)換成0和1的數(shù)字量進(jìn)行數(shù)據(jù)分析。

? ? ? ? 而DMA全稱Direct Memory Access,直接儲(chǔ)存器訪問(wèn),在這里配合ADC實(shí)現(xiàn)了將ADC采集到的數(shù)據(jù)通過(guò)DMA傳輸?shù)街付ǖ膬?nèi)存空間,我們程序直接訪問(wèn)這個(gè)內(nèi)存空間就可以得到想要的數(shù)據(jù)了。這個(gè)挺重要的哦,新手不知道怎么配置移步百度一下先,后面我把他了解透透了也會(huì)出一個(gè)ADC+DMA的博文的。

? ? ? ? 好的,那么我們保證ADC+DMA配置順利,要準(zhǔn)備開(kāi)始采集了 。關(guān)于NTC的采集硬件設(shè)計(jì)在我之前的博文有更過(guò)大家可以參考一些,今天主要介紹軟件設(shè)計(jì)。

? ? ? ? 來(lái)!ADC采集數(shù)據(jù),并轉(zhuǎn)換成電阻

/***********************************************************************
功  能:將ADC采到的值轉(zhuǎn)換成電阻
參  數(shù):channel:指定的ADC通道
返回值:電阻值
*************************************************************************/
float GetResValue(void)
{
	
	HAL_ADCEx_Calibration_Start(&hadc1);  
	HAL_ADC_Start_DMA(&hadc1, (uint32_t*)ADC_Value, 1);  //開(kāi)啟ADC DMA傳輸 

    float 	adc_v,res;
	adc_v 	= (float)(ADC_Value[0]&0xFFF)*3.275/4096;  //將采集到值轉(zhuǎn)換成電壓
	res 	= 10 /( 4.096/adc_v - 1);	//電壓轉(zhuǎn)換成電阻
	return res;
}

三、查表

得到電阻值就可以對(duì)照查溫度了:

/***********************************************************************
功  能:查表函數(shù)
參  數(shù):1.tableNum :表格的元素的個(gè)數(shù)  
		2.*p:表格
返回值:當(dāng)前阻值下的溫度值
*************************************************************************/

float GetADCTemperature(float *p,uint8_t tableNum)
{
	uint8_t	i,index	= 0;
	float v1,v2,v3;
	float tem;
	float resdata;
	resdata = GetResValue();  //電阻值
    /*查表*/
	for(i=0;i<(tableNum-1);i++)  
	{
		if((resdata<p[i]) && (resdata>p[i+1]))
			index = i;	
	}
	v1 	= p[index] - resdata;
	v2 	= p[index] - p[index+1];
	v3 	= v1/v2;
	tem = v3+index;

	return tem;
}

四、數(shù)據(jù)濾波

????????濾波還是很有必要的,我用的是比較傳統(tǒng)的濾波方式:掐頭去尾取平均值。經(jīng)過(guò)濾波和不經(jīng)過(guò)濾波數(shù)據(jù)還是區(qū)別蠻大的。


/***********************************************************************
功  能:掐頭去尾取平均值
參  數(shù):無(wú)  
返回值:平均值

*************************************************************************/
#define NUM 30
#define NTCTABNum 102   //表內(nèi)數(shù)據(jù)個(gè)數(shù)
int	ave_temp1[NUM+1];

int GetMedian_Temperature(void)
{
	int i,j;
	int tmp;
    int ave_temp;
	uint32_t    sum1=0;
	for(i=0;i<NUM;i++)
	{
		ave_temp1[i] = GetADCTemperature(NTCTAB_1,NTCTABNum)*10;      //將測(cè)得的溫度值放大10倍存在int型數(shù)組中,方便后面上傳有人云
//		HAL_Delay(100);
	}

	for(i=0;i<NUM-1;i++)		//排序
	{
		for(j=0;j<(NUM)-i;j++)
		{
			if(ave_temp1[j]<ave_temp1[j+1])
			{
				tmp 			= ave_temp1[j];
				ave_temp1[j] 	= ave_temp1[j+1];
				ave_temp1[j+1] 	= tmp;
			}
		}
	}

	for(i=5;i<NUM-5;i++)	//掐頭去尾取平均值
	{
		sum1 += ave_temp1[i];
	}
	ave_temp = sum1/(NUM-10); 
	
	return ave_temp;
}

? ? ? ? 我的數(shù)據(jù)最后是需要上云的,所以對(duì)數(shù)據(jù)要求有些特殊,大家如果也有特殊的顯示就要考慮數(shù)據(jù)的格式了。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-534311.html

到了這里,關(guān)于STM32 熱敏電阻NTC的軟件設(shè)計(jì)(ADC采集)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 熱敏電阻NTC103、PT100溫度計(jì)算公式

    熱敏電阻NTC103、PT100溫度計(jì)算公式

    NTC 熱敏電阻溫度計(jì)算公式:Rt = R *EXP(B*(1/T1-1/T2)) ? ? ? ? (1) T1和T2指的是K度,即開(kāi)爾文溫度。 ? ? ? ? (2) Rt 是熱敏電阻在T1溫度下的阻值。 ????????(3) R是熱敏電阻在T2常溫下的標(biāo)稱阻值。10K的熱敏電阻25℃的值為10K(即R=10K)。 ????????(4) T2 = (273.15+25)。 ? ? ? ? (

    2024年02月06日
    瀏覽(26)
  • 功率型熱敏電阻(NTC)的主要參數(shù)及深入介紹

    功率型熱敏電阻(NTC)的主要參數(shù)及深入介紹

    ? ? ? RT指在規(guī)定溫度 T 時(shí),采用引起電阻值變化相對(duì)于總的測(cè)量誤差來(lái)說(shuō)可以忽略不計(jì)的測(cè)量功率測(cè)得的電阻值。 ? ? ??這個(gè)被包含于上一條,要理解清楚。也叫標(biāo)稱電阻值,根據(jù)國(guó)標(biāo)規(guī)定,NTC熱敏電阻器在25℃環(huán)境溫度中所測(cè)得的零功率電阻值并標(biāo)志在熱敏電阻器上面。

    2024年02月11日
    瀏覽(23)
  • 單片機(jī)測(cè)量NTC熱敏電阻溫度的方法(含程序代碼)

    單片機(jī)測(cè)量NTC熱敏電阻溫度的方法(含程序代碼)

    NTC是負(fù)溫度系數(shù)熱敏電阻,隨著溫度的升高,NTC的阻值會(huì)呈非線性的下降。 這里采用100k 3950的熱敏電阻,100k代表的是在25℃下的標(biāo)準(zhǔn)阻值,3950是熱敏電阻的B值,B值與電阻溫度系數(shù)正相關(guān),也就是說(shuō)B值越大,其電阻溫度系數(shù)也就越大。 網(wǎng)上查找我們所選用NTC對(duì)應(yīng)的R-T對(duì)照表

    2024年02月11日
    瀏覽(21)
  • 51 Proteus仿真NTC熱敏電阻溫度測(cè)量溫度控制系統(tǒng)-0016

    51 Proteus仿真NTC熱敏電阻溫度測(cè)量溫度控制系統(tǒng)-0016

    51 Proteus仿真NTC熱敏電阻溫度測(cè)量溫度控制系統(tǒng)-0016 Proteus仿真小實(shí)驗(yàn): 51 Proteus仿真NTC熱敏電阻溫度測(cè)量溫度控制系統(tǒng)-0016 功能: 硬件組成:51單片機(jī) +4位數(shù)碼管+NTC熱敏電阻+ADC0809+24C02存儲(chǔ)器+按鍵+蜂鳴器+電機(jī) 1.通過(guò)ADC0809測(cè)量出NTC熱敏電阻的阻值,然后根據(jù)阻值計(jì)算出溫度。

    2024年02月08日
    瀏覽(19)
  • 基于單片機(jī)熱敏電阻PT100溫度控制系統(tǒng)設(shè)計(jì)

    基于單片機(jī)熱敏電阻PT100溫度控制系統(tǒng)設(shè)計(jì)

    ** 單片機(jī)設(shè)計(jì)介紹,基于單片機(jī)熱敏電阻PT100溫度控制系統(tǒng)設(shè)計(jì) ??基于單片機(jī)熱敏電阻PT100的溫度控制系統(tǒng)設(shè)計(jì)是一個(gè)綜合了硬件和軟件設(shè)計(jì)的工程任務(wù)。以下是對(duì)該設(shè)計(jì)概要的詳細(xì)描述: 一、系統(tǒng)概述 該溫度控制系統(tǒng)利用熱敏電阻PT100作為溫度傳感器,通過(guò)單片機(jī)進(jìn)行數(shù)

    2024年04月24日
    瀏覽(26)
  • STM32--ADC數(shù)值采樣/附ADC采集熱敏傳感器使用

    STM32--ADC數(shù)值采樣/附ADC采集熱敏傳感器使用

    目錄 一丶ADC介紹 二丶ADC工作原理及管腳分布 三丶代碼部分詳解 (一)庫(kù)函數(shù)介紹 (二)代碼部分整合 ????????ADC模塊中文名為模擬/數(shù)字轉(zhuǎn)換器,是12位逐次逼近型的模擬數(shù)字轉(zhuǎn)換器,一般用于數(shù)值的采樣 ??可以將引腳上連續(xù)變化的模擬電壓轉(zhuǎn)換為內(nèi)存中存儲(chǔ)的數(shù)字變

    2024年02月03日
    瀏覽(27)
  • 【GUI】使用PID控制器進(jìn)行臺(tái)式過(guò)程控制實(shí)驗(yàn),以保持熱敏電阻的溫度(Matlab代碼實(shí)現(xiàn))

    【GUI】使用PID控制器進(jìn)行臺(tái)式過(guò)程控制實(shí)驗(yàn),以保持熱敏電阻的溫度(Matlab代碼實(shí)現(xiàn))

    目錄 ??1 概述 ??2 運(yùn)行結(jié)果 ??3?參考文獻(xiàn) ??4 Matlab代碼、操作說(shuō)明 本實(shí)驗(yàn)是溫度控制的反饋控制應(yīng)用。特別是,本實(shí)驗(yàn)講解: 手動(dòng)和自動(dòng)控制的區(qū)別 生成動(dòng)態(tài)數(shù)據(jù)的 步進(jìn)測(cè)試 擬合動(dòng)態(tài)數(shù)據(jù)以構(gòu)建簡(jiǎn)單的一階加死區(qū)時(shí)間 (FOPDT) 模型 從標(biāo)準(zhǔn)調(diào)整規(guī)則 獲取 PID 控制的 參數(shù)

    2024年02月15日
    瀏覽(23)
  • STM32開(kāi)發(fā)(十二)STM32F103 功能應(yīng)用 —— NTC 溫度采集

    ??《上一篇》 ???《主目錄》 ???《下一篇》 了解STM32 片內(nèi)資源ADC。本實(shí)驗(yàn)是基于STM32F103開(kāi)發(fā) 實(shí)現(xiàn) NTC溫度采集。 NTC溫度采集實(shí)現(xiàn): 1、使用查表方式??蓞⒖?/p>

    2024年02月03日
    瀏覽(30)
  • [嵌入式軟件][啟蒙篇][仿真平臺(tái)] STM32F103實(shí)現(xiàn)串口輸出輸入、ADC采集

    [嵌入式軟件][啟蒙篇][仿真平臺(tái)] STM32F103實(shí)現(xiàn)串口輸出輸入、ADC采集

    上一篇:[嵌入式軟件][啟蒙篇][仿真平臺(tái)] STM32F103實(shí)現(xiàn)LED、按鍵 學(xué)C語(yǔ)言時(shí),使用的printf()函數(shù),就是通過(guò)串口打印出來(lái)的。 跟外部器件通信,比如GPS模塊、藍(lán)牙模塊、wifi模塊; 兩個(gè)開(kāi)發(fā)板之間通信,制定私有協(xié)議。 PC電腦通信,使用上位機(jī)顯示數(shù)據(jù)或控制下位機(jī)。 操作:打

    2024年01月22日
    瀏覽(107)
  • Stm32_標(biāo)準(zhǔn)庫(kù)_11_ADC_光敏&熱敏傳感器_測(cè)數(shù)值

    Stm32_標(biāo)準(zhǔn)庫(kù)_11_ADC_光敏&熱敏傳感器_測(cè)數(shù)值

    在測(cè)量光敏傳感器數(shù)值得基礎(chǔ)上手動(dòng)將通道改成熱敏傳感器通道即可 由于溫度傳感器的測(cè)量范圍是-20 ~ 105攝氏度,所以輸出溫度得考慮帶上符號(hào)這就需要在原有輸出光照強(qiáng)度代碼的基礎(chǔ)上新添加幾個(gè)函數(shù) 函數(shù)1: 在獲取模擬電壓函數(shù)最開(kāi)始寫(xiě)入通道函數(shù)方便接入GPIO_1或GPIO_

    2024年02月19日
    瀏覽(24)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包