Actuating Solenoids is affecting my AnalogRead Pressure Measurements

Hi all,

I'm working on a project which requires actuating 4 24V solenoid valves (via MOSFET/digitalWrite), and measuring pressure through 4 Wika S-20 4-20mA pressure transmitters.

The problem I'm getting is that when I turn the valves on, my pressure readings will increase by up to 7 mbar with all four on. In other words, when I am using digitalWrite to switch on up to 4 MOSFETs, the voltage readings I'm getting are slightly increasing, which would correspond to higher currents produced by the pressure transmitters. Although this doesn't make sense, as the pressure transmitters should ideally output the same current if the pressure hasn't changed.

I ran a test program which displayed current readings from the transducers, and turned on individual solenoid valves if I pressed certain pushbuttons, and the jumps in current measurements can definitely be attributed to actuating the valves, rather than any faults in my code.

I've been working on this project for a while and am quite confident with all the code and circuitry.

My setup is as follows:

-Solenoids powered by 24VDC supply
-Pressure Transmitters powered by 12VDC supply
-Arudino powered by 9VDC supply
-All grounds tied together
-External, stable voltage reference of 4.079V provided by voltage reference diode
-Wiring to pressure transmitters is properly shielded
-24V Solenoid Valves actuated via MOSFETs with flyback diodes, using digitalWrite

  • 4-20mA output from pressure transducers is provided to 200 Ohm resistors, and voltage is measured across these resistors which gives current, which gives pressure.
    -Arduino is nowhere near the maximum current it can supply

Initially I was using one 24V supply for the valves and transducers, and I thought that the current drawn from the valves was affecting the power supplied to the transducers, giving inaccurate readings, however after isolating the supplies the problem persists.

So I'm assuming that the problem is with the internals of the microcontroller, but I can't work out what it is. Any thoughts?

Thanks