Example for Lib Pulses. Measurement of power and energy with a energy meter which has a S0 interface
Measurement of low frequencys based on timing between pulses. Example for using a energy meter with S0 interface.
main.cpp
- Committer:
- jocis
- Date:
- 2012-11-08
- Revision:
- 1:0f8dd2deb61b
- Parent:
- 0:010c6e517e18
- Child:
- 2:4805e84fa084
File content as of revision 1:0f8dd2deb61b:
#include "mbed.h" #include "Pulses.h" Serial pc(USBTX, USBRX); // tx, rx // Example for energy meter with SO interface // SO output of energy meter is connected (over opto-coppler) to pin 8 #define SO_PULSES 2000 // SO interface of energy meter with 2000 pulses per kWh Pulses pulses(p8, Pulses::FALL); int main() { pulses.setFactor(3600.0f/SO_PULSES); // Scale to kW; kWh float averagePower = 0; // Average energy since last call of get() float minPower = 0; // Min. energy since last call of get() float maxPower = 0; // Max. energy since last call of get() float sumEnergy = 0; // Sum of energy over all since start of mbed while(1) { pulses.get ( &averagePower, &minPower, &maxPower, &sumEnergy ); pc.printf ( "Power: %d (%.3f...%.3f) [kW] Energy: %.3f [kWh] SO-pulses=%d\r\n", averagePower, minPower, maxPower, sumEnergy, pulses.getCounter() ); wait(6); // Example 6 seconds; typical 1 minute (60 sec) } }