Example for Lib Pulses. Measurement of power and energy with a energy meter which has a S0 interface

Dependencies:   Pulses mbed

Measurement of low frequencys based on timing between pulses. Example for using a energy meter with S0 interface.

Committer:
jocis
Date:
Thu Nov 08 07:25:51 2012 +0000
Revision:
1:0f8dd2deb61b
Parent:
0:010c6e517e18
Child:
2:4805e84fa084
first commit

Who changed what in which revision?

UserRevisionLine numberNew contents of line
jocis 0:010c6e517e18 1 #include "mbed.h"
jocis 0:010c6e517e18 2 #include "Pulses.h"
jocis 0:010c6e517e18 3
jocis 1:0f8dd2deb61b 4 Serial pc(USBTX, USBRX); // tx, rx
jocis 1:0f8dd2deb61b 5
jocis 1:0f8dd2deb61b 6 // Example for energy meter with SO interface
jocis 1:0f8dd2deb61b 7 // SO output of energy meter is connected (over opto-coppler) to pin 8
jocis 1:0f8dd2deb61b 8
jocis 1:0f8dd2deb61b 9 #define SO_PULSES 2000 // SO interface of energy meter with 2000 pulses per kWh
jocis 0:010c6e517e18 10 Pulses pulses(p8, Pulses::FALL);
jocis 0:010c6e517e18 11
jocis 0:010c6e517e18 12 int main() {
jocis 1:0f8dd2deb61b 13 pulses.setFactor(3600.0f/SO_PULSES); // Scale to kW; kWh
jocis 1:0f8dd2deb61b 14
jocis 1:0f8dd2deb61b 15 float averagePower = 0; // Average energy since last call of get()
jocis 1:0f8dd2deb61b 16 float minPower = 0; // Min. energy since last call of get()
jocis 1:0f8dd2deb61b 17 float maxPower = 0; // Max. energy since last call of get()
jocis 1:0f8dd2deb61b 18 float sumEnergy = 0; // Sum of energy over all since start of mbed
jocis 0:010c6e517e18 19
jocis 0:010c6e517e18 20 while(1) {
jocis 1:0f8dd2deb61b 21
jocis 1:0f8dd2deb61b 22 pulses.get ( &averagePower, &minPower, &maxPower, &sumEnergy );
jocis 0:010c6e517e18 23
jocis 1:0f8dd2deb61b 24 pc.printf ( "Power: %d (%.3f...%.3f) [kW] Energy: %.3f [kWh] SO-pulses=%d\r\n",
jocis 1:0f8dd2deb61b 25 averagePower,
jocis 1:0f8dd2deb61b 26 minPower,
jocis 1:0f8dd2deb61b 27 maxPower,
jocis 1:0f8dd2deb61b 28 sumEnergy,
jocis 1:0f8dd2deb61b 29 pulses.getCounter() );
jocis 1:0f8dd2deb61b 30
jocis 1:0f8dd2deb61b 31 wait(6); // Example 6 seconds; typical 1 minute (60 sec)
jocis 0:010c6e517e18 32 }
jocis 0:010c6e517e18 33 }