0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

ML51單片機(jī)通過(guò)ADC驅(qū)動(dòng)NTC傳感器測(cè)量溫度實(shí)例

Q4MP_gh_c472c21 ? 來(lái)源:嵌入式ARM ? 作者:嵌入式ARM ? 2021-01-26 16:58 ? 次閱讀

NTC傳感器如下圖所示,NTC的阻抗隨著溫度升高而降低。手冊(cè)給出了阻抗到溫度的轉(zhuǎn)換公式。

e9b777ae-5f64-11eb-8b86-12bb97331649.png

ea8815bc-5f64-11eb-8b86-12bb97331649.png



我們可以通過(guò)ML51單片機(jī)提供的12位ADC來(lái)讀取該串聯(lián)電阻的分壓,從而根據(jù)參考電阻計(jì)算出傳感器的阻抗,然后利用手冊(cè)的溫度計(jì)算公式計(jì)算出溫度。下圖是手冊(cè)給出的幾個(gè)常用計(jì)算常數(shù)B,可根據(jù)測(cè)量的范圍合理的選擇,用于提高測(cè)量精度。

ebdb1f4a-5f64-11eb-8b86-12bb97331649.png


實(shí)現(xiàn)溫度轉(zhuǎn)換

根據(jù)手冊(cè)提供的公式:R=R0 exp B(1/T - 1/T0);其中R是待測(cè)電阻,R0是某個(gè)溫度T0 K下的已知電阻,B是溫度傳感器常數(shù)。

通過(guò)以上公式反推T = temp=1/((1/T0)+(log(RT/R0)/B));

代入數(shù)據(jù)測(cè)試,例如T0=25攝氏度時(shí)候R0=10K歐姆,主意以上代入實(shí)際計(jì)算時(shí)候要使用絕對(duì)溫度,單位開爾文。

經(jīng)過(guò)測(cè)試上述公式可以完成驗(yàn)算,即,正確。

根據(jù)手冊(cè)該型號(hào)的B常數(shù)在25到50度之間采用3380,25到80之間采用3428,25到85之間采用3434,25到100攝氏度之間采用3455.

為了方便,本項(xiàng)目采用3455計(jì)算。

完成代碼如下所示。

//***********************************************************************************************************//  File Function: ML51 series ADC software trigger on shot demo code//***********************************************************************************************************#include "ML51.h"#include "math.h"#include "NTC.h"/******************************************************************************The main C function.  Program execution startshere after stack initialization.******************************************************************************/


void main (){  unsigned int ADCRESULT;        float Rval;        float temp;
/*For UART0 P0.5 TXD output setting* include gipo.c in Library for GPIO mode setting* include uart.c in Library Setting for UART0*/    MFP_P31_UART0_TXD;                              // UART0 TXD use P0.5    P31_QUASI_MODE;                                 // set P0.5  as Quasi mode for UART0 trasnfer    UART_Open(24000000,UART0_Timer3,115200);        // Open UART0 use timer1 as baudrate generate and baud rate = 115200    ENABLE_UART0_PRINTF;  /*  ADCS to trig ADC convert  * include adc.c in Library for ADC initial setting*/    ADC_Open(ADC_SINGLE,1);                                        //Enable ADC_CH4    ADC_ConvertTime(3,7);//* find ADC result in ADC interrupt*/                                                while(1)    {        set_ADCCON0_ADCS;                           // Software trig adc start        while((ADCCON0|CLR_BIT7)==CLR_BIT7);         // wait ADCF = 1;        ADCRESULT = (ADCRH<<4)+ADCRL;        printf("
 ADC result = %d  ", ADCRESULT);        Timer0_Delay(24000000,100,5000);                                Rval=1000*((ADCRESULT*6.2)/(4095-ADCRESULT));                                printf("
 Rval=%d Ohm",(unsigned int)Rval);                                temp=Res_to_Tem(Rval);                                printf("
 temp=%.2f",temp-K);                                printf("
----------------");                                           }  }

將阻抗轉(zhuǎn)換為溫度作為一個(gè)獨(dú)立的頭文件NTC.h
#define K 273.15#define T0 (25.0+K)#define R0 10000.0#define B 3455.0        
/*電阻值換算到溫度adc_val:NTC當(dāng)前的阻抗值,單位歐姆返回值:攝氏度*/
float Res_to_Tem(float adc_val){        float temp;        temp=1/((1/T0)+(log(adc_val/R0)/B));        return temp-K;}
這樣就可以直接調(diào)用得出攝氏度了。本例子,采用串口打印的測(cè)量結(jié)果如下圖所示。

eddbf206-5f64-11eb-8b86-12bb97331649.png

手冊(cè)還給出的查表方法,給出了幾個(gè)特殊點(diǎn),如下圖所示

f18adcd2-5f64-11eb-8b86-12bb97331649.png


繪制出曲線如下圖所示。


點(diǎn)評(píng):NTC測(cè)量溫度成本低,響應(yīng)迅速,只需要使用1路ADC通道即可。比數(shù)字類型的溫度計(jì)驅(qū)動(dòng)更加容易,使用更加靈活,還可以自己實(shí)現(xiàn)校準(zhǔn)功能。

責(zé)任編輯:xj

原文標(biāo)題:實(shí)用應(yīng)用案例:ML51單片機(jī)通過(guò)ADC驅(qū)動(dòng)NTC傳感器測(cè)量溫度

文章出處:【微信公眾號(hào):嵌入式ARM】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • NTC
    NTC
    +關(guān)注

    關(guān)注

    7

    文章

    402

    瀏覽量

    51985
  • adc
    adc
    +關(guān)注

    關(guān)注

    98

    文章

    6398

    瀏覽量

    543828
  • 51單片機(jī)
    +關(guān)注

    關(guān)注

    273

    文章

    5697

    瀏覽量

    123003
  • ML
    ML
    +關(guān)注

    關(guān)注

    0

    文章

    144

    瀏覽量

    34582

原文標(biāo)題:實(shí)用應(yīng)用案例:ML51單片機(jī)通過(guò)ADC驅(qū)動(dòng)NTC傳感器測(cè)量溫度

文章出處:【微信號(hào):gh_c472c2199c88,微信公眾號(hào):嵌入式微處理器】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    IGBT模塊NTC溫度傳感器測(cè)量方法

    采用模擬電路方式測(cè)量IGBT模塊NTC溫度傳感器溫度:這個(gè)基本的方法是基于一個(gè)分壓作為熱敏裝置
    的頭像 發(fā)表于 10-25 16:29 ?145次閱讀
    IGBT模塊<b class='flag-5'>NTC</b><b class='flag-5'>溫度</b><b class='flag-5'>傳感器</b>的<b class='flag-5'>測(cè)量</b>方法

    非接觸溫度傳感器如何測(cè)量內(nèi)部溫度?

      非接觸溫度傳感器,又稱為紅外溫度傳感器,是一種通過(guò)測(cè)量物體表面發(fā)射的紅外輻射來(lái)確定物體
    的頭像 發(fā)表于 10-23 15:52 ?134次閱讀

    51單片機(jī)驅(qū)動(dòng)

    電子發(fā)燒友網(wǎng)站提供《51單片機(jī)驅(qū)動(dòng).exe》資料免費(fèi)下載
    發(fā)表于 09-20 11:46 ?2次下載

    dht22溫度傳感器的原理及應(yīng)用

    傳感器內(nèi)部包含一個(gè)半導(dǎo)體濕度傳感器和一個(gè)NTC溫度傳感器。濕度傳感器
    的頭像 發(fā)表于 09-03 16:06 ?792次閱讀

    NTC溫度傳感器的工作原理和性能特點(diǎn)

    NTC溫度傳感器是一種基于負(fù)溫度系數(shù)(Negative Temperature Coefficient,簡(jiǎn)稱NTC)熱敏電阻的
    的頭像 發(fā)表于 08-07 16:03 ?3.7w次閱讀

    單片機(jī)如何使用超聲波傳感器進(jìn)行距離測(cè)量

    環(huán)境等優(yōu)點(diǎn)。本文將詳細(xì)介紹單片機(jī)如何使用超聲波傳感器進(jìn)行距離測(cè)量的原理、步驟及實(shí)現(xiàn)方法。 超聲波傳感器基本原理 超聲波是振動(dòng)頻率高于20kHz的機(jī)械波,具有頻率高、波長(zhǎng)短、方向性好等特
    的頭像 發(fā)表于 08-05 14:56 ?307次閱讀

    單片機(jī)編程實(shí)例介紹

    是指使用特定的編程語(yǔ)言編寫控制單片機(jī)工作的程序。 在本文中,將為您提供一些常見(jiàn)的單片機(jī)編程實(shí)例,包括基礎(chǔ)應(yīng)用、傳感器應(yīng)用、通信應(yīng)用等方面的案例。 一、基礎(chǔ)應(yīng)用 LED流水燈 流水燈是最
    的頭像 發(fā)表于 01-16 09:37 ?2538次閱讀

    基于51單片機(jī)的電機(jī)功率測(cè)量設(shè)計(jì)

    電子發(fā)燒友網(wǎng)站提供《基于51單片機(jī)的電機(jī)功率測(cè)量設(shè)計(jì).rar》資料免費(fèi)下載
    發(fā)表于 01-12 10:11 ?0次下載

    基于51單片機(jī)溫度報(bào)警系統(tǒng)設(shè)計(jì)

    電子發(fā)燒友網(wǎng)站提供《基于51單片機(jī)溫度報(bào)警系統(tǒng)設(shè)計(jì).rar》資料免費(fèi)下載
    發(fā)表于 01-12 09:50 ?20次下載

    基于51單片機(jī)的波形測(cè)量

    電子發(fā)燒友網(wǎng)站提供《基于51單片機(jī)的波形測(cè)量.rar》資料免費(fèi)下載
    發(fā)表于 01-12 09:10 ?12次下載

    基于51單片機(jī)的電機(jī)功率測(cè)量設(shè)計(jì)

    電子發(fā)燒友網(wǎng)站提供《基于51單片機(jī)的電機(jī)功率測(cè)量設(shè)計(jì).rar》資料免費(fèi)下載
    發(fā)表于 01-07 09:29 ?3次下載

    基于51單片機(jī)的波形測(cè)量設(shè)計(jì)

    電子發(fā)燒友網(wǎng)站提供《基于51單片機(jī)的波形測(cè)量設(shè)計(jì).rar》資料免費(fèi)下載
    發(fā)表于 01-07 09:22 ?10次下載

    基于51單片機(jī)的實(shí)時(shí)時(shí)鐘+溫度應(yīng)用設(shè)計(jì)

    基于51單片機(jī)的實(shí)時(shí)時(shí)鐘+溫度應(yīng)用設(shè)計(jì)(仿真)
    發(fā)表于 01-02 09:55 ?6次下載

    基于51單片機(jī)的水溫(油溫)可測(cè)液體溫度的控制設(shè)計(jì)

    基于51單片機(jī)的水溫(油溫)可測(cè)液體溫度的控制設(shè)計(jì)(實(shí)物)
    發(fā)表于 01-02 09:50 ?1次下載

    溫度傳感器(NTC)ADC轉(zhuǎn)換實(shí)驗(yàn)

    本次實(shí)驗(yàn)所用到的simulink模型如圖5.1所示,電路原圖如圖5.2所示,其中溫度傳感器在開發(fā)板中的位置如圖5.3所示,實(shí)驗(yàn)效果為讀取NTC溫度
    的頭像 發(fā)表于 11-29 16:26 ?2346次閱讀
    <b class='flag-5'>溫度</b><b class='flag-5'>傳感器</b>(<b class='flag-5'>NTC</b>)<b class='flag-5'>ADC</b>轉(zhuǎn)換實(shí)驗(yàn)