Version fonctionnelle, mais minimale du module de calcul de l'energie dans les condensateur
Dependencies: Amperemeter RTC Voltmeter
Energymeter.cpp
- Committer:
- yannolecool
- Date:
- 2016-04-11
- Revision:
- 4:73b06427ec56
- Parent:
- 3:80bf58b5f0d2
File content as of revision 4:73b06427ec56:
/* Project S5 info Author : lemy2301 */ //#include "rtos.h" #include "RTC.h" #include "Energymeter.h" #include "Voltmeter.h" #include "Amperemeter.h" Amperemeter* amperemeterIn; Amperemeter* amperemeterOut; Voltmeter* voltmeter; float accumulatedEnergy; float powerIn; float powerOut; void collectData() { float ampIn = amperemeterIn->getCurrent(); float ampOut = amperemeterOut->getCurrent(); float voltage = voltmeter->getVoltage(); float puissanceDiff = (ampIn-ampOut)*voltage; accumulatedEnergy += puissanceDiff; powerIn = voltage*ampIn; powerOut = voltage*ampOut; if(accumulatedEnergy < 0) { accumulatedEnergy = 0; } } Energymeter::Energymeter(PinName ampIn, PinName ampOut, PinName volt) { accumulatedEnergy = 0.0; powerIn = 0.0; powerOut = 0.0; amperemeterIn = new Amperemeter(ampIn); amperemeterOut = new Amperemeter(ampOut); //Offset capture at 0A amperemeterIn->setOffset(2.2972); amperemeterOut->setOffset(2.3125); voltmeter = new Voltmeter(volt); RTC::attach(&collectData, RTC::Second); } float Energymeter::getEnergy() { return accumulatedEnergy; } float Energymeter::getPowerIn() { return powerIn; } float Energymeter::getPowerOut() { return powerOut; }