Arduino energi Switch (5 / 6 steg)
Steg 5: Starta kodning, mer matte!
För mätning ska fungera måste vi beräkna vissa tidigare värden i koden. Detta då ger oss ett kalibreringsvärde. För detta behöver vi Arduino spänning, maximal RMS, loopar och begagnade börda motstånd igen. Se till att den börda du använda beräkning är det motstånd värde som du faktiskt använder.
Vi behöver först börjar beräkna gång:
Double primaryPeak = sqrt(2) * ampere; Peak RMS-värde.
Double secondaryPeak = primaryPeak / loopar; Minsta RMS-värdet.
_sensorVoltage = spänning; Spänning vid vilken Arduino körs på.
_sensorCalibration = (primaryPeak / secondaryPeak) / belasta; Beräkna kalibreringsvärdet.
Först beräknar vi de primära och sekundära toppvärdena. Precis som tidigare. Vi sparar spänningen för senare användning i beräkningen och sedan beräkna ett kalibreringsvärde genom att dividera primärt sekundära toppvärden. Efter att vi delar detta resultat med bördan motstånd värde.
Eftersom min resistor är redan fastlödda på styrelsen jag använder, är resultatet av min beräkning: 0,078. Den tidigare beräknade börda resistor beräkningen, skulle resultatet vara 30,03. Detta värde måste återanvändas senare.
Nu för den verkliga delen. Bära med mig eftersom detta kommer att låta snäll för komplicerat, det är faktiskt ganska lätt. Först och främst kommer vi att definiera en frekvens, är detta antalet gånger en mätning görs. En bra frekvens vore 1480. Alla prover kommer att läggas till och sedan dividerat med antalet prover. Detta ger oss ett genomsnittsvärde.
för (int jag = 0; jag < prover; i ++) {
_sensorValue = analogRead(_sensorPin); Värdet för nuvarande sensor, för beräkningar.
_calculationOffset = (_calculationOffset + (_sensorValue - _calculationOffset) / 1024); Beräknade offet värde från sensorn.
_calculationFiltered = _sensorValue - _calculationOffset; Beräknade filtrerade värde från sensorn.
_calculationSquare = _calculationFiltered * _calculationFiltered; Square värde från sensorn.
_calculationSum += _calculationSquare; Sammanfattning av alla värden sedan sista provet återställdes.
}
_sensorAmperage = _sensorCalibration * (_sensorVoltage / 10) * sqrt(_calculationSum / samples); Beräknade strömstyrka värde från sensorn.
_calculationSum = 0; Återställa Sammanfattning så att det nya provet kan göras.
Detta ger oss en stadig effektuttaget i ampere. Du konvertera manuellt ampere värdet till ett värde som wattal. En enkel ekvation:
spänning * ampere = watt
Denna spänning är ju spänningen av ansluten enhet, vanligtvis 230v eller 110v.