Hydraulic proportional valve control, using an arduino

Our 30 year old Manlift uses descrete components to produce a square wave output (around 150hz) to control a hydraulic valve. As I understand it, instead of outputting a constant voltage from 0 to 12 volts, it outputs a square wave duty cycle so it doesn't heat up or something? To help you understand how it works: The proportional valve is like two relay valves connected in series, with 0 volts and 12 volts at each end with a center tap connecting the two, coming from the control. So neutral is the equivalent of 6 volts, only they tell me it's not really 6 volts, but 12 volts, cycled on/off 50% of the time. Forward, or 100% duty cycle would turn one valve completely on, the other completely off, moving it full speed in that direction. and 0% duty cycle the opposite direction.

This sounds exactly like what an UNO can do, and it won't cost $700, like the new old school PCB! I'm needing to replace one of the joysticks, and thinking it would probably be a simple thing for an atmega328 chip. The attached schematic is the way the original joystick worked. It's powered by a 741 opamp IC.

Couldn't I just have an Atmega produce PWM for a MOSFET to do the same thing? The Atmega would read the joystick POT, and do the PWM accordingly.
In the schematic, there's 2 MOSFETS or transistors being used. PNP & NPN. Would I need both of these? If someone could explain why there's two, I would really like to understand it.

The output has a 6 amp diode on it to keep 12 volt backfeed out from other systems. So could I just just a heavy PNP MOSFET, and PWM from the UNO chip?

I'm thinking something along the line of this power Mosfet by sparkfun (This one is NPN, but they have the PNP equivalent)
It needs to handle about 3 amps of current at 12 volts, so I'd need to beef up the traces on the board I make.

Thanks so much. If this is do-able, it can save $$$!

Squarewave.pdf (14.2 KB)

I think you are overthinking the solution. I bet someone can use a NE555 and $1.00 worth of parts to get it to work.

Paul

No, I think an Arduino is better than a 555. It's easier to change software than hardware.

It needs to handle about 3 amps of current at 12 volts, so I'd need to beef up the traces on the board I make.

That seems to indicate that you need an output with some serious power, like a motor driver. A half H-bridge would probably do just fine for this. Pretty much any H-bridge motor driver shield could be used as they almost all handle 12V and 3A. Just connect to one of the motor terminals. Feed it some analogWrite()s and see how it goes.

Putting together the half H-bridge yourself with PNP and NPN transistors is a lot of work. There's a few subtle issues that the simple tutorials and textbooks ignore totally.

Hi,

Question about the 150Hz square wave and a valve that is called proportional. All using a Joystick.

Does the "square wave" need to change to make the valve provide different pressure to the piston(s)?

If so how does it change?

https://www.google.com/search?q=pulse+width+modulation

Hi.

The way you describe it, sounds like a Danfoss valve to me.
A Danfoss valve works a bit different from other valves (that i know of), because it has a single control signal which looks a lot like what you described.
If it really is such a valve, it will have electronics incorporated.
You need to power it and send it your control signal.
Therefore this control signal doesn't need to be a power
The schematics you uploaded show an end stage which can handle up to 1 A continuous or 3 A peak.
This is what a datasheet of the 2N4923 tells us on top of page one:

Datasheet:
1.0 AMPERE
GENERAL PURPOSE
POWER TRANSISTORS
40

80 VOLTS, 30 WATTS

So i doubt you need to create a 3A PCB.

Your schematics: