# MCP3428 4 Channel 4-20mA Board Another Inconsistent Readings

I have a big problem with the precision and / or instability of the measurement with MCP3428 4 Channel 4-20

To the input signal I apply the equation

mA = input * 0.00069;

And the result is totally removed from reality.
For example, when the current is 20mA, the reading I get on the serial monitor is around 1.25mA. For 12mA I get around 0.78mA and for 4mA I get 0.2mA on the serial monitor

In addition to the above I have this other problem

On the same channel I have generated a current of 4mA, 12A and 20mA.
For each value of 4-20mA I have obtained up to a difference of 75% of difference between one reading and another.

• I have tested with different voltage sources
• Implementing an averager would hide the error
• In the 4-20mA loop I have installed a stable 24.28V voltage source
• I have installed a 10uF capacitor in the input channel
• I understand that the parts of the board have an error of 2%, but this is far from the error greater than 50%

I need help with these problems

Code:
/****************************************************************************
/*
Use it any way you want, profit or free, provided it fits in the licenses of its associated works.
MCP3428
This code is designed to work with the MCP3428_I2CADC I2C Mini Module available from ControlEverything.com.
/
/
***************************************************************************/

#include <MCP3428.h>
#include <Wire.h>

MCP3428 MCP(0x68); // Declaration of MCP3428: A2, A1, A0 bits (000, 0x68)

void setup()
{
// Start serial communication and set baud rate = 9600
Serial.begin(9600);
Serial.println(“MCP3428 Analog to Digital Converter”);
Serial.println(" ************************************ “);
Serial.println(” ");
delay(500);
}

void loop()
{
byte error;
Wire.begin(12,14);

``````address = MCP.devAddr;
error = Wire.endTransmission();
if (error == 0)
{
long input;
MCP.SetConfiguration(1,12,1,2);
double mA = input * 0.00069;

Serial.print("Input: ");
Serial.print(input);
Serial.print(" mA: ");
Serial.println(mA);

delay(500);
}
else
{
Serial.println("MCP3428 Disconnected!");
Serial.println(" ");
Serial.println("        ************        ");
Serial.println(" ");
}
delay(500);
``````

}

Photos

Serial Monitor: