MSP430 之 無線三用電表 開發筆記2

DIY

使用元件

  • MSP430G2ET Launchpad
  • HC12 433MHz 無線模組

已完成目標

量測電阻

1101205_2133_a.png

為了量測到電阻,這裡運用到兩個知識點:

  1. V=IR(對,就是V=IR)
  2. 分壓電路

    分壓電路

假設待測電阻是R2,運用分壓電路的公式如下(來源參考自這裡):

1
2
3
4
5
6
7
8
9
10
11
12
- A: Vt = I x (R1 + R2)(這是大家都知道的

- B: V2 = I x R2(R2的電壓

- 把A換了一下位置: I = Vt / (R1 + R2)

- 把B換了一下位置: I = V2 / R2

- 把A跟B組起來: V2 / R2 = Vt / (R1 + R2)

- 再換一下位置: Vt = (V2 * R2) / (R1 + R2)
- 這就是我們要的公式

程式碼:

1
2
3
4
5
6
7
8
void ConvertResi(unsigned val)
{
bufferB = (val * (3.3 / 1023)) * 1000; // Volt To micro Volt

bufferA = 3300 - bufferB; // 先求出V1

resi = (bufferA * Resi_scale) / bufferB; // 再套入公式求出待測電阻
}

隨手小記

  • 實做算式的時候,發現到NodeRED出來的數據不是很正確,只有個位數到十位數的值出來。
  • 利用Debug查看值的變化,發現到430的變數只有「一個」在暫存器內。其他兩個反而消失掉。
    • 是什麼原因…我也不知道XDD
  • 後來移到全域變數,直接配置到RAM內,就解決了這個問題,順便把上一個量測電壓的幾個區域變數變成全域變數。
    1101205_2133_b.png

參考資料

Comments

Unable to load Disqus, please make sure your network can access.