# ATM90E32 Arduino Library This library powers the [CircuitSetup Split Single Phase Energy Meter](https://github.com/CircuitSetup/Split-Single-Phase-Energy-Meter) and the 6 Channel Expandable Energy Meter. ## Use ### Setup ```cpp #include ATM90E32 energy_meter{}; void setup() { energy_meter.begin(CS_pin, lineFreq, PGAGain, VoltageGain, CurrentGainCT1, CurrentGainCT2, CurrentGainCT3); } ``` ### Getting Basic Power Data A loop to get basic power data: ```cpp void loop() { voltage1 = energy_meter.GetLineVoltageA(); voltage2 = energy_meter.GetLineVoltageB(); voltage3 = energy_meter.GetLineVoltageC(); CT1 = energy_meter.GetLineCurrentA(); CT2 = energy_meter.GetLineCurrentB(); CT3 = energy_meter.GetLineCurrentC(); watts1 = energy_meter.GetActivePowerA(); watts2 = energy_meter.GetActivePowerB(); watts3 = energy_meter.GetActivePowerC(); totalWatts = energy_meter.GetTotalActivePower(); } ``` ### Getting Metering Values The following are other functions for other metering data that the ATM90E32 calculates. - GetReactivePowerA() - GetReactivePowerB() - GetReactivePowerC() - GetTotalReactivePower() - GetApparentPowerA() - GetApparentPowerB() - GetApparentPowerC() - GetTotalApparentPower() - GetPowerFactorA() - GetPowerFactorB() - GetPowerFactorC() - GetTotalPowerFactor() - GetPhaseA() //phase angle - GetPhaseB() - GetPhaseC() - GetTotalActiveFundPower() - GetTotalActiveHarPower() - GetFrequency() //voltage frequency - GetTemperature() //chip temperature ### Getting Energy Over Time The following functions get data from the ATM90E32 that is converted to kWh. The registers are cleared once they are read. - GetImportEnergy() //forward active energy - GetImportReactiveEnergy() - GetImportApparentEnergy() - GetExportEnergy() //reverse active energy - GetExportReactiveEnergy() ### System Status These functions get the raw hex values from the system status registers - GetSysStatus0() - GetSysStatus1() - GetMeterStatus0() - GetMeterStatus1() ### Getting Any Other Register Value This function takes the name of any register (defined in ATM90E32.h) and outputs the value - GetValueRegister(registerRead)