tirsdag den 4. oktober 2011

Elmåler overvågning med Arduino

På min elmåler sidder en lysdiode, der blinker hver gang, der er brugt 1 watt-time. Med en fotomodstand (LDR), et par transistorer og en Arduino kan man nemt aflæse disse pulser og omregne dem til aktuelt watt forbrug og lave statistik beregninger. I denne opstilling er Arduino koblet til et grafisk display til udskrift af tallene.

LDR modstanden bør sammenbygges med transistorerne, af hensyn til støj. Kredsløbet ser således ud:

LDR modstanden placeres helt tæt på lysdioden på elmåleren sammen med darlingtonkoblingen, og det hele tapes til, så der ikke slipper falsk lys ind. De 5 volt til kredsløbet og puls-signalet kan med fordel føres gennem en skærmet ledning til Arduino.
Her ses monteringen på elmålerens lysdiode:



Udgangen fra LDR-trinnet tilsluttes digital pin 2 eller 3 på Arduino. Afkodningen af pulsen i Arduino sker ved at koble et eksternt interrupt sammen med en funktion:

void setup() {
attachInterrupt(1, doCalc, FALLING);
}

Funktionen doCalc() bliver således kaldt hver gang lysdioden blinker. Her kan vi måle tiden fra det forrige blink og omregne det til watt:

void doCalc() {
timeNow = millis();
timeInterval = (timeNow - timeOld) / 1000.0;
timeOld = timeNow;
watt = 3600.00 / timeInterval;
}

For at undgå at måle prel (meget hurtige støj-pulser lige når dioden tænder og slukker) fra elektrisk støj, accepteres kun intervaller i koden over 100 millisekunder.

Er intervallet for kort, optælles en tæller med 1, og udlæses på displayet som antal fejl-pulser. Denne værdi skal jo selvsagt helst være 0, men er den på et par procent af samlet antal pulser (wattimer) er det til at leve med. I min opstilling ligger den på ca. 1%.

Til udlæsning på display beregnes desuden min, max, gennemsnit, samlet antal watttimer og målingens varighed. Her ses displayet efter at have kørt 1½ minut:



NB! Programmet kan max køre i 50 dage, herefter nulstilles timeren og tallene bliver forkerte.

Koden til Arduino og diagram til LDR-trin kan downloades her


1 kommentar:

Negi sagde ...

Thanks for great information you write it very clean. I am very lucky to get this tips from you


overvågning

Om mig

Jeg er født på Frederiksberg 1966 af min mor. Nu bor jeg bare på Vesterbro. Jeg bærer briller.