Help Needed with Pressure Regulator Wiring and Control

Hello everyone,

I am reaching out to the Arduino community for guidance and advice on a project I am working on. My training is in neurobiology and medicine, so I am facing some challenges in the engineering aspect of the project. I would greatly appreciate your help!

The goal of this somatosensory project is to deliver air puff stimuli of varying frequency and pressure to human participants, specifically targeting 6 locations on their legs and arms. So far, we have successfully controlled 6 normally closed solenoid valves using an Arduino. However, we are now struggling with the next part of the system, which involves a pancake air compressor that supplies air to an electropneumatic pressure regulator (ITV1050-21N2S4) from SMC Pneumatics. This pressure regulator is responsible for applying air puffs at varying pressures. Precision and automaticity is key, especially for calibrating the air puffs’ pressure at each of the 6 sites. The airflow goes from the air compressor to the pressure regulator, then to a manifold, and finally to the solenoid valves. Also, since we already have 6 solenoids being controlled by the first Arduino, we are utilizing a second Arduino solely for the pressure regulator.

Here are some specific details about the ITV1050-21N2S4 pressure regulator (https://www.smcpneumatics.com/ITV1050-21N2S4.html):

  • Power voltage: 24VDC
  • Input signal range: 0~5VDC. This allows us to adjust the pressure based on the electrical signal we provide. At 0VDC, the regulator is set at 0.005MPa, and at 5VDC, it is set at 0.9MPa.
  • Monitor output: analog (1~5VDC)

The SMC straight cord that came with the ITV has the following wires: white (input signal), blue (common/ground), brown (positive power), and black (monitor output signal). To power and control the ITV, I have a 24VDC power brick and a PWM module. I chose the PWM module because the ITV requires a constant input voltage, which needs to be converted into a variable input voltage for control. This is the plan I have developed:

  1. Connect the SMC Blue and SMC Brown wires to the negative and positive outputs of the power supply, respectively.
  2. Connect the SMC White wire to the output of the smoothing module, with the PWM pin going to the input of the smoothing module (pending).
  3. The SMC Black wire could potentially be fed back into the Arduino for monitoring purposes (pending).

For the power supply to the brick, I connected the power cord's hot wire to AC(L), the neutral wire to AC(N), and the green ground wire to FG(G). Since the 12V DC output from the power brick serves as the power input to the pressure regulator, I wired the following portions of the SMC pneumatics control cord:

  • V: SMC Blue wire (SMC pneumatics control cord)
  • +V: SMC Brown wire (SMC pneumatics control cord)

At this point, I am unsure about the next steps regarding the SMC white and black wires, as mentioned in my plan above. As I do not have an engineering background, I am uncertain if this wiring setup will work effectively. I am also unsure whether I should use the PWM module alone or combine it with a MOSFET. Additionally, I am considering whether I should attempt voltage step-down or explore other approaches that allow simultaneous modulation of power and control by the Arduino. Figuring out the answers to these questions has been particularly difficult as I have been unable to find similar setups online for this particular pressure regulator.

Any guidance or suggestions from the community would be greatly appreciated. Thank you in advance for your help!

What is this PWM module??
Which Arduino are you using?

Arduino Uno, and this is the "PWM module" I refer to above - apologies for any errors, I'm still learning :):
Kuuleyn Frequency to Voltage Converter Module,1-3KHZ 0-10V PWM Signal to Voltage Converter Module Digital Analog Board: https://www.amazon.com/gp/product/B091B6LGXB/ref=ppx_yo_dt_b_asin_title_o04_s04?ie=UTF8&psc=1

If this needs to be a clean, steady state DC voltage, you will need an 5V DAC (Digital to Analog Converter). This one provides 0-5V in 4096 steps, and any Arduino can control it.

1 Like

Thank you so much!

How accurately do you need to control the pressure? How do you set your existing regulators. How far apart are the electronic items?

Hi! I saw the diagrams you posted on my email but they are no longer here?

They only applied to the DACs I suggested

Just to be clear, using this allows both 1) powering the pressure regulator (24 VDC) and 2) controlling it? Or just #2? I just wanted to make sure that my plan for wiring the power and control make sense.

You will need a separate 24V power supply for the regulator. The Arduino+DAC supplies just the control signal. Follow the directions in pages 5-6 of the product manual.

Be sure to connect all the grounds (negative of the 24V supply to Arduino GND and sensor GND).

@cam_neur_bert
If you still need help don't hesitate to ask

1 Like

To be honest, I'd love more help! I got the MCP4725 breakout board you recommended, as well as the STEMMA QT / Qwiic JST SH 4-pin Cable with Premium Female Sockets - 150mm Long to make wiring a bit easier/solder-less. However, I'm feeling a bit confused about the wiring with the Arduino, MCP4725, and pressure regulator. I used a STEMMA QT to connect the MCP and Arduino: blue > Arduino SDA, yellow> Arduino SCL, black > Arduino GND, red > 5V. However, I'm not sure how to connect the pressure regulator: Right now, the pressure regulator's wiring only connects to the power supply; the SMC white and SMC black wires are not connected to anything. Should I be feeding them into the digital PWM module?

Also, although the importance of connecting grounds was highlighted above, since the 24V power supply is independently powering the pressure regulator, I don't have any way to connect the negative of the 24V supply to the Arduino GND. The power supply brick’s 12V DC output serves as the power input to the regulator. The -V terminal is connected to the SMC blue wire (common/ground), and the +V terminal is connected to the SMC brown wire (positive power).

Use wire, spliced if you have to. If you don't have any experience with wiring, get someone with experience to help.

The MCP4725 output is connected to the pressure regulator signal input (white, according to the manual). But the MCP4725 and Arduino should be tested for full functionality with an example program before any connections to the regulator are made.

Write a program to output several specific voltages over the full range of output, and use your multimeter to verify that the correct voltages appear on the output.

You don't need to, it's not necessary.

If you need more help just ask.

I have more questions, as I am having trouble with the wiring of the MCP4725 (used for DAC to control the pressure regulator). First, there are a few examples of wiring diagrams online.

The companion website (Arduino Wiring | MCP4725 12-Bit DAC Tutorial | Adafruit Learning System) shows the following wiring when using a STEMMA QT. I soldered the MCP4725 to a breadboard and mainly got the STEMMA QT for the testing phase.
adafruit

  1. STEMMA QT red wire —> Arduino 5V power
  2. STEMMA QT black wire —> Arduino GND
  3. STEMMA QT blue wire —> Arduino SDA 12C Data
  4. STEMMA QT yellow wire —> Arduino SCL 12C Clock

I tested the MCP using the following sketch + a multimeter with red/+ @ VIN and black/- @ GND.

However, the voltages showing up on the Serial Plotter didn't match the voltages on the multimeter. I'm not sure if the issue is the 1) wiring, 2) the sketch, 3) something else. In regard to the wiring, I'm not sure if I need a capacitor to smooth the signal (or where it would go in the circuit). Additionally, I'm unsure of whether I wired things correctly and even tested the right aspect. There are other circuit designs online that alternately wire the MCP's SDA --> Arduino A4 and the SCL --> Arduino A5, with VOUT >> A0 Arduino.

Again, the goal of this is to interface the Arduino, MCP4725 and the pressure regulator (see initial post and follow-up) to output an airpuff of specific intensity (in psi) during each trial. To that end, I feel a bit confused about 1) how to achieve this in terms of the code, and 2) wiring. It makes sense to me that the SMC white (control signal; Analog input 0 - 5 VDC) should go to the VOUT of the MCP4725, but I'm unsure about the SMC black (monitor signal; analog output 0-5 VDC). Finally, I'd love thoughts on the best way to simultaneously control 2 arduinos at the same time: one controls the opening and closing of the solenoids, and the other controls the pressure at which the system delivers the air puff. I'm using Matlab to run everything, so Simulink seems like the best way to go about this via Matlab. Still, wondering if there are other approaches through Matlab that don't involve diving into yet another skillset.

The solenoids are working well, but they are just part of the equation:

Both wiring diagrams are identical because on an UNO/Metro A4 is also SDA and A5 is also SCL

Please post your code by using the "copy for forum" feature in the IDE
It's found in the Menu under EDIT

Then just post the code here

1 Like

Why do you need two?
It can be done with one.

You need to consider the accuracy of your meter and the fact that Vref may not be exactly 5.00V.
How far off were the readings?

That's very helpful to know! How do you decide when to use which?

Sure! Thank you! I'm using Matlab to control the setup in its entirety, but I've been using the sketch feature for testing.

The idea is that we will have 21 trials during which a single air puff will be delivered. Each air puff will differ in location and intensity (psi). We will first do a calibration to test each location at 100% intensity. Full 100% intensity may be 0.5-1 psi, but I'm unsure since there's a testing period where I need to determine what 100% actually is.