<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 電源與新能源 > 設計應用 > 基于MLX90615和STM32的多點紅外溫度測量系統(tǒng)設計

          基于MLX90615和STM32的多點紅外溫度測量系統(tǒng)設計

          作者: 時間:2013-10-03 來源:網(wǎng)絡 收藏

          本文引用地址:http://www.ex-cimer.com/article/174633.htm

          3.2 溫度采集模塊

          MLX90615 紅外溫度的出廠默認地址為0x5b,因此應首先通過軟件對紅外的地址進行修改,避免總線上出現(xiàn)“一呼百應”的情況。MLX90615支持7位地址,可使用地址值為1~127,所有都會響應0×00地址,應避免使用。更改地址時應保證只有一只傳感器掛接在總線上,且必須先對傳感器地址字清空,即先寫入“0×00”地址,再寫入指定地址值,其流程如圖6所示。

          初始化主要完成通用IO、串口、中斷及SMBus總線的設置。

          為每個MLX90615紅外傳感器設置其惟一地址后,將其通過SDA及SCL兩線掛接到SMBus總線,與微處理器進行。

          微處理器作為總線上的主器件向總線上的第一個MLX90615發(fā)送命令并等待應答,待收到應答后,讀取該點溫度值并通過串口傳至上位機進行顯示,之后向第二個MLX90615發(fā)送命令并等待應答,得到應答后讀取該點溫度并傳至上位機顯示,以此類推,對總線上的所有MLX90615進行溫度數(shù)據(jù)采集。MLX90615中讀出的溫度值轉(zhuǎn)換為攝氏溫度的公式為:

          數(shù)據(jù)讀取流程圖如圖7所示。

          3.3 上位機界面

          上位機溫度監(jiān)測界面采用C++下的MFC類庫編寫,實現(xiàn)上位機通過串口與微處理器連接,接收由微處理器發(fā)送的溫度數(shù)據(jù)并顯示。可通過單擊界面上的按鈕來、選擇監(jiān)測點,如圖8所示。

          4 實驗結(jié)果

          實驗采用3只MLX90615傳感器分別監(jiān)測熱水、冰及室內(nèi)溫度,開始監(jiān)測1 min后得到其方差、平均值及參考溫度如表1所示。

          結(jié)果表明,MLX90615測溫精度更高,且測量結(jié)果穩(wěn)定,響應速度可達7~9 ms.缺點是測溫時與被測對象距離需保持在2 cm以內(nèi),距離超過70 cm時所測溫度為環(huán)境溫度。

          5 結(jié)語

          本文設計實現(xiàn)了基于MLX90615紅外傳感器的非接觸式多點溫度測量系統(tǒng),該系統(tǒng)測量精度可達0.02 ℃,且響應速度快,抗干擾能力強。傳感器與微處理器的接口簡單,簡化了硬件設計工作,為多點溫度測量提供一種新方法。實驗結(jié)果表明,該方法測溫精度高,響應速度快,且非接觸式測量有效降低了危險系數(shù),為多點測溫提供了一種新途徑。

          溫濕度控制器相關(guān)文章:溫濕度控制器原理

          上一頁 1 2 下一頁

          關(guān)鍵詞: 傳感器 通信 控制 功率

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();