第1步:獲取所需的硬件
要使所有這些正常工作,您當(dāng)然需要一些硬件。由于我們正在使用Arduino來(lái)測(cè)量電流消耗并發(fā)送RF命令,因此我們需要一個(gè)Arduino來(lái)開(kāi)始。

必需的硬件:
Arduino (Uno或Pro Mini)
非侵入式電流傳感器
要定義電阻
》
原型:
面包板
面包板電線
最終版本:
烙鐵
焊料
電線
當(dāng)然,您可以選擇不將所有內(nèi)容都焊接在整齊的包裝中。
步驟2:必需的軟件
這與原型過(guò)程本身有關(guān),而與制作拋光產(chǎn)品無(wú)關(guān)。開(kāi)始編程,只是普通的Arduino IDE。由于我們不使用任何庫(kù),因此您無(wú)需再安裝任何東西。
所需的軟件:
Arduino IDE
第3步:查找電流傳感器值
為獲得最佳結(jié)果,我們將需要找到最適合電流傳感器(CT傳感器)的電阻。這是根據(jù)CT傳感器的規(guī)格通過(guò)一些計(jì)算完成的。
第一步是找到這些值。您通常可以通過(guò)在您喜歡的搜索引擎中輸入產(chǎn)品類(lèi)型和品牌來(lái)找到它們。對(duì)于我來(lái)說(shuō),這將是我已經(jīng)擁有的產(chǎn)品“ Talema AC1010”。
我們需要以下條件:
最大一次電流(RMS)
轉(zhuǎn)動(dòng) ratio
此外,我們需要知道Arduino的工作電壓。對(duì)于Arduino Uno,這將是5v。
總而言之,這就是我的值,對(duì)于參考非常有用:
最大一次電流: 60A
匝數(shù)比: 1000:1
Arduino電壓: 5
步驟4:計(jì)算理想負(fù)載電阻
如果CT傳感器是電流輸出類(lèi)型,例如Talema AC1010,則需要轉(zhuǎn)換電流信號(hào)帶有負(fù)載電阻的電壓信號(hào)。如果是電壓輸出CT,則可以跳過(guò)此步驟,而忽略負(fù)載電阻,因?yàn)樨?fù)載電阻已經(jīng)內(nèi)置在CT中。現(xiàn)在該開(kāi)始記住高中的這些基礎(chǔ)數(shù)學(xué)課了。
選擇當(dāng)前要測(cè)量的范圍。 Talema AC1010的電流范圍為0A至60A,因此在此示例中,我們選擇60A作為我們的最大電流。
乘以√2將最大RMS電流轉(zhuǎn)換為峰值電流:
Primary peak-current = RMS current × √(2) = 60A × 1.414 = 84.8A
將峰值電流除以CT的匝數(shù)即可得到次級(jí)線圈中的峰值電流。
Talema AC1010具有1000匝,因此次級(jí)峰值電流將是:
Secondary peak-current = Primary peak-current / no. of turns = 84.8A / 1000 = 0.0848A
為最大程度地提高測(cè)量分辨率,峰值電流時(shí)負(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Ω不是常見(jiàn)的電阻值可以選擇22Ω或33Ω。始終選擇下一個(gè)較小的值,否則最大負(fù)載電流將產(chǎn)生高于AREF的電壓。我建議使用33Ω±1%。在某些情況下,串聯(lián)使用2個(gè)電阻會(huì)更接近理想的負(fù)載值。該值離理想值越遠(yuǎn),精度將越低。在這種情況下,峰值電流將產(chǎn)生4.7V的模擬值(使用12位ADC進(jìn)行模數(shù)轉(zhuǎn)換后為3822)。
步驟5:開(kāi)始編碼,更多數(shù)學(xué)運(yùn)算!
為使測(cè)量有效,我們需要計(jì)算代碼中的某些先前值。這將為我們提供一個(gè)校準(zhǔn)值。為此,我們需要再次使用Arduino電壓,最大RMS,環(huán)路并使用負(fù)載電阻。確保用于計(jì)算的負(fù)擔(dān)是您實(shí)際使用的電阻值。
首先,我們需要再次開(kāi)始計(jì)算:
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.
首先,我們計(jì)算初級(jí)和次級(jí)峰值。和以前一樣我們保存電壓供以后計(jì)算使用,然后通過(guò)將一次峰值除以二次峰值來(lái)計(jì)算校準(zhǔn)值。之后,我們將該結(jié)果除以負(fù)載電阻值。
因?yàn)槲业?a target="_blank">電阻器已經(jīng)焊接到我使用的板上,所以我的計(jì)算結(jié)果為:0,078。在先前計(jì)算的負(fù)載電阻器計(jì)算的情況下,結(jié)果將為30,03。此值需要稍后重用。
現(xiàn)在是實(shí)際零件。忍受我,因?yàn)檫@聽(tīng)起來(lái)有點(diǎn)復(fù)雜,實(shí)際上相當(dāng)容易。首先,我們需要定義采樣率,這是完成測(cè)量的次數(shù)。好的采樣率應(yīng)該是1480。所有樣本都將添加到樣本中,然后除以樣本數(shù)量。這將給我們一個(gè)平均值。
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.
這將給我們帶來(lái)穩(wěn)定的安培功耗。您可以手動(dòng)將此安培值轉(zhuǎn)換為瓦數(shù)值。一個(gè)簡(jiǎn)單的方程式:
voltage * amps = wattage
當(dāng)然,此電壓是所連接設(shè)備的輸入電壓,通常為230v或110v。
步驟6:完成
從現(xiàn)在開(kāi)始,您可以使用此值執(zhí)行任何操作。以我為例,我正在連接一個(gè)射頻發(fā)射器以發(fā)送“開(kāi)”或“關(guān)”命令。
我可以理解,前面的代碼解釋有點(diǎn)短。為了讓您的生活更輕松,我制作了一個(gè)Arduino庫(kù),制作了所有這些困難的方程式。您可以在我的GitHub上找到代碼,具有以下鏈接:
https://github.com/FricoRico/ArduinoEnergy
責(zé)任編輯:wv
-
監(jiān)控器
+關(guān)注
關(guān)注
1文章
370瀏覽量
28906 -
Arduino
+關(guān)注
關(guān)注
190文章
6526瀏覽量
197097
發(fā)布評(píng)論請(qǐng)先 登錄
LTC3350:高性能超級(jí)電容備份控制器與系統(tǒng)監(jiān)控器解析
LTC2937:六通道電源排序器與電壓監(jiān)控器的設(shè)計(jì)與應(yīng)用
MAX6453 - MAX6456微處理器監(jiān)控器:性能與應(yīng)用解析
深入解析 LTC2915/LTC2916 電壓監(jiān)控器:特性、應(yīng)用與設(shè)計(jì)要點(diǎn)
ADM709電源監(jiān)控器:特性、應(yīng)用與設(shè)計(jì)要點(diǎn)
AMC80系統(tǒng)硬件監(jiān)控器:功能、應(yīng)用與設(shè)計(jì)詳解
STM6717/18/19/20及STM6777/78/79/80系列電壓監(jiān)控器:設(shè)計(jì)與應(yīng)用指南
NoC性能監(jiān)控器調(diào)試指南
TPS376XEVM窗口監(jiān)控器評(píng)估模塊技術(shù)解析與應(yīng)用指南
TPS36Q1EVM電壓監(jiān)控器評(píng)估模塊技術(shù)解析
Texas Instruments TPS389006/TPS389006-Q1電壓監(jiān)控器特性/應(yīng)用/框圖
Texas Instruments INA4230 16位數(shù)字電流監(jiān)控器數(shù)據(jù)手冊(cè)
Texas Instruments TPS3842EVM 監(jiān)控器評(píng)估模塊 (EVM)數(shù)據(jù)手冊(cè)
Texas Instruments TPS38800-Q1/TPS388R0-Q1電壓監(jiān)控器數(shù)據(jù)手冊(cè)
Arduino能量監(jiān)控器的制作
評(píng)論