pressure sensor reading

first of all hi to everyone (noob here)

first let give some background on myself and what i am trying to achieve.

i am electrical engineer and my background is mainly PLC's & Variable speed drives for the automotive industry. i currently use a PLC & pressure transmitter to read the pressure within a cabin and i give the plc a setpoint to look for- in this case its -10 pascal and i use the plc to control a variable speed drive to control a extract motor (the input motor speed is fixed) so the pressure will increase/drecrease accord to the speed of the extract motor to give the cabin a pressure of -10 pascal (remember the setpoint) and this is done by some fancy maths and PID.

now the ARDUINO bit because of the expense of the plc (it does do other stuff within the control process) i wish to replicate some of the above function on the arduino unu for retro fit purposes, i just need a little help.

i can read the pressure transmitter through arduino by using the 4-20ma output and a 250ohm resistor to give 1-5v but i need to rescale this so i can work to a certain amount of accurancy (i will work out the pid bit later) so how can i rescale this pressure transmitter is 4-20ma -500 - 500 pascal - so 4ma is -500 and 20ma is 500 pascal any ideas? thanks for reading ta

With a transmitter span of -500 to +500 pascal (1000 units) you are endeavouring to operate around a set point of -10 which is only 1% of span. Presumably your desired control range is somewhere around 0 to -20 pascal. Since you are operating over such a narrowband of the transmitter span you appear to be attempting the to achieve the impossible. In effect every 1 pascal represents 1 point of the 1024 input resolution, so at best you are looking ast a nominal range of only 20 points in the 1024 available. Rescaling the signal or using an amplifier with lots of offset will increase the number of points available but it will not increase accuracy and may introduce lots of noise. It is a common misconception that you can increase accuracy by rescaling. You can never increase the accuracy of a measured variable by rescaling since accuracy is defined (controlled) by the primary transmitter and the portion of span being used. All that rescaling does is give you more numbers to look at.

I'd suggest you find a sensor with a range better suited to the application, say -20 to +20 pascal. You need a +range to cover the eventuality of the exhaust fan being inoperable.

Suggestion? Precision op-amp circuit springs to mind. Any links to the datasheet(s) so we can know how precise and accurate this sensor is?

thanks for the input but the sensor is extremely accurate but that is not really important what is important is we have the span of -500 to +500 pascal because of the size of airflow within the cabin the actual starting pressure inside the cabin. the sensor is something I use all the time albeit with a PLC and sum fancy maths/pid - but i can select a lower span say -50 to +50 pascal I just need a few pointers on how to rescale to a readable value that the operator can understand- i have no problem in writing programs for most if not all PLC' in ladder/structure/function but this language is new to me ta