We are trying to use a TDS sensor with an output of 0-2.5vdc, that is designed for use with Arduino, as part of a PLC system. I tried to take the TDS meter directly into the PLC analog input but that doesn't work. I get an analog voltage to the input but it is 1/10 the 2.5 volt output rating of the sensor.
The PLC analog input is 0-10vdc.
I believe I need to connect the sensor to an Arduino controller then from the controller to the PLC. Has anyone help me with which controller will have a 0-10 vdc output.
Any chance the PLC has a scale instruction?
You want to scale in the analog domain or you lose resolution. A 40x gain opamp is needed to scale a 0-250mV signal to 10V. Or it could be that the sensor is correctly sending a near-zero reading. Or you could have a scaling jumper mis-set. Some sensors have selectable scaling network.
Thank you for the reply. I don't believe this sensor has any jumpers but I will open it today to check. Here is a link to the sensor I am using.
Yes, I can scale the readout to get close to the reading I need but the range is limited.
Hi @jkxtreme
Welcome to the forum.
How do you mean limited?
0 to 2.5Vdc represents 0 to 1000ppm.
If you get the PLC to scale you tell it 0 to 2.5Vdc represents 0 to 1000ppm.
What model PLC are you using?
Does the PLC have other levels of voltage input, can PLC analog be configured to 0 to 5Vdc?
If this is in an industrial setting, and you want to use a converter, there are many industrial grade level converters.
Can you please tell us your electronics, programming, arduino, PLC, hardware experience?
Thanks.. Tom...
![]()
The PLC is from EZAutomation. I have 40 years experience with PLC programming. The PLC analog input is 0-10 vdc. The sensor never quite goes to zero. In open air the sensor puts out .275 vdc and at its max tds it puts out 2.396 vdc. You may have just provided the answer. The scaling allows me to set a value for reading zero and a value for reading max so I should be able to set those numbers. Don't know why I didn't think of that.
Let me test it this morning and I'll get back to you.
I have zero Arduino experience.
I am able to scale the input to the display but because the input max is only .896 vdc and the PLC analog input is 0-10 vdc my displayed reading is off. The tds sensor will provide a .275 - 2.396 vdc output whenever there is no load. Once the tds is connected to the PLC input, the voltage range drops to .023 - .896 vdc. The sensor output is only rated for 100 ma so I'm guessing that's why I'm having issues.
My system will shutdown if the tds is above 500 ppm and surprisingly if I play with the scaling, the display matches the actual tds reading from 10 ppm to about 750 ppm. Since the system shuts down above 500 ppm I can use it as I currently have it designed.
I was hoping Arduino had a signal conditioner that would allow me to take that 0 - 2.5 vdc signal and push it up to 0 - 10 vdc or even 0-5 vdc.
There are such things out there.
Sounds as if you have the totally wrong idea about the Arduino. ![]()
It is not a linear device, it is a digital device, largely like a PLC.
If you want to change a voltage range from a few volts to 10 V, the device you need is called an op-amp, not an Arduino. Totally different. ![]()