痞酷網_PIGOO

 找回密碼
 立即註冊
!!! [系統偵測到廣告阻擋軟體] !!!

如果您覺得痞酷網對您有些許幫助,或者您認同痞酷網的理想,

那麼希望您將痞酷網設定為白名單.

並請在上論壇的時候,動動您的手指,用行動支持我們.

謝謝!
查看: 19175|回復: 65

[電子儀表] 業餘用電感電容頻率表

  [複製鏈接]
發表於 2013-12-26 23:57:42 | 顯示全部樓層 |閱讀模式
這是之前從對岸買的電感電容頻率表,專供我這種業餘人士不精確測量用,便宜又好用,呵呵。
Board.jpg

最原始作品是來自這個,
http://www.hw.cz/teorie-a-praxe/konstrukce/lc-metr-s-89c2051.html

我手上這個是對岸修改過的,一般都稱作LET版,因為軟體作者是署名LET。但是這個軟體實在是不夠好,顯示位數很多,所以數字會一直跳,但是那麼多位數顯示其實都沒有用(因為本來精準度就沒那麼高啊)。而且切換按鍵誤動作不斷,常常不是切不過去,不然就是一次直接跳兩段。因為沒有原始程式可以改,所以就自己從頭來囉,順便練練中斷及計時功能。

先來看看硬體部份,這是原始電路,
Schematics_Small.JPG
電路很單純,使用AT89C2051主控,16x2的液晶顯示,還有測電容、電感及頻率電路。

測電容是使用RC振盪方式,
C_In.jpg
電路動作與555振盪方式相同,紅框的電阻及電容會形成RC充放電,藍框的三個電阻作用,會形成在1/3Vcc至2/3Vcc間振盪。所以與555的振盪週期計算相似,T=0.693x(R1+2xR2)xC,因為電阻都固定,所以只要測量出T,就可以換算出電容C值。因為是在1/3Vcc至2/3Vcc間振盪,所以供電電壓不同對測量結果不會有影響。

測電感則是使用LC振盪方式,
L_In.jpg
紅框的電感及電容會形成LC振盪。利用LC公式,F=1/T=2x3.14x√LC,所以只要量出週期,也可以回算出電感L值。與電容測量一樣,供電電壓不同對測量結果也不會有影響。

使用8051中斷配合定時器測量周期,計算周期時間程式碼部份如下,
  1. void Timer1_interrupt(void)
  2. {
  3.         // period counter for C and L Measurement
  4.         iPrdCnt++;
  5.         if(iPrdCnt > C_MAX_PERIOD_COUNT)
  6.         {
  7.                 // over maximum count (arround 2 seconds)
  8.                 iPrdCnt = C_MAX_PERIOD_COUNT;
  9.                 lPeriod = C_MAX_PERIOD;
  10.         }
  11. }
複製代碼
  1. INT0_Interrupt(void)
  2. {
  3.         // tick count for C measurement
  4.         if(!iTickCnt)
  5.         {
  6.                 // reset timer 0 to measure interval
  7.                 TL1 = 0;
  8.                 iPrdCnt = 0;
  9.                 iTickCnt++;
  10.         }
  11.         else
  12.         {
  13.                 // count period
  14.                 TR1 = 0;
  15.                 lPeriod = iPrdCnt;
  16.                 lPeriod <<= 8
  17.                 lPeriod += TL1;
  18.                 // check interrupt frequency
  19.                 if(lPeriod < C_INT_THRESHOLD)
  20.                 {
  21.                         // interrupt too fast, sleep a while
  22.                         EX0 = 0;
  23.                         cSleep = C_INT_SLEEP_CNT;
  24.                         lPeriod = 0;
  25.                 }
  26.                 // reset for next interval count
  27.                 iTickCnt = 0;
  28.                 iPrdCnt = 0;
  29.                 TR1 = 1;
  30.         }
  31. }
複製代碼
測量顯示只要三位數字就夠了,不需太多。按鍵讀取程式加了防彈跳機制,開關切換很順,不會再卡卡的了。

最終完成品,開機,
Start.jpg

測小電容,
C.jpg

測電解電容,
C2.jpg

測電感,
L.jpg

最後附上放大版原始電路圖及燒錄程式檔,僅供痞友私人研究用,請勿用於商業用途。
LCF.rar (65.43 KB, 下載次數: 94)

若對原始程式有興趣,請回覆後取用,歡迎批評指教。
原始程式可以直接使用Keil編譯。用C在2K的Flash上實在是難寫啊,好不容易才把所有功能都做進去。

僅供痞友私人研究用,請勿用於商業用途,
LCF_v100.rar (6.77 KB, 下載次數: 58)

評分

15

查看全部評分

發表於 2013-12-27 00:34:58 | 顯示全部樓層
感謝分享
發表於 2013-12-27 12:10:09 | 顯示全部樓層
小弟最近也買一組,也有類似的問題
雖然網拍頁面寫"因為是直讀,所以數值會稍為跳動"
發表於 2013-12-27 13:15:50 | 顯示全部樓層
謝謝分享.
用89C2051這個容易買到的uC來做是很好的方法,但是燒錄卻比89S51來得麻煩,網路上有的是用Pic做的,沒有燒錄器的就真的很麻煩了.
發表於 2013-12-27 13:44:42 | 顯示全部樓層
大大可以自己寫程式,真是厲害!感謝分享!
發表於 2013-12-27 14:35:09 | 顯示全部樓層
厲害,厲害,n_116|
發表於 2013-12-27 15:22:21 | 顯示全部樓層
厲害
這樣 都能 解決
發表於 2013-12-27 15:49:08 | 顯示全部樓層
感謝無私的分享,謝謝!
發表於 2013-12-27 16:10:42 | 顯示全部樓層
太強了@@
感謝先進無私分享
發表於 2013-12-27 21:38:34 | 顯示全部樓層
真好又多了一位可以請教的高手!!
發表於 2013-12-27 21:55:45 | 顯示全部樓層
厲害!
太強了!!高手!!感謝分享!
發表於 2013-12-27 22:07:42 | 顯示全部樓層
scottwang 發表於 2013-12-27 01:15 PM static/image/common/back.gif
謝謝分享.
用89C2051這個容易買到的uC來做是很好的方法,但是燒錄卻比89S51來得麻煩,網路上有的是用Pic做的, ...

SCOTTWANG大:
  用 STC89C52RC 就可以 也可以用 89S52 反正只要把PIN腳接對應該就可以!!
  我到是對他的 蘋率很感興趣!!
發表於 2013-12-27 22:27:16 | 顯示全部樓層
高手.謝謝分享.
發表於 2013-12-27 22:38:52 | 顯示全部樓層
antlu 發表於 2013-12-27 10:07 PM static/image/common/back.gif
SCOTTWANG大:
  用 STC89C52RC 就可以 也可以用 89S52 反正只要把PIN腳接對應該就可以!!
  我到是對他的  ...

89S51,52或相容的都可以用,燒錄也方便,只是做起來的成品體積會稍為大一些而已.
發表於 2013-12-27 22:47:43 | 顯示全部樓層
謝謝大大分享!!
 樓主| 發表於 2013-12-27 22:59:08 | 顯示全部樓層
scottwang 發表於 2013-12-27 10:38 PM static/image/common/back.gif
89S51,52或相容的都可以用,燒錄也方便,只是做起來的成品體積會稍為大一些而已. ...

確實AT89C2051燒錄是比較麻煩,不過因為pin腳數適當,幾年前倒是很多人用,所以有一堆DIY好像都是用這棵。

照理說,STCF11系列的腳位完全相同,而且速度快多了,燒錄應該也較方便。不過我手上沒有,所以沒得試n_111|
 樓主| 發表於 2013-12-27 23:00:41 | 顯示全部樓層
antlu 發表於 2013-12-27 10:07 PM static/image/common/back.gif
SCOTTWANG大:
  用 STC89C52RC 就可以 也可以用 89S52 反正只要把PIN腳接對應該就可以!!
  我到是對他的  ...

阿乾大是對什麼"頻率"有興趣?
發表於 2013-12-27 23:09:37 | 顯示全部樓層
robotai 發表於 2013-12-27 11:00 PM static/image/common/back.gif
阿乾大是對什麼"頻率"有興趣?

robotai 大:
  因為手上有一大把 石英震盪 (拆機品) 先前根SCOTTWANG 大要了 震盪電路若是使用計頻器電路那不就是可以讀出石英震盪的頻率了!! 我手頭有一部專業計頻器但是接點不太好所以很少用!!
  現在在了解你的程式!! 我沒正規學過 高階語言 你的寫法感覺很正規! 想從中多學一些!! 不懂再向您請教!!
發表於 2013-12-27 23:29:38 | 顯示全部樓層
antlu 發表於 2013-12-27 11:09 PM static/image/common/back.gif
robotai 大:
  因為手上有一大把 石英震盪 (拆機品) 先前根SCOTTWANG 大要了 震盪電路若是使用計頻器電路 ...

阿乾大是"半路出獅",擱比老獅卡成獅 ... 吼 ...... :sam50 ... 猴獅雷啊 ... :sam16
 樓主| 發表於 2013-12-27 23:33:16 | 顯示全部樓層
antlu 發表於 2013-12-27 11:09 PM static/image/common/back.gif
robotai 大:
  因為手上有一大把 石英震盪 (拆機品) 先前根SCOTTWANG 大要了 震盪電路若是使用計頻器電路 ...

歡迎指教,一定盡力解答。

目前頻率計算只是比較單純用定時器固定計時約500ms後,計算出這期間收到的中斷次數,就可以反算出頻率。但是因為要節省程式空間,所以有用固定常數進行換算。但是因為2051只能接收最高1Mhz的輸入,所以能測量的最大頻率約只有到近百Khz而已。要計頻更高頻率,只能外部另加除頻電路才行吧。

C語言比組合語言好用多了啦。用C比較能專注在程式功能上,組合語言常花時間在指令組合,但是程式較精簡,執行速度較快,各有千秋啦。
發表於 2013-12-28 00:54:41 | 顯示全部樓層
robotai 發表於 2013-12-27 11:33 PM static/image/common/back.gif
歡迎指教,一定盡力解答。

目前頻率計算只是比較單純用定時器固定計時約500ms後,計算出這期間收到的中 ...

robotai大:
   以前也是仿造LC表 因為開關太多又麻煩所以改成 L表,自己寫程式 遇到計數問題經過改成 自動重裝模式才解決!! 那時的電路是網路上找的!!  我只會 粗淺 C 程式 許多程式都是由 附贈程式中 抄下來的!! 尤其是 LCM的程式.
發表於 2013-12-28 00:56:34 | 顯示全部樓層
scottwang 發表於 2013-12-27 11:29 PM static/image/common/back.gif
阿乾大是"半路出獅",擱比老獅卡成獅 ... 吼 ......  ... 猴獅雷啊 ...

scottwang 大:
  別取笑我了!!  光是 74595 我就 埃埃叫了!! 更何況有計算的問題!!
發表於 2013-12-28 01:08:12 | 顯示全部樓層
antlu 發表於 2013-12-28 12:56 AM static/image/common/back.gif
scottwang 大:
  別取笑我了!!  光是 74595 我就 埃埃叫了!! 更何況有計算的問題!! ...

那有啦.
戲棚下站久了就是您的 ... 您就是在戲棚下站很久很久了 ... :sam17
我都還找不到戲棚的說 ... :sam11
發表於 2013-12-28 01:26:37 | 顯示全部樓層
高手,金厲害,感謝分享.
發表於 2013-12-28 07:38:01 | 顯示全部樓層
好厲害啊! 太久沒碰,來學習的.
發表於 2013-12-28 08:08:41 | 顯示全部樓層
哇! 真強
發表於 2013-12-29 00:42:11 | 顯示全部樓層
做的真漂亮,謝謝分享
發表於 2013-12-30 00:03:21 | 顯示全部樓層
下載研究看看!
發表於 2013-12-30 10:20:43 | 顯示全部樓層
大大你好
俺想請教一下
C測量的 OPA, 應該是構成比較器的功能
L測量的 OPA, 是甚麼功能呢
俺以前玩的時候, 為了簡便, 所以直接用2051的內置比較器, 儘量簡化了外圍電路, 不用LM311也不用OPA, 不過沒有玩過C寫的. 看了這個帖, 好像又燃起再玩的意願, 所以想了解一下
謝謝
 樓主| 發表於 2013-12-30 21:53:34 | 顯示全部樓層
xiaolaba 發表於 2013-12-30 10:20 AM static/image/common/back.gif
大大你好
俺想請教一下
C測量的 OPA, 應該是構成比較器的功能

L測量的OP也是比較器。

在還沒接上電感前,跟C測量的OP一樣,會在Vcc/3至2Vcc/3間振盪。只是C測量電解電容時使用的電流較大所以用另一個電晶體放大電流,因此OP+,OP-是反向的。

在接上L後,經由C1,於LC振盪時會使OP+端改變電壓,造成正回饋,形成與LC頻率同步的振盪。因為LC振盪的頻率高於原來RC振盪的頻率,所以最終是在LC諧振頻率下振盪,並在OP輸出端輸出方波。
您需要登錄後才可以回帖 登錄 | 立即註冊

本版積分規則

關閉

站長小叮嚀上一條 /1 下一條

禁閉室|手機版|連繫我們|痞酷網電子技術論壇

GMT+8, 2024-4-19 10:20 AM , Processed in 0.099695 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.4 Licensed

© 2001-2023 Discuz! Team.