Yun baserade El Monitor med Cloud stöd / Temboo och Google Drive (5 / 7 steg)
Steg 5: Arduino mätning rutin
- I 5 sekunder
- Ta ett prov från ADC
- Filtrera ut the DC komponent från potentiella Divider krets och buller med hjälp av en Digital Band Pass Filter
- Beräkna Mean Square (MS) värdet av nuvarande (dvs fyrkantiga värden och få löpande genomsnittliga)
- Beräkna RMS-värdet från MS värdet av torget rotsystem det.
- Multiplicera med RMS spänningen (230V i Irland / Storbritannien, 110V i USA).
- Skala för nuvarande transformator vinsten och ADC.
Här är avsnittet aktuell kod
Ogiltigloop() {
Skicka värdet för analog ingång 0:
R2 = r1;
R1 = r0;
R0 = analogRead(A0);
U2 = u1;
U1 = u0;
0,5 Hz till 200Hz Band Pass Filter
U0 = 0.2929*(r0-r2) + 1.411 * u1-0.4142 * u2;
v = u0;
Beräkna Mean-Square ström (ampere)
AMS = 0,99 * AMS + 0,01 * v * v.
Beräkna Root-Mean-Square (ampere)
Armar = sqrt(AMS);
Konvertera till RMS-effekt:
Multipy av 230 v (rms)
30 * 5/1024 står för vinst för Strömtransformator och ADC
PRMS = 230 * 30 * armar * 5/1024;
Delay(1);
Digital Filter beräkningen förtjänar förmodligen ett särskilt omnämnande.
Du behöver inte att förstå det att göra projektet men du kanske finner det intressant.
Den genomförs i följande kodrad:
u0 = 0.2929*(r0-r2) + 1.411 * u1-0.4142 * u2;
Det är en IIR filtrerar eftersom det fungerar på indatavärden (tidigare och nuvarande) och sin egen produktionsvärden (tidigare och nuvarande). Svaret från BPF visas ovanför.
Dess z-domän Pole / noll Transfer Function är:
0.2929 (z+1)(z-1)
=================
(z-0.9952) (z-0.4162)
En liknande teknik används för att filtrera de nuvarande behandlingarna för att ge Mean-Square aktuella värde.
AMS = 0,99 * AMS + 0,01 * v * v;
Detta är helt enkelt ett lågpassfilter att bilda ett långsiktigt genomsnitt av dess ingång (v ^ 2).