Measuring voltage ranging from -700mV to -100mV with Arduino Uno

Hello
I am new to Arduino. I am making an electrochemistry project where I want to measure voltage between a reference electrode and a metal electrode. The voltage range is between -700mV and -100mV. Please guide me about how should I go about doing this.
Thanks in advance.

You could tie the reference to 1V reference of arduino and set analogRef to 1 V and then measure with analogRead...
Your voltage will be 1-Vmeas.

1 Like

Please post schematics showing the circuitry.

1 Like

PROVIDED your electrodes (and the electrolyte, and rest of the equipment) is not electrically connected to anything else, you can just reverse the connections, so your signal is between +100 to +700mV.
Then you can measure it as shown here

For more accuracy and better resolution you can choose the "INTERNAL" reference.

However if the electrolyte is not electrically isolated the situation is more complicated.

2 Likes

You can use an op-amp and a few discrete components. Here is a circuit I found that should work.

10 kohm input impedance may be too low for an electrode...
Maybe add a buffer opamp...

Ratio of resistors needs adjustemt as -0.7Vx10=7V...
So outside power supply range...

Why would you do that when you can just rverse the connections?

Without a schematic, it’s unclear where the ground is in your setup. Additionally, the metal plate; what is it connected to? I also have no information about how your system is powered, so I opted to take the safest approach in my response.

Of course. BTW Happy New Year!

But in the absence of that information it makes no sense to proceed to a complicated design. I'd argue the simplest assumption is the system is electrically isolated - like a pair of electrodes in a beaker of electrolyte. (Occam's razor)

If that is not the case then a more complicated solution would be needed - but we'd need the information first. Then perhaps a circuit like yours but maybe using an isolation amplifier.

2 Likes

Goodness me! I am pleasantly surprised by the number of responses my query received.
My system is nothing more than a beaker with NaCl solution, one steel rod and a graphite rod. And the voltage is to be measured between these two rods. I was considering the solution suggested by @johnerrington which was to simply toggle the connections so that the negative values become positive, but I am worried if someone could mistakenly change the connections leading to a negative voltage given to Arduino, which could damage it (?).

Also, I would be connecting another rod (another metal) in the same solution to measure the current flowing across two metals. Could I achieve this using Arduino? I will be manually disconnecting the voltage measurement connections for this using a ON-OFF-ON switch.
I have attached the schematic of what I intend to do. Right now, I'm doing this using two multimeters and the aforementioned switch.
Again, thank you all so much for so many responses.

Measuring current will be more difficult...
As you have a low voltage and a low current, you need a large shunt resistor (approx. 1 ohm) to measure this current, but a large shunt will heavily influence the current that you want to measure. You will need an instrumental amplifier so you can use a far smaller shunt... (0.01 ohm?).
I hope others can give you some advice here...
You may also search in this forum:
"Instrumental amplifier INA"

It is possible.
Protecting for reverse polarity is simple, no problem there.
What current range do you need to measure?

Provided the voltage is less than Vcc/2 you can use this arrangement


R1R2 provides a reference voltage of Vcc/2
All measurements are made from this level.
R3,4,5 protect the arduino inputrs.

How would you do that? To measure a current you would need a closed circuit. The voltage measurements are made on (essentially) an open circuit.

1 Like

Glad to know!
The currents can range anywhere between 100mA to 0.1mA depending on the type of metals and electrolytes used.

Thanks for the schematic!
I am currently measuring the current using the multimeter. It is basically the current produced by the cell. The circuit being completed via the multimeter. Is this not possible using an Arduino?

The current is a function of the electrochemical potential and the loop resistance.
Yes you can measure the current (well, the voltage across a resistor) with an arduino, but I dont know what that would tell you.
Have you defined your objectives for this experimant?
Perhaps you should look at measuring the internal resistance of the electrochemical potential. You would need to test with a few different load resistances, and graph the results.
Bear in mind if current is flowing you will get electrolysis and the buubbles will change the effective surface area of the electrodes.

This simple circuit will protect the Arduino inputs from negative voltages and over voltages.

W can't expect that Arduino UNO will be doing everything for us.

Arduino UNO expects that a you feed a voltage of range +0 mV to + 1100 mV 1100 mV or +0 mV to +5000 mV into one of its six analog channels.

As your source voltage is of the range -700 mV to -100 V, you must convert it into positive voltage and then amplify it to be within the FS range of the ADC (1.1 V or 5V) for which you need to use ax external suitable Instrument Amplifier or choose an MCU whose ADC can convert a bi-polar sigal.

The current will be measured only momentarily, say for a few seconds. I'm then disconnecting this connection between the two electrodes (two dissimilar metals) using the switch and then connecting and measuring the voltage across one of these two metals and the reference electrode. As shown in the schematic previously, think of A and B to be those dissimilar metals while C is the reference electrode. The objective is to show the effect of various electrolytes and additives to these electrolytes on the current (between two metals) and the half-cell potential (between the metal and the reference).

I shall implement this for voltage measurements, thank you. Could you please tell me what software did you use to draw this circuit diagram?

To measure the current you will need a closed loop.

In which case it is the internal resistance of the cell that you need to measure. Not the "current".
You can measure Rint by taking measurements of I for two different values of Rext, then doing some algebra to eliminate Rext from the equation. Or simply by adjusting Rext until Vext = Voc (the open circuit voltage) /2

Will I be able to replicate the current value on Arduino that I see on the multimeter which is connected as per my schematic?