第1步:獲取所需的硬件
要使所有這些正常工作,您當(dāng)然需要一些硬件。由于我們正在使用Arduino來測量電流消耗并發(fā)送RF命令,因此我們需要一個Arduino來開始。
必需的硬件:
Arduino (Uno或Pro Mini)
非侵入式電流傳感器
要定義電阻
》
原型:
面包板
面包板電線
最終版本:
烙鐵
焊料
電線
當(dāng)然,您可以選擇不將所有內(nèi)容都焊接在整齊的包裝中。
步驟2:必需的軟件
這與原型過程本身有關(guān),而與制作拋光產(chǎn)品無關(guān)。開始編程,只是普通的Arduino IDE。由于我們不使用任何庫,因此您無需再安裝任何東西。
所需的軟件:
Arduino IDE
第3步:查找電流傳感器值
為獲得最佳結(jié)果,我們將需要找到最適合電流傳感器(CT傳感器)的電阻。這是根據(jù)CT傳感器的規(guī)格通過一些計算完成的。
第一步是找到這些值。您通??梢酝ㄟ^在您喜歡的搜索引擎中輸入產(chǎn)品類型和品牌來找到它們。對于我來說,這將是我已經(jīng)擁有的產(chǎn)品“ Talema AC1010”。
我們需要以下條件:
最大一次電流(RMS)
轉(zhuǎn)動 ratio
此外,我們需要知道Arduino的工作電壓。對于Arduino Uno,這將是5v。
總而言之,這就是我的值,對于參考非常有用:
最大一次電流: 60A
匝數(shù)比: 1000:1
Arduino電壓: 5
步驟4:計算理想負(fù)載電阻
如果CT傳感器是電流輸出類型,例如Talema AC1010,則需要轉(zhuǎn)換電流信號帶有負(fù)載電阻的電壓信號。如果是電壓輸出CT,則可以跳過此步驟,而忽略負(fù)載電阻,因為負(fù)載電阻已經(jīng)內(nèi)置在CT中?,F(xiàn)在該開始記住高中的這些基礎(chǔ)數(shù)學(xué)課了。
選擇當(dāng)前要測量的范圍。 Talema AC1010的電流范圍為0A至60A,因此在此示例中,我們選擇60A作為我們的最大電流。
乘以√2將最大RMS電流轉(zhuǎn)換為峰值電流:
Primary peak-current = RMS current × √(2) = 60A × 1.414 = 84.8A
將峰值電流除以CT的匝數(shù)即可得到次級線圈中的峰值電流。
Talema AC1010具有1000匝,因此次級峰值電流將是:
Secondary peak-current = Primary peak-current / no. of turns = 84.8A / 1000 = 0.0848A
為最大程度地提高測量分辨率,峰值電流時負(fù)載電阻上的電壓應(yīng)為Arduino模擬參考電壓(AREF)除以2
使用的是在5V電壓下運(yùn)行的Arduino:AREF/2將為5 V/2 = 2.5 V,因此理想的負(fù)載電阻為:
Ideal burden resistance = (AREF/2) / Secondary peak-current = 2.5V / 0.0848A = 29.5Ω
29Ω不是常見的電阻值可以選擇22Ω或33Ω。始終選擇下一個較小的值,否則最大負(fù)載電流將產(chǎn)生高于AREF的電壓。我建議使用33Ω±1%。在某些情況下,串聯(lián)使用2個電阻會更接近理想的負(fù)載值。該值離理想值越遠(yuǎn),精度將越低。在這種情況下,峰值電流將產(chǎn)生4.7V的模擬值(使用12位ADC進(jìn)行模數(shù)轉(zhuǎn)換后為3822)。
步驟5:開始編碼,更多數(shù)學(xué)運(yùn)算!
為使測量有效,我們需要計算代碼中的某些先前值。這將為我們提供一個校準(zhǔn)值。為此,我們需要再次使用Arduino電壓,最大RMS,環(huán)路并使用負(fù)載電阻。確保用于計算的負(fù)擔(dān)是您實(shí)際使用的電阻值。
首先,我們需要再次開始計算:
double primaryPeak = sqrt(2) * amps; // Peak RMS value.
double secondaryPeak = primaryPeak / loops; // Minimum RMS value.
_sensorVoltage = voltage; // Voltage at which Arduino is running at.
_sensorCalibration = (primaryPeak / secondaryPeak) / burden; // Calculate calibration value.
首先,我們計算初級和次級峰值。和以前一樣我們保存電壓供以后計算使用,然后通過將一次峰值除以二次峰值來計算校準(zhǔn)值。之后,我們將該結(jié)果除以負(fù)載電阻值。
因為我的電阻器已經(jīng)焊接到我使用的板上,所以我的計算結(jié)果為:0,078。在先前計算的負(fù)載電阻器計算的情況下,結(jié)果將為30,03。此值需要稍后重用。
現(xiàn)在是實(shí)際零件。忍受我,因為這聽起來有點(diǎn)復(fù)雜,實(shí)際上相當(dāng)容易。首先,我們需要定義采樣率,這是完成測量的次數(shù)。好的采樣率應(yīng)該是1480。所有樣本都將添加到樣本中,然后除以樣本數(shù)量。這將給我們一個平均值。
for (int i = 0; i 《 samples; i++) {
_sensorValue = analogRead(_sensorPin); // Value of current sensor value, used for calculations.
_calculationOffset = (_calculationOffset + (_sensorValue - _calculationOffset) / 1024); // Calculated offet value from sensor.
_calculationFiltered = _sensorValue - _calculationOffset; // Calculated filtered value from sensor.
_calculationSquare = _calculationFiltered * _calculationFiltered; // Square value from sensor.
_calculationSum += _calculationSquare; // Sumary of all values since last sample reset.
}
_sensorAmperage = _sensorCalibration * (_sensorVoltage / 10) * sqrt(_calculationSum / samples); // Calculated amperage value from sensor.
_calculationSum = 0; // Reset summary so that new sample can be made.
這將給我們帶來穩(wěn)定的安培功耗。您可以手動將此安培值轉(zhuǎn)換為瓦數(shù)值。一個簡單的方程式:
voltage * amps = wattage
當(dāng)然,此電壓是所連接設(shè)備的輸入電壓,通常為230v或110v。
步驟6:完成
從現(xiàn)在開始,您可以使用此值執(zhí)行任何操作。以我為例,我正在連接一個射頻發(fā)射器以發(fā)送“開”或“關(guān)”命令。
我可以理解,前面的代碼解釋有點(diǎn)短。為了讓您的生活更輕松,我制作了一個Arduino庫,制作了所有這些困難的方程式。您可以在我的GitHub上找到代碼,具有以下鏈接:
https://github.com/FricoRico/ArduinoEnergy
責(zé)任編輯:wv
-
監(jiān)控器
+關(guān)注
關(guān)注
1文章
331瀏覽量
27605 -
Arduino
+關(guān)注
關(guān)注
190文章
6498瀏覽量
192189
發(fā)布評論請先 登錄
Texas Instruments TPS3842EVM 監(jiān)控器評估模塊 (EVM)數(shù)據(jù)手冊

三相電機(jī)智能監(jiān)控器設(shè)計
EZShunt?數(shù)字電流和功率監(jiān)控器

TI電池監(jiān)控器IC的高級電量監(jiān)測器固件流程圖

TI電池監(jiān)控器IC的HDQ通信基礎(chǔ)知識

電源電壓監(jiān)控器77xx系列

數(shù)字電源監(jiān)控器入門

高性能電壓監(jiān)控器詳解—-- 第一部分

比較電壓和處理器監(jiān)控解決方案:分立式電壓監(jiān)控器和看門狗ICs

將設(shè)計移植到LP3470A低lq電壓監(jiān)控器,以改善電源監(jiān)控

鎖存電壓監(jiān)控器(復(fù)位IC)

在牽引逆變器設(shè)計中實(shí)現(xiàn)電壓基準(zhǔn)和監(jiān)控器

寬VIN過壓和欠壓監(jiān)控器的常見應(yīng)用

在高壓應(yīng)用中使用電壓監(jiān)控器

評論