I have ADE7880  and  i need to take voltage (rms value), current (rms value), power and power factor from ADE into the ARDUINO MEGA 2560.

I want to talk a little what i try to do. First i have asynchronous motor and i try to analyze this motor about its efficiency. So i need voltage ,current, power ,and power factor of this motor's input circuit and then take into  these values on MEGA 2560, after this, i will do some calculations with these values then i will show efficiency of motor momentarily on my pc with using c#.

So are there any codes for arduino to take these values from ADE7880?


Serhat Karaaslan

  • Hi Serhat,

    I don't have any specific code for the MEGA 2560 and the ADE7880 but I can certainly help with the interface.

    The ADE7880 has a SPI port or I2C port which is used to communicate with the part. I would recommend the SPI port because it can run at 2.5MHz. First you will want to set up SPI communication between your MCU and the ADE7880, there should be examples out there for your particular MCU. Test the communication by reading a register that has an initial value to make sure it reads back correctly then test the SPI write. If there are issues, verify the timing with Page 9 of the ADE7880 Data Sheet.

    Once communication is established, all features and functionality can be accessed with the SPI read and write operations. This way, the RMS, Power and all other metrology registers can be read back from the ADE7880 in order to get all the information you need.



  • Hi dlath,

    First thanks for your answer and i am sorry for my english

    I am new  in arduino and i investigate some codes on i2c . I have one question. Am i have to write specific value on specific address for read V(rms) or other parameter? Or i should just read  address of  parameter?Maybe this question is terrible but i am still learning :/



  • Hi Serhat,

    Page 76 - 77 of the data sheet is a great resource for the I2C communication. For reading values of the ADE7880, you have the send the slave address then send the register address for the register you want to read. Then the ADE7880 will respond with the slave address and the value of the register in four 8-bit bytes. This is shown in Figure 104.

    Then for writing to a register to change settings or calibrate the ADE7880, you have to perform register writes. This is done by sending the slave address, then the 16-bit register address then the 32-bit register value you want to write. This is shown in Figure 103.

    This way you can read and write any register inside the ADE7880 in order to set it up and get information out.



  • Can you provide the code for ADE 7880 interface with 2560 uc.

    i have use code i2c scanner but it is not working

  • This question has been assumed as answered either offline via email or with a multi-part answer. This question has now been closed out. If you have an inquiry related to this topic please post a new question in the applicable product forum.

    Thank you,
    EZ Admin