switching 24V hydraulik valve with Profet - Pulldown Resistor question


I want to switch 2 hydraulic valves at the same time with an UNO.
The valves using 30V and about 3A.

I’m using a Mosfet from Adafruit

for switching a Profet from Infineon

The problem is, that if I’m switching the Profet OFF, the voltage only drops from 30V to about 28,8V not to 0.
So I added a pulldown-resistor at the output of the Profet, but I’m not sure about the right amount of Ohm.
If I’m adding a 10k pulldown-resitor I’m getting 0,162V
4,7k pulldown = 0,074V
2,2k pulldown = 0,035V

So my questions are:
x why do I need a pulldown-resistor in this case? (I know why I normally use one, but if I think about switching off a normal mosfet, voltage is 0)

x and what is the right amount of Ohm for the resistor for switching the 3A valves??

I have attached a small graphic of my circuit. Pins 1,2,6,7 of the Profet need to be shorted according to the datasheet.

thanks in advance

I don't believe there's any need for R1. You're leaking current from the profet and that shouldn't be happening; adding R1 is just hiding the problem. The solenoid already provides a ~10 ohm path to GND (it's a 30V solenoid that takes 3A, so 30V/3A = 10R); you're just adding a resistor in parallel to lower it a tiny bit more.

If you hadn't included a diode across the leads of the solenoid you might have damaged the profet from the inductive spike when de-energizing the solenoid. Anode connected to GND and cathode connected to the 24V output from the profet.

There should be a ~10K resistor between mosfet M1's gate and GND. This dissipates charge on the gate when the Arduino is off, disconnected, etc.


  1. It sounds to me that you are measuring the output of the profet with the hydraulic valves disconnected. The voltage you are seeing is caused by a small leakage current through the profet. Don't worry about it, the leakage current is far too small to activate the valves. You will find that the output voltage drops to zero when you connect the valves. No need for a pulldown resistor.

  2. If you don't use a flyback diode, then the energy released by the hydraulic valves when you turn them off will be dissipated in the profet. The graph on page 10 of the datasheet gives the maximum load inductance as a function of load current. I strongly recommend using a Schottky flyback diode.

  3. The mosfet you have chosen to drive the profet is much too large for the job, because the profet sources at most 1.5mA from its input pin, and may turn on if you sink as little as 80uA. The mosfet will be slow to turn off because of the light load, and in a hot environment its leakage current could possibly be enough to turn the profet on. I suggest you use a small signal NPN transistor instead (rated for at least 40V, e.g. BC337 or even 2N3904), with the base driven from the Arduino through a series resistor. Alternatively, a 2N7000 mosfet, with a resistor between gate and ground as Chagrin says.

Thanks both of you for the quick response!

You were right, I hadn't connected the valves because they are expensive (500€ each), so I wanted to test everything first.

I tried everything now with 2x 24V lightbulbs (around 4,7A) and it works.

For replacing the Mosfet with a transistor, I have a few BC547, can I use those?
How much Ohm for the series-resistor?

And I will use a schottky-diode 100V 5A DO-201AD I have lying around, as suggestet to GND and output.

Thanks again!

For replacing the Mosfet with a transistor, I have a few BC547, can I use those?
How much Ohm for the series-resistor?

BC547 is good for this application. For the base resistor, I would use 10K or 22K.

Hi again!!

I've now replaced the mosfet with the BC547 transistors and added a 10kohm resistor to the base.

But when I feed the Profet with more than 12,3V to the supply pins it won't switch anymore.

The transistor is switching correctly.

Is it possible that the transistor is delivering not enough current?

It's unlikely that the transistor is not delivering enough current if you have it connected the right way round and your base resistor really is 10K. But you can easily check. Measure the voltage at the collector of the transistor, both when the Arduino commands it to be on and when the Arduino commands it to be off. Does the voltage vary with the supply voltage to the profet?

Sorry for the late reply, but I had to work on other stuff :frowning:

So I've measured the voltages:

supplyvoltage turned off:

collector (-) and pin2 (+):
on = 4, 92V
off = 0,002V

collector (-) and 5vPin(+):
on/off = 4,92V

emitter (-) and pin2(+):
on =4,92V
off = 0V

emitter(-) and 5vPin(+):
on/off = 4,92V

supplyvoltage turned on (20,05V):
collector (-) and pin2 (+):
on = 4, 92V
off = 0,002V

collector (-) and 5vPin(+):
on/off = 4,93V

emitter (-) and pin2(+):
on =4,91V
off = -10,77V >>?????????????????????????

emitter(-) and 5vPin(+):
on = 4,92V
off = -5,86V >>??????????????????????????

emitter(-) and Profet out(+):
on = 20,01V
off = 9,00V

gnd (-) and Profet out(+):
on/off = 20,01V

  1. The voltage I was looking for was the voltage between the collector and ground.

  2. You need to connect the ground (i.e. negative) side of the 24V supply to Arduino ground. I don't think you have that connection.

  3. I think you may have some other unwanted connection between the Arduino and/or its power supply, and the 24V supply and/or the profet. If that unwanted connection is just the pulldown resistor that you were trying initially, then it's harmless enough; but if it's a short somewhere then you risk damaging something.

ok, so now I'm feeling really stupid! :cold_sweat:
I put the BC547 backwards into my breadboard, so collector and emitter were switched, and therefore everything else was also connected wrong.

I didn't see this until I built the circuit from scratch and alone on another breadboard not with the other sensors and things connected to the arduino.
So this is why I got so many strange readings .... XD

Everything is working no as supposed to, so thank you very much for your patience and help!

And yes, I did think of connecting the GND from supply with GND from my arduino.

Thanks again!