2009年11月9日 星期一

[Embedded] 溫度感測器設計 (Temperature Sensor with Thermocouple)

[ 成品 ]
    圖一,電路圖     

















      圖二,實際電路     
















     圖三,PC端控制界面      


















     圖四,PC端數據顯示界面       




















[ 時間 ]
  • 大三的那個夏天


[ 功能描述 ]
硬體部份(如圖一、二)
  • 89s52 (8051 family)
    • 電路控制的核心處理器。功能為接收溫壓資訊、進行RS-232傳輸、在某些情況下傳遞啟動電風扇的訊號
  • AD594/AD595
    • 熱感應器。運用熱電感(Thermocouple)會因為溫差而產生電流變化的現像來產生類比訊號
  • ADS7804(12 bits ADC)
    • 使用高精準ADC將溫感器測量到的電壓,轉換成為數位訊號
  • CD4051B 
    • 多工器。用來切換多個thermocouple用
  • TLE2021(OP-AMP)
    • 訊號放大器。由於熱感應器本身的訊號變化太過微弱,使用訊號放大器放大來源訊號
  •   MAX232 
    • RS-232傳輸轉換器,將原本0~5V的電壓轉換成為RS-232規格的訊號
 軟體部份
  • 8051 in C
    • 控制電路板各種動作
      • 切換多工器以選擇要接受的訊號源
      • 接受ADC的訊號
      • 透過RS-232與PC溝通
      • 適時地驅動冷卻用的風扇
      • 由於硬體訊號容易有突波的現象,實作了一個buffer讓輸出數據平滑化

  • VB。PC端監控界面程式
    • 界面部份:(如圖三、四)
      • 顯示接受到的數據,並且以時間序列的方式顯示
      • 允許手動/自動調整數據顯示範圍
      • 允許切換攝氏、華氏的溫度單位
      • 允許切換熱電感為K-type/ J-type的計算模式
      • 允許手動調整偏差值
    • 通訊部份:
      • 接受、傳輸RS-232
      • 可選擇想要開啟的com port
      • Checksum。RS-232其實並沒有那麼穩定,因此除了協定本身的同位元確認之外,還需要額外加上checksum來檢查
    • 控制部份
      • 可自動輸出數據為 excel/txt檔案
      • 風扇驅動。透過RS-232命令8051啟動/關閉冷卻風扇
      • 訊號模擬。debug模式,讓介面自動產生數據

[ 系統流程 ]
     偵測訊號     



















[ 合作成員 ]
  • 李崑翰
  • 李崇偉
  • 林鼎鈞
  • 陳郁仁 (people)(友情協助)


[ 備註 ]
1. 這是第一個正式的程式設計專案。

2. 我主要負責PC端的程式,憑著以往程式設計的功力,最後真的在幾個月內用VB弄出一個有模有樣的界面 XD

3. 雖然我被拱出來當組長,不過我的組員都超挺我的啦。不管分配的事務、實驗的時間、查Data sheet資料、找IC、弄英文論文(報告),大家都超配合的 XD。people也幫我超多的啦。不僅告訴我去哪找IC、分享實驗心得、交流單晶片程式設計的經驗。

4. 另外,大助教真的太機歪了。要求我們做這做那本來就沒什麼,但是機車的地方是:在討論的時候一直狂電我們,討論完大家都一臉屎樣。回想其他組別....每個都好像很快樂的樣子 T___T

在最後的報告。投影片報告完接著要demo時,接電不小心燒壞了8051,當時沒有備用晶片。我故作鎮定簡單報告了損害情況之後,就開了VB的訊號模擬模式來接著介紹系統會如何動作,好不容易整套系統介紹完。各位評審助教也很賞臉的問了幾個簡單的問題 (正妹助教~太感謝啦~)。

不過這個時候大助教就好像吃了炸藥一樣,臉超臭。
說:『你們這也叫報告?成品都沒秀出來也叫做一個完整的報告?你叫我怎麼給你們分數?』

當下無法反駁,我們都僵在台上,台下小助教們也只能看著大助教

最後,大助教說:
『我再找個時間看結果,今天你們這組就到這』


到了補測那天,電腦、電路都準備妥當之後,再去熱傳實驗室請大助教來看。
沒想到大助教卻挑三挑四的,還故意爽了約定。一句:我有讓你們重測嗎?讓我氣到爆,差點跟大助教互尬。幸好團員們再三的苦勸我時,大助教從lab走出來,很不情願的接受了這個補測...

這個實作過程一切都很好,除了有大助教的時候。


5. 熱電感理論上可以測試的溫度可以到上千度,當初大助教跟我們(包含people那組)談的時候。由於溫測器需要參考值來做調整,他希望我們能夠盡量測試到上千度以讓整個實驗更完整。不過當時我們想不到該如何加熱到那麼高的溫度,助教就建議了隔油加熱的方式來測。

可怕的是... 如果沒有people那次的事件,我們真的會照著測到上千度。

當時候,我們兩組人都在電子實驗室調整與測試。people他們那組比較領先,已經開始用油來測超過100度的參考值。測著測著,大家也有一句沒一句的聊著。

一切來的那麼突然,people隔鐵鍋加熱的油就突然自燃起來。一時間大家也像那鍋油一樣沸騰起來,我趕緊跑去外面拿一堆布拖把過來,用布把鍋子整個蓋起來。幸好火也隨著沒空氣慢慢熄滅......

如果當時候延燒到易燃的桌子或者鍋子翻倒的話,說不定今天就沒有電子實驗室了 XDDDD



看在老天的分上...就讓這篇文章...  留在回憶中吧!

阿們

沒有留言: