Skip to content

CircuitSetup/ATM90E32

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code
This branch is 1 commit ahead of whatnick:master.

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
 
 

ATM90E32 Arduino Library

This library powers the CircuitSetup Split Single Phase Energy Meter and the 6 Channel Expandable Energy Meter.

Use

Setup

#include <ATM90E32.h>
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:

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)