實(shí)驗(yàn)環(huán)境
Matlab版本: 2021b
操作系統(tǒng) :Win10專業(yè)版
實(shí)驗(yàn)內(nèi)容 :讀取溫度傳感器電壓值并轉(zhuǎn)換成實(shí)際℃溫度顯示出來
模型與原理圖
本次實(shí)驗(yàn)所用到的simulink模型如圖5.1所示,電路原圖如圖5.2所示,其中溫度傳感器在開發(fā)板中的位置如圖5.3所示,實(shí)驗(yàn)效果為讀取NTC溫度傳感器所在引腳PA4的電壓值,然后通過查表算法將其轉(zhuǎn)換成實(shí)際℃溫度值并通過儀表或“display”模型控件顯示出來。
圖5.1 NTC溫度傳感器采集simulink模型
圖5.2 溫度傳感器電路圖
圖5.3 溫度傳感器在電路板中位置
基礎(chǔ)模型介紹與分析
本次實(shí)驗(yàn)所用到的NTC(負(fù)溫度系數(shù))傳感器外觀如圖5.4所示,因其低廉的價格和使用方便的特性,被廣泛應(yīng)用于家庭與工業(yè)電子設(shè)備中(空調(diào)、電飯鍋、洗衣機(jī)等)。表5.1為該溫度傳感器基本使用參數(shù),詳細(xì)的溫度電阻特性參考其特性表鏈接,里面詳細(xì)整理了該傳感器電阻值與溫度的對應(yīng)關(guān)系。電壓采集原理圖采用“分壓式”接法,如圖5.5所示,單片機(jī)端采集電壓公式計(jì)算方法 MCU_ADC = Rt*3.3V/(10+Rt)。
圖5.4 溫度傳感器外觀
表5.1 基本參數(shù)表
型號 | B值 | 使用溫度范圍 |
---|---|---|
MF52-103/3435 10K ±1% | 3435 1% | -55℃~125℃ |
溫度阻值特性表:https://pan.baidu.com/s/1dF19CoL? at =1700414024610
圖5.5 NTC溫度傳感器“分壓”測電壓接法
Analog Input”模型外觀如圖5.6所示,通過更改“Pin”欄參數(shù)可以讀取該引腳的電壓值,讀取的數(shù)值范圍為0~1,需要注意的是“Pin”欄參數(shù)只有該芯片引腳支持模擬量功能才能使用
圖5.6 "Analog Input"模型
為方便讀者以往單片機(jī)使用習(xí)慣和計(jì)算方便性,實(shí)驗(yàn)中使用到乘法模型“Product”將讀取的ADC值乘以3.3倍放大處理,得到的最終值范圍為0~3.3,如圖5.7所示。
圖5.7 "Product"模型使用方法
查表法轉(zhuǎn)換溫度值
這是本次實(shí)驗(yàn)中的關(guān)鍵算法部分,也是在嵌入式開發(fā)中針對A/D方式讀取原始傳感器數(shù)據(jù)參數(shù)常用的轉(zhuǎn)換方法,即大家熟知的“以空間換時間“法,“ Lookup with Linear Lagrange Interpolation ”模型與參數(shù)設(shè)置窗口如圖5.8所示。
圖5.8 " Lookup with Linear Lagrange Interpolation"模型
我們首先通過“溫度阻值特性表”得到溫度電壓表關(guān)系,考慮到在單片機(jī)中不占用太大存儲空間,這里采取每5℃間隔制作表格,一般對于精度要求不是特別高的場合,我們可以大致認(rèn)為5℃內(nèi)的溫度變化是線性的,其中“V”的電壓值計(jì)算公式為V = R*3.3V/(10+R),將其中的R值代入,就可以得到V的最終值,詳情請參考表5.2。
NTC_Value_table.xlsx
表 5.2 溫度-阻值-分壓表
T | R | V |
---|---|---|
-40 | 190.5562 | 3.135457592 |
-35 | 151.5975 | 3.09578892 |
-30 | 116.3519 | 3.038824663 |
-25 | 90.0326 | 2.970107545 |
-20 | 70.5811 | 2.890474689 |
-15 | 55.7284 | 2.797933922 |
-10 | 44.1201 | 2.690245029 |
-5 | 35.0362 | 2.567256118 |
0 | 28.0170 | 2.431967278 |
5 | 22.6597 | 2.289580431 |
10 | 18.5600 | 2.144537815 |
15 | 16.2797 | 2.044277903 |
20 | 12.6900 | 1.845614808 |
25 | 10.0000 | 1.65 |
30 | 8.1600 | 1.482819383 |
35 | 6.8133 | 1.337268115 |
40 | 5.7340 | 1.202631244 |
45 | 4.8286 | 1.074570762 |
50 | 4.065 | 0.953750444 |
55 | 3.4146 | 0.839993738 |
60 | 2.825 | 0.726900585 |
65 | 2.5076 | 0.661604145 |
70 | 2.135 | 0.580593325 |
75 | 1.8225 | 0.508712201 |
80 | 1.586 | 0.451734852 |
85 | 1.4006 | 0.405415504 |
90 | 1.236 | 0.363011748 |
95 | 1.0744 | 0.320154591 |
100 | 0.918 | 0.277468401 |
105 | 0.787 | 0.240762028 |
110 | 0.713 | 0.219630356 |
點(diǎn)擊“Lookup with Linear Lagrange Interpolation”模型參數(shù)設(shè)置窗口中的“編輯表和斷點(diǎn)...”如圖5.9所示,彈出的查找表參數(shù)設(shè)置如圖5.10所示,將表5.2中的溫度T和電壓值V填入該表中的“表數(shù)據(jù)”和“斷點(diǎn) 1”處,注意數(shù)據(jù)的升降序和填寫位置
圖5.9 表格參數(shù)設(shè)置按鈕
圖5.10 查找表參數(shù)填好效果
點(diǎn)擊“線性圖”按鈕查看填寫的數(shù)據(jù)對應(yīng)的曲線是否正確,如圖5.11所示,最終填寫好的數(shù)據(jù)效果如圖5.12所示。
圖5.11 點(diǎn)擊查看線性圖曲線
圖5.12 填寫好查找表數(shù)據(jù)的模型參數(shù)設(shè)置部分效果
總結(jié)
本次實(shí)驗(yàn)以一個基本的溫度傳感器為例,通過在其中加入查表算法將其轉(zhuǎn)換成我們熟知的攝氏度(℃)溫度值,但是在實(shí)際場景中經(jīng)常會出現(xiàn)一些雜波電壓或采集的數(shù)據(jù)與我們所需要的數(shù)據(jù)穩(wěn)定的情況,讀者朋友可以思考下面對這種問題該如何去解決?以往使用C代碼方式一般是在前面加入雜波濾除算法然后再求平均值,simulink中又該如何使用呢?
拓展延申
1、本次實(shí)驗(yàn)又用到一個數(shù)據(jù)顯示儀表,但是文章中并沒有做過多介紹,其位于“Dashboard”庫中,里面又很多顯示儀表和按鈕開關(guān),在實(shí)際模型測試中非常方便,讀者朋友可以多去嘗試使用。
圖5.13 “Dashboard”庫位置
2、在查表法建立表格過程中,有一個操作非常繁瑣,復(fù)制到表格中的數(shù)據(jù)非常不方便,如果有多種傳感器需要建立表格,那工作量是不可想象的,其實(shí)這里有個更方便的方法,可以先建立一個excel表格,然后使用matlab打開并導(dǎo)入到matlab中,如圖5.14和圖5.15所示,然后在matlab中直接定義兩個數(shù)組變量,然后在“表數(shù)據(jù)”和“斷點(diǎn)1”中引入即可,如圖5.16所示,至于該方式更深入的用法,大家可以積極去探索下,這里暫時不做過多介紹。
圖5.14 打開Excel表格
圖5.15 將Excel表格的數(shù)據(jù)導(dǎo)入為變量表
圖5.16 通過變量數(shù)組引入查找表
-
原理圖
+關(guān)注
關(guān)注
1297文章
6338瀏覽量
233805 -
溫度傳感器
+關(guān)注
關(guān)注
48文章
2940瀏覽量
156015 -
NTC
+關(guān)注
關(guān)注
7文章
424瀏覽量
52045 -
STM32
+關(guān)注
關(guān)注
2270文章
10895瀏覽量
355730 -
Simulink
+關(guān)注
關(guān)注
22文章
533瀏覽量
62380
發(fā)布評論請先 登錄
相關(guān)推薦
評論