細說 RC 式測溫電路
網絡上經常遇見使用單片機普通 I/O 口測量溫度的文章,有些還有附件給出源程序.------應該感謝原作者的無私與勞動!
美中不足的是,這種應用,實際有很多細節需要考慮的.如果隨隨便便就去模仿,可能不會得到很好的結果.
這種測量方式,最早見于 PIC 的示例程序,也只有例如 PIC 一樣特性的端口,進行這種測量才會比較好.如果使用 51 單片機,則由于 51 的端口特殊性,反而不好用.
常見的 EM78P,HT,SN 等芯片,端口特性基本與 PIC 的吻合,因此,更加廉價的項目就變得更加多機會!
電路通常如下:
實際上,也可以這樣做的:
電路的工作原理很簡單,第一個電路,是對完全放電后的電容器進行充電,第二個電路,也是對完全放電后的電容器充電!
電路中的三個端口,最好都是雙向端口,可以分別工作在輸入,輸出H,輸出L.而作為輸入狀態使用時,千萬不能使用內部上拉!
端口 P2 最好具有施密特觸發特性,它往往比普通端口的動作更加可靠!而且動作閥值會更大,這就會有利于增加測量讀數和提高分辨力.
P2 是檢測電容器上電壓是否越過翻轉閥值的端口,如果需要使用外部中斷功能,那么,選擇端口時就要更加注意考慮.----例如:SN2501B 的 FP00.
同時,P2 又是電容器放電的只要通道,通常中間要串聯一只 100 歐姆左右的保護電阻.(圖上省略了).保護端口不會損壞!
測量電容器放電可以使用的方法有: 程序指令累加計數,只要端口沒有越過翻轉閥值,就不停地+1,直到端口翻轉為止.它占用主程序的運行時間,甚至可能影響顯示!因此,需要盡量提高系統的晶體頻率!
也可以利用外部中斷配合定時器來進行,這樣,主要工作就交給系統自動去運行了,主程序的運行不會受到過大影響!推薦使用.而且它可以讓定時器的計數頻率高于指令速率,可以獲得更短測量時間或更大測量讀數!
相比之下,利用外部中斷和定時器的方式時,程序編寫需要更多精力!更有挑戰性!
電路里的電容器推薦使用 CBB 的電容器,使用瓷片或者其它電容器都沒有那么穩定!
圖上的 RT 就是熱敏電阻,千萬不能按照一般的圖紙去干!這個熱敏電阻,按照使用的標稱值不同而有區別,通常在 0℃ 時,具有上 MΩ 甚至幾個 MΩ 的電阻值,單片機端口會對這個值產生極大影響!----具體需要很好觀看使用的熱敏電阻的分度表(溫度/阻值表,也叫 RT 表),-------從這點說,網絡上的這種資源只有參考意義,不能照搬!
對熱敏電阻,通常要進行線性化處理,如圖:
這里,給熱敏電阻并聯一個 RA,它與熱敏電阻并聯后,就大大減少了上 MΩ 的數值,要讓它們維持在一個遠遠偏離端口電流影響的范圍,例如:并聯后=100KΩ~200KΩ.
隨后,又給熱敏電阻//RA后,串聯一只 RB ,它增大了熱敏電阻在溫度高端的最小值,有時候,熱敏電阻到 200℃ 時,本身電阻就是幾十 Ω 了!這對電路與端口是不利的!增加這個電阻,可以保證電路的安全工作!一般取幾百Ω到幾KΩ.
所有測量網絡的電阻,最好使用金屬膜低溫漂電阻,精度選擇優于等于 1% (再精就很貴了!主要追求穩定性就可以!)
電路里的參考電阻,通常選擇全部量程范圍從下而上的 1/3~1/2 處,取出一個點作為參考電阻的取值!不要過高或過低!(是熱敏電阻整個并聯/串聯的等效值,不單單是熱敏電阻本身的數值!)
通常做法是:接到項目,又決定使用這種 RC 測量方式后,選擇合適的熱敏電阻,獲得實物與分度表,根據項目要求的精度,把分度表進行壓縮,例如:每 2 ℃ 一個表格數字,或每 5℃ 一個表格數字.間隔越大越省事,精度越低!理論上,與表格吻合的值測量誤差=0!
測量處理通常是:
1.電容器充分放電!----這個問題很難得到什么參數來保證!可以通過一小段測試程序,選擇不同的放電時間,放電后,每次測量同一個阻值是否讀數相同來判斷!只要放電完全,再長的時間也不會增加讀數了,這就可以找到至少多長時間可以完全放電.
2.讓 P0,P1,P2 全部設置為輸入無上拉模式,然后,參考電阻輸出高電平(圖1)或低電平(圖2),同時開始電容器充電計數.直到端口P2翻轉!得到讀數 RM0.
3.電容器充分放電!----要求同上.
4.讓 P0,P1,P2 全部設置為輸入無上拉模式,然后,等效熱敏電阻端口輸出高電平(圖1)或低電平(圖2),同時開始電容器充電計數.直到端口P2翻轉!得到讀數 RM1.
5.使用 RM1*系數/RM2=對應溫度下的一個表格值.(系數是為了計算小數位而增加的.)
6.做好全部表格后,看看相鄰 2 個表格的差,是否≥要求的分辨力.例如:要求小數點有一位數,那么,表格之間必須有 10 個字的間隔.否則達不到要求!相鄰表格數值太小怎么辦? 提高計數器速率,增大 CBB 電容器數值,修改熱敏電阻等效電路參數.還有就是重新選擇另外一種熱敏電阻!
7.有了表格值,就可以把測量的當前值與表格值對比,對上哪一級就得到溫度的整數位了!沒有小數點!如果是>上面一格又<下面一格,那就有小數點了!把把測量值-整數表格值的余數/這2 格相鄰差值=小數點的數值.
8.經過良好調試的程序,脫機運行時,供電在 5V ±0.5V 變化時,正確讀數基本不會變化!-----如果讀數也大幅度變化就不行啦!太不能自動跟蹤自動穩定啦!
本文力圖非常仔細的對低成本的 RC 方式的模擬到數字轉換模式進行說明,以便補充許多有關此方法的網絡文章的說明不足!
同時,也發布過一些實際項目資料的一些帖子,非常希望愛好者可以正確合理使用這種方法.提供一點點經驗之談!如有不對,歡迎指正!
謝謝您的瀏覽!
歡迎光臨 (http://www.zg4o1577.cn/bbs/) | Powered by Discuz! X3.1 |