I'm trying to put together a standalone instrument using arduino, for motorsport use.
Several setups in this genre use simple ECU's (no can-bus), and also carburated engines.
I want to have a tach input signal to the instrument, but I'm not sure how to design an input signal conditioner, to output a 0-5v square wave signal to the arduino.
As far as I have found, most ECU's or ignition controllers have either a
0-5v square wave,
0-12v square wave,
and also a grounding output to coil negative (ignition coil will act as a pullup to 12v, but with rough spikes)
signal that aftermarked tachometers can use to trigger input.
Does anyone of you have a suggestion for how to put together an input circuit that can handle all this types of signal, and feed the arduino a clean 0-5v square wave signal?
I am giving below some kind of solution from my poor stock into which I pour it during the development phase of a Taxi Meter. Few points to mention here:
1. The solution I developed based on Oscilloscope view and trial-and error. There was no theoretical calculation behind it.
2. The solution did not work very well for aged/old cars whose firing systems were very lousy and was creating all those notorious spikes at the terminals of the 12V battery.
3. The spark plug of engine uses about 12 kV - 20 kV electric pulses for its firings, which cause HV spikes to appear on the battery terminals and electronics logic. The filter minimizes the spikes.
4. There are two sources of noise due to HV firing: Conductive Spikes and Inductive Spikes. (a) Conductive spikes travel along the wiring connections and reach to the Vcc point of the Microcontroller of the signal processing instrument. Appropriate filter can minimize it.
(b) During HV electric firing, there exists an electromagnetic filed whose lines of forces crosses the instrument box; the electronic logic starts to pick up them. The MCU chip could be covered with conductive aluminium foil and shorted it to the chassis of the car.
5. The transducer (tachometer) should be biased by spike free +5V supply as indicated in the diagram.
6. The output signal of the transducer is a train of 5V/0V pulses whose frequency depends on the speed of the car. An one-shot (as shown in the diagram) could be used to generate short duration sharp pulses, and then feed them to the counter of the microcontroller.
I appreciate your all efforts. Pls, try to provide a circuit that presents your idea; it will help @eMTea and others.
The situation is really very annoying. I opened some commercial Taxi Meters to see the scheme employed; I could not trace well due to the proprietary approach of implementation.
I tried isolating the transducer power supply! Not very good result.
I tried opto-coupling the transducer signal; still, not very good result!
The firing voltage (15 kV @ 0.1 A) creates very deep down-going spikes on the battery terminals; the whole electronics of the instrument box goes totally crazy!
Look! The auto Radio/DVD player are working very fine! All the problems come when we, the hobbyists, are trying to do something!
If you simply wrapped a few insulated turns of wire round an HT lead and used a LM2917
to drive an analog meter or an arduino input you'd be on the way.