To get the right mixture you need to measure the intake manifold air
temperature and the manifold pressure..
The fuel injected is then proportional to the product of the inverse
of the air temperature and the absolute manifold pressure. Hotter air
less fuel. Colder air more fuel.
The absolute manifold pressure measurement is no problem with a Free
Scale pressure sensor connected to an A to D pin on the MM.
However MM BASIC has a special function for measuring temperature
called DS18B20( pin )
Measuring Temperature The DS18B20() function will get the temperature
from a DS18B20 temperature sensor. This device can be purchased on
eBay for about $5 in a variety of packages including a water proof
probe version. The DS18B20 can be powered separately by a 3V to 5V
supply or it can operate on parasitic power from the Maximite as
shown on the JPG.
Multiple sensors can be used but a separate I/O pin and pullup
resistor is required for each one.
To get the current temperature you just use the DS18B20() function
in an expression. For example: Any PRINT "Temperature: "
DS18B20(pin) I/O Pin Where 'pin' is the I/O pin to which the sensor
is connected. You do not have to configure the I/O pin, that is
handled by MMBasic. The returned value is in degrees C with a
resolution of 0.25oC and is accurate to ±0.5 oC.
The time required for the overall measurement is 200mS and the
running program will halt for this period while the measurement is
being made. This also means that interrupts will be disabled for
this period.
If you do not want this you can separately trigger the conversion
using the DS18B20 START command then later use the DS18B20() function
to retrieve the temperature reading. The DS18B20() function will
always wait if the sensor is still making the measurement.
For example: DS18B20 START 15 < doother tasks
So you start it every second and come back when the next second tick
comes along.
Locate (x,y)
PRINT "Temperature: " DS18B20(15) 'EFIS
Then divide that number into one and multiply by the manifold
pressure.
1/ DS18B20(15) X manpress = injector pulse width
Quite simple.
BTW You don't really need timed injection for a AC engine.
MM BASIC command PWM freq, ch2, ch1
ch2 & ch1 are dedicated PWM pins.
freq’ is the output frequency (between 20 Hz and 1 MHz)
This works in the back ground and does not affect the time available
for programming.
Typical injector turn on time is 1.2 msec. Turn off time is .9 msec.
20 HZ is 50 msec. So if the injectors are on for 45 msec that is
about max flow. The injectors will be on most of time.
Tracy Crook used 2 injectors at low manifold pressure and 4 injectors
at higher pressure. This caused a lot problems around the 2 to 4
transition causing the engine to run rough. The RX8 engine uses six
injectors.
You might use a 555 to send a fixed width to a couple of injectors
out of six just for the idle mixture. This will give a way to adjust
the idle mixture.
We can learn something from Megasquirt.
http://www.megamanual.com/v22manual/minj.htm
Fuel injector calculator.
https://www.rbracing-rsr.com/calcinjpulse.html
Here are the results for a 2 rotor P-port with 250 HP at 7500 RPM.
Looks like idle is still a problem with all four injectors working
all the time.. Maybe we can get away with just two bigger ones. Paul
Lamar
I have used multiple DS18B20s with Arduinos and Teensys using only three
pins; power, ground, and one I/O. The DS18B20 is addressable, so string
whatever you need together on one data line.
Terry Adams
KSCK
The Rotary Engine News Letter. Powered by Linux.
If you want off the list PLEASE let me know and I will
remove you. ACRE NL web site.
http://www.rotaryeng.net
You Tube
http://tinyurl.com/beqqxas
Copyright 1998-2015 All world wide rights reserved.