First, there is a magic pin on the ATMEGA, the arduino processor. It's called ICP1. It can capture the time of an event, so you can calculate RPM and set a switchpoint for Plan A---Plan B. This also enables you to set something like: So an engine revolution takes X clockcycles, I want to do something at 60 degrees after the triggerpoint, which is thus X / 6 after that. With this, your measurements match the crankshaft position.=My idea is to find the difference between maximum and minimum crankcase pressure each cycle and output this in a modified form to the EFI CPU as an indication of real airflow through the two stroke's motor.
The on/off/on toggle switch simulates the ignition trigger pulse for timing the start/end of each cycle by allowing a digital input pin to go high briefly. The trigger is connected to a digital pin configured as an interrupt. The MCP4725 feeds directly to the meter and it is also read by the Arduino on another Analog input pin so all inputs, outputs and internal processing variables can be serial line printed in real time to the PC's screen for de bugging purposes.
It has taken a while to learn about Arduinos and programming them and of course, at the moment it is just a concept and I have no idea if this is going to improve my 2T's EFI system or not until I try it.
Why not use the MCP4725? At 100 kilohertz I2C speed you have a transmission time of 0.0003 second and it's 5 volt tolerant.
Embedded real time programming is a sport of it's own. For example: if you design your program for an engine that does 15000 rpm, your total program should execute within 1 / 250 second, which is the absolute maximum. So scope your software and parts of it, just by setting a pin on entry and clear it on exit. You will see the wonders of a processor and that miracles don't exist.
Bookmarks