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

input = MCP.readADC ();
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:
/****************************************************************************
/*
Distributed with a free-will license.
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.
https://www.controleverything.com/content/Analog-Digital-Converters?sku=MCP3428_I2CADC#tabs-0-product_tabset-2
/
/
***************************************************************************/

#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(“Getting ADC Readings from Channel 1…4”);
Serial.println(" ************************************ “);
Serial.println(” ");
delay(500);
}

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

address = MCP.devAddr;
Wire.beginTransmission(address);
error = Wire.endTransmission();
if (error == 0)
{
    long input;    
    MCP.SetConfiguration(1,12,1,2);
    input = MCP.readADC();
    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:

Your ADC resolution is set to 12bit. it should be 16bit