Getting output voltage from load cell in arduino

Hello,

I am trying to receive output voltages from my load cell and then convert it to force with my arduino uno board. However, my arduino is not able to read the load cell properly. Such as when there is no load, there is still a high output voltage. Also, the reading from the analog input will go from 0-1023 and vice versa without applying any load.

I am using a 100N submersible load cell from Applied Measurements (In-Line Submersible Load Cell | IP68 | AppMeas) that has a ICA6H amplifier (Miniature Load Cell Amplifier | In-Cell Amplifier | ICA) already integrated within the load cell. The amplifier can output +-10 Vdc.

The company that I purchased the load cell from have already calibrated my load cell for tension and compression into a table of Output voltages in Vdc that correspond to the load applied in Newtons. So, I already have my y=mx+c equation to calculate for force. During calibration, the load cell was supplied with 15-18 Vdc. My goal is to be able to get an output voltage that corresponds to the appropriate Newton load applied. So that I may know that my load cell is operating properly.

For my set up, the load cell's red and black wires are connected to an external power supply of 11-14V and 10.5A. While the white output signal wire is connected to the A0 analog pin of my arduino board. That is it, a simple set up.

Is it something wrong with my code or set up? Sorry if It seem like I don't know what I am doing. I will be using this load cell to measure the thrust created by an underwater propeller as a part of my master's thesis and prior to two weeks ago, I did not have any knowledge of arduino, programming, load cells etc. So, I am still learning about all of this.

const int loadCellPin = A0;

void setup() {
Serial.begin(9600);
}

void loop() {

int value;

float volt;

float force; 

value = analogRead(loadCellPin);

volt = value * (5.0/1023.0);

force = (volt*-0.0983) - 0.017;  // for compression 

Serial.print("Value: ");
Serial.println(value);

Serial.print("voltage: ");
Serial.print(volt);

Serial.print(" \t force: ");
Serial.println(force); 

delay(500);
}

IS this your amplifier? ICA3H: ±10Vdc (±13 to ±15Vdc bi-polar supply).

If so, why did you not mention the two power supplies you must be using? Are you only using a single supply?

No, I am using ICA6H: ±10Vdc (14 to 18Vdc supply). I am using only one single external 11-14V and 10.5A power supply for the load cell. My arduino UNO board is connected via USB to my computer.

Ok. Please show a schematic of how you are biasing the input to your Arduino, with the resistor values.

The amplifier datasheet says the bridge (load cell) should be excited with 5v +/- 0.1v. Try that, and hope you didn't damage the amp using 11 to 14 v on the bridge.

First thing to do is disconnect everything and hope you did not damage the UNO or load cell.

The UNO can be damaged by voltages higher than 5V or less than 0V (negative voltages) that are connected to any digital I/O or analog input.

Looks like the amplifier board supplies the excitation voltage.

That's true. I was (and still am) confused by the OP's statement that the "load cell" is connected to an external 11-14v. I guess that means the entire assembly...load cell + amp.

Thats how I read it.

The load cell that was purchased already has the amplifier fitted into the load cell itself. So, the amplifier cannot be seen. I used a high voltage for the load cell because on the calibration certificate that the company issued, they stated that during their calibration tests, they supplied the load cell + amplifier with 15-18 Vdc. On the website for the amplifier I used ICA6H, I saw on the technical specifications that the minimum power supply for the amplifier was 14 Vdc.

Also, the load cell that I selected is the 3-wired option and in the wiring details table in this website In-Line Submersible Load Cell | IP68 | AppMeas , it says that the red wire is for "+ve supply", which I assumed just meant voltage supply to the load cell. Though I am not entirely sure about the difference between excitation voltage and power supply [Vdc].

You will need a voltmeter to see if you damaged the loadcell.
Set the voltmeter to a scale higher than 10V and see if it reads near zero with no force applied

This is my whole set up. I did not add any resistors onto my Arduino board.

Well, you are in luck. Since you did not connect a ground wire from the power supply to the arduino you probably did not damage anything but for now, disconnect the loadcell from the UNO.

Now we need to figure out a way to connect the load cell to the arduino without loosing any accuracy/precision.

Do you want to measure both tension and compression?

I would mostly need to measure for compression

In compression the loadcell output will go from 0V to -10V, so you will need to build an inverting op-amp circuit that has a gain of 1/2.

So for an input range of 0V to -10V the inverting amp output will go from 0V to 5V, which is within the range of the UNO ADC

If it reads near zero with a voltmeter, does it mean the load cell is damaged or not damaged?

If there is no load, then the output should be near zero but that won't tell you if it's damaged or not. You need to apply a load and see what happens.

should the load cell be connected to a power supply when I conduct these test with a voltmeter?

Yes, the voltage need to be greater than 14V but less than 18V