Post Go back to editing

Inconsistent voltage and current datas - ADE7753 and Arduino

Category: Hardware
Product Number: ADE7753

Hello,

I'm currently experimenting with an ADE7753 connected to an Arduino Uno. I want to do basic measurements for the moment (frequency, Irms, Vrms).

I'm using the Arduino ADE7753 library and a basic sketch as below. I'm reading the values on the Arduino serial port.

The frequency reading is very good but Vrms is very inconsistent, values are unstable and varying on a large range.

Sketch:

#include "ADE7753.h"

ADE7753 meter;                        // Default constructor
// SPIClass Hspi(HSPI);
// ADE7753 meter(Hspi, 15, 4000000);  // Constructor for non-default SPI bus and frequency

// Clock frequency and calibration coeficient
const uint32_t CLK_FREQ = 3579545;
const double AENERGY_COEF = 1.0;
const double VAENERGY_COEF = 1.0;
const double IRMS_COEF = 1.0;
const double VRMS_COEF = 1.0;

void setup() {

  Serial.begin(115200);
  meter.begin();

  /*
    Set channel 1 (current) and channel 2 (voltage) gain
    ADE7753_GAIN_1
    ADE7753_GAIN_2
    ADE7753_GAIN_4
    ADE7753_GAIN_8
    ADE7753_GAIN_16
  */
  meter.setCh1Gain(ADE7753_GAIN_8);
  meter.setCh2Gain(ADE7753_GAIN_8);

  /*
    Set channel 1 (current) full scale
    ADE7753_FS_0_5V   => 0.5 V
    ADE7753_FS_0_25V  => 0.25 V
    ADE7753_FS_0_125V => 0.125 V
  */
  meter.setCh1FullScale(ADE7753_FS_0_5V);

  Serial.println("Frequency\tRMS Current\tRMS Voltage");
}

void loop() {

  double AEnergy = AENERGY_COEF * meter.readAEnergy();
  double VAEnergy = VAENERGY_COEF * meter.readVAEnergy();
  double Frequency = (double) (CLK_FREQ / 8.0) / meter.readPeriod();
  double IRMS = IRMS_COEF * meter.readCurrentRMS();
  double VRMS = VRMS_COEF * meter.readVoltageRMS();
 
  // Show active and apparent energy, frequency, and RMS current and voltage
  Serial.print("F: ");
  Serial.print(Frequency);
  Serial.print("\t");
  Serial.print("I: ");
  Serial.print(IRMS);
  Serial.print("\t");
  Serial.print("V: ");
  Serial.println(VRMS);

  delay(1000);
}
Thank you for any clues.
Patrick

Edit Notes

Subject edited
[edited by: Pat221 at 5:13 PM (GMT -4) on 31 Oct 2025]

Before You Switch


Switching languages will make ADI Explorer unavailable. Resume your session by switching back to English and reopening ADI Explorer.