PWM for Injector

Hi. New to the board, Arduino, and coding in general. Lot's of good info out there. I have purchased a book, (Arduino for Dummies), and downloaded other info but the answer to this particular question is evading me. I was going to post in an ongoing thread about fuel injection but the forum gave me a notice saying that I might consider a new thread since they were so old.

Ok. My question is this. How do I use PWM to power an injector? My understanding is that the injectors operate using a ground signal. So the pulse to control them would be "open, ground, open, ground, etc." If I am understanding correctly I have the option of selecting from 0v,(open), to 5v. How is everyone controlling their injectors? Do you have to hook up the injector backwards? I am more than willing, (better described excited), to tackle writing the code for it on my own but have been unable to find out if the PWM on the board is capable of what I am wanting it to do.

Thanks for your help in advance,

John

It's an Uno board BTW.

Hi,
The PWM produced by the arduino is of fixed frequency, however using some timer manipulation you can adjust the frequency.
How many injectors and what is the application, fuel?
There are dedicated driver IC's setup specifically for HIGH SIDE switching of Injectors, it is more than just applying a PWM signal.
Inductance and supply voltage have to be taken into consider

http://www.ti.com/lit/ds/symlink/lmd18400.pdf

Tom..... :slight_smile:
I would suggest you do some google-ing

As stated I have done quite a bit of Google-ing. I do not plan on using the board to operate the injectors directly and have already obtained a peak and hold driver that will operate up to 4 fuel injectors. It is my understanding that the driver still operates on a provided signal from the ECU that is the same principle as a saturated driver which switches from open to ground as 12v is constantly provided from the battery to the injectors. I am just trying to find out if the Arduino board is capable of providing such a signal.

SinatraV:
As stated I have done quite a bit of Google-ing. I do not plan on using the board to operate the injectors directly and have already obtained a peak and hold driver that will operate up to 4 fuel injectors. It is my understanding that the driver still operates on a provided signal from the ECU that is the same principle as a saturated driver which switches from open to ground as 12v is constantly provided from the battery to the injectors. I am just trying to find out if the Arduino board is capable of providing such a signal.

And if not maybe one of the many persons who over time has had success driving a fuel injector with the Arduino board such as the gentleman who made the TBI lawnmower could explain how he was able to pulse the injector without a ground signal being sent to the injector.

Thanks again for your help Tom

If it helps, the technical term I think I am going for is "ground switching output."

Hi,
The arduino output is gnd to 5V, but with a transistor you can make a 0V/opencircuit switching arrangement.
Its called Open Collector output.

What is your electronics, programming, arduino, hardware experience?

Can you post a link to the spec of your "peak and hold driver that will operate up to 4 fuel injectors".

Thanks ...Tom :slight_smile:

Experience? LOL Absolutely none. No programming or coding experience at all. No electronics experience at all. Just an obsession to make a project work and willingness to learn. I have purposely avoided asking any questions specifically because I want to do it all myself but I found myself thinking that Arduino might have been the wrong way to go when I realized that I was looking for a ground switching output. The driver I have is made for the MegaSquirt system and utilizes the high impedance, (saturated), injector outputs on the Megasquirt board to run low impedance injectors using a peak and hold driver.

Here is the link to the driver board.

And your information about the open collector output looks like what I need. I will research that.

Thanks Tom

The JBPerf P&H driver board will take care of the required current variation (Not PWM as such), all you need to do is provide a Gnd signal to it in order to open the injector.

You can do this directly off the Arduino output pin, but a better way to go is to use a NPN transistor in between (Which will 'invert' your output, ie a HIGH signal from arduino would become a LOW signal to the P&H board). With the transistor in place you have what is known as a 'ground switching' or 'low side' output from the arduino.

My question is this. How do I use PWM to power an injector?

Do you need PWM? A quick Google check found a claim of 20ms pulse duration @ 6000 RPM. - Scotty

noisymime:
The JBPerf P&H driver board will take care of the required current variation (Not PWM as such), all you need to do is provide a Gnd signal to it in order to open the injector.

You can do this directly off the Arduino output pin, but a better way to go is to use a NPN transistor in between (Which will 'invert' your output, ie a HIGH signal from arduino would become a LOW signal to the P&H board). With the transistor in place you have what is known as a 'ground switching' or 'low side' output from the arduino.

Thanks Noisymime. Between your reply and Tom I feel confident that I the hardware will perform the task that I require. Now I am just going to have to keep reading and get to work on programming. LOL

Basically, I want to use a 0-5v pot to change either pulse frequency or duration similarly to what the guy with the EFI lawn mower did. Tom states that frequency is set so I am guessing duration is my only option. The injectors have a constant 12v input with ground switch from the driver. The additional driver board should take care of the increased amperage requirements.

Link to project I'm talking about.

Thanks guys.

SinatraV:
Basically, I want to use a 0-5v pot to change either pulse frequency or duration similarly to what the guy with the EFI lawn mower did. Tom states that frequency is set so I am guessing duration is my only option. The injectors have a constant 12v input with ground switch from the driver. The additional driver board should take care of the increased amperage requirements.

Link to project I'm talking about.

http://forum.arduino.cc/index.php?topic=8677.0

EFI lawn mowers are great fun (I did mine a few years back, but haven't pulled it out recently: Fuel only test of Speeduino (Arduino ECU / EMS) - YouTube)!

The frequency of your pulses changes with the RPM. You typically want either 1 or 2 pulses to occur every 720 degrees on a 4-stroke engine. So your pulsewidth varies how rich/lean the engine is, but the frequency must always vary up and down as the revs increase and decrease.

I am going to go the same route as he did and not use a cam shaft positioning sensor and just basically make an electronic carburetor. I am going for simplicity here and trying to replicate a carb but have it electronic. I do anticipate having to add in a MAP sensor to recreate addition fuel delivery that a vacuum would produce in a carb but only time will tell for sure.

Look up "N-channel MOSFET" or "MOSFET as a switch". It's a very neat way for a 5V device like an Arduino to control a 12V device like an injector.

Thanks. I'll look into that.

Sorry to bring up and old topic, I couldn’t get my injector to pulse at under 50 percent duty cycle using MOSFET iv ran the serial monitor and it’s doing with its told to, it’s arranged with constant 12v and pulse on the ground side

Apology accepted. Now post your code. In [ code ] tags, please.

its a program that reads map pressure and injects water at a given pressure. it works but not a lot happens low down under 55% duty slight hum but not actually looking to be opening or spraying

iv put a 10k pull down resistor directly from the gate to the source.

Hi
Please read the first post in any forum entitled how to use this forum.
http://forum.arduino.cc/index.php/topic,148850.0.html then look down to item #7 about how to post your code.
It will be formatted in a scrolling window that makes it easier to read.

Can you please post a copy of your circuit, in CAD or a picture of a hand drawn circuit in jpg, png?

Have you enough current for the injector, it sounds like at low duty you do not have the current to build up the magnetic field in the injector solenoid.

Don’t forget the injector is not instantaneous in operation, between applying current and the injector pine moving there will be a time lag.

So 50% duty may be less than 50% in actual mechanical injector open duty cycle.
You may need a lower PWM frequency.

Tom… :slight_smile:

Hi yes I’m new haha apologise again.