My first ambitious arduino project is to take a children's quad bike which wasn't running due to carby issues and convert it to EFI + electronic ignition. The basic gist of the project is this:
fuel will be delivered via a high pressure fuel pump with a pressure regulator to provide a constant pressure to the injector
the RPM calculation and ignition timing will be taken from an existing variable reluctance sensor on the crankcase
the spark will be generated using an LS1 coil pack (which takes a microcontroller 5V output directly to fire the spark plug) to keep it simple
the amount of fuel required will be calculated using a manifold air pressure (MAP) sensor, a inlet air temperature sensor (IAT) and the RPM calculated via the VR sensor.
For this I have put together the following schematic - any critiques and thoughts would be much appreciated please! I am quite green with all this and am very open to suggestions and improvements!
The IC for converting the VR sensor output into a microcontroller friendly input is a MAX9924, the MAP sensor is a MPX4250AP1, and the IAT sensor is a basic NTC thermistor. The injector I have taken from a Peugeot 306 car and seems to open ok on a 12V signal via the MOSFET as shown below.
The plan for the code on the microcontroller (a Mega 2560) is to have it fire the spark when it gets the input from the VR sensor and then to provide fuel according to the following steps:
calculate the mass of air going in to the engine via the ideal gas equation
n = PV / RT where P comes from the MAP sensor, V comes from the RPM calculated and the size of the engine (which is about 80cc), T comes from the IAT sensor, and R is constant.
with this then the mass of fuel is calculated as 1 / 14.7 * mass of air
With the rate of fuel through the injector at the set fuel pressure having been previously calibrated the microcontroller can then pulse the desired amount of fuel through.
The schematic developed so far is this: