Auto Titration Gizmo advice

Hey arduino-ers!

I am new to the arduino world and I have gone through some tutorials on how to use the arduino. So now I am embarking on a project to make an auto titration device. I am doing this as part of my interest in my A-level Chemistry course.

My idea is to clamp a servo onto a burette valve, which is connected to an arduino. I will have a pH probe in the conical flask to measure the pH value which I have read, inputs a reading into the arduino which corresponds to the pH of the solution.
I will in turn write a code that causes the hand of the servo to correspond to the input voltage. For example, at pH 7 the servo will be at "0" and at pH 12, the servo will be at "180".
So as the titration goes along, the servo will automatically correct the valve of the burette limiting the amount of acid that gets poured in until it reaches the end point.

I have some questions which I hope you will be able to help me with:

  1. I am going to order a pH sensor on ebay, which comes with a BNC connector. I am perplexed at this BNC thing. I was wondering why bother using a BNC connector when I can just use the individual wires in the coil to connect them to the inputs on an arduino?
    Is there any advantage of using a BNC connector and how should I harness it?

  2. Any other input or ideas of how I need to improve this further?

Thank you so much! :slight_smile:

You need to compare how fast the pH sensor reports a change in pH versus how fast you can add material to adjust pH. If the sensor is faster than the material addition mechanism, great. If not, you need to slow down how fast material is added.

How will the new material be stirred in?

How will you control the desired pH level? Will that be hardcoded?

limjix:
I have some questions which I hope you will be able to help me with:

  1. I am going to order a pH sensor on ebay, which comes with a BNC connector. I am perplexed at this BNC thing. I was wondering why bother using a BNC connector when I can just use the individual wires in the coil to connect them to the inputs on an arduino?
    Is there any advantage of using a BNC connector and how should I harness it?

  2. Any other input or ideas of how I need to improve this further?

Thank you so much! :slight_smile:

If it's going to be used more than a few times, are there any issues relating to the sensor life? For example if it's possible for it to be damaged or wear out or go out of calibration, you'll need to replace it. Having a nice clean reliable BNC connector will be much better for that than having to disconnect cables hardwired to the Arduino pins.

Would you consider adding a display of the current and target PH values, and a knob/buttons to give control of the target?

Your proposed linear algorithm relies on the zero point of the servo exactly matching the zero flow condition. If it is off even slightly, the servo will shut the flow off above or below your target PH. I suggest using a PID or similar algorithm to control the servo. When set up correctly, this will ensure that the PH settles at the target regardless of any slight variations in the servo/valve mechanism.

PeterH:

limjix:
I have some questions which I hope you will be able to help me with:

  1. I am going to order a pH sensor on ebay, which comes with a BNC connector. I am perplexed at this BNC thing. I was wondering why bother using a BNC connector when I can just use the individual wires in the coil to connect them to the inputs on an arduino?
    Is there any advantage of using a BNC connector and how should I harness it?

  2. Any other input or ideas of how I need to improve this further?

Thank you so much! :slight_smile:

If it's going to be used more than a few times, are there any issues relating to the sensor life? For example if it's possible for it to be damaged or wear out or go out of calibration, you'll need to replace it. Having a nice clean reliable BNC connector will be much better for that than having to disconnect cables hardwired to the Arduino pins.

Would you consider adding a display of the current and target PH values, and a knob/buttons to give control of the target?

Your proposed linear algorithm relies on the zero point of the servo exactly matching the zero flow condition. If it is off even slightly, the servo will shut the flow off above or below your target PH. I suggest using a PID or similar algorithm to control the servo. When set up correctly, this will ensure that the PH settles at the target regardless of any slight variations in the servo/valve mechanism.

Hi Peter,
What is the idea behind PID and what does it do?

Also I have found this

I was wondering whether it would be better just to get this shield so I do not have to worry about the circuit.
I don't really understand why there is a need to use the shield. I mean can't the BNC connector be plugged into a breadboard connected to the arduino? What benefits do all these extra shields give?

limjix:
What is the idea behind PID and what does it do?

That's a good question. What steps have you taken to try to answer it yourself?

I don’t really understand why there is a need to use the shield.

I suggest doing a little research on the glass electrodes used in ph probes. They output a very small voltage in the mV range. So the signal must be amplified and filtered.

I assume your electrode is a dual electrode that includes both a glass and reference junction.

Practical Makers shield appears to be an amplifier for pH signals. It doesn't give much info on what the output range is but I guess you can adjust it for a 5 volt full range. I tried to look at the PDF file they had but the link was empty... not a good sign.

Developing a instrument amplifier from scratch, is not something you want to do. If you can confirm that the shield will give you a 5 volt output in the pH range you are looking for, I would advise you to use it and get on with the chemistry rather than spending lots of time on the electronics.

Wow, it's crazy how this post exists, I was just thinking about how an automatic titration device could be made using Arduino.
Anyway I don't know if you've had any luck using the servo, but there is an alternative method (though possibly less accurate).

I pretty much stole the idea from vernier, but you might try using an infrared sensor as a dropper counter. So basically mix this idea:

with this sensor,

and so for each drop a pH reading is recorded thereby creating a titration curve. From there you construct a second derivative graph to receive the equivalence point.

The downside ... is that the drops will each be the same amount and so there is no adjustment for what might be a huge spike in pH.