Detect for tacho

Discussion in 'Automotive Electronics' started by Robbo6, Jan 9, 2016.

  1. Robbo6

    Thread Starter New Member

    Jan 6, 2016
    4
    0
    PlugLeadDetect.png
    Hullo. My very first post. I am an amateur, so any simple advice would be appreciated.
    I have built an analog tachometer using an Arduino Nano and an automotive stepper motor. It all works nicely when bench testing. However, put the signal generator (Hall effect or photoreflector etc) near an old motorcycle magneto, and the connecting leads pick up interference from the spark plug lead. Magnetos are of a completely difference construction to a normal coil ignition system. Designed over a 100 years ago, the primary, secondary coils, capacitor and points all rotate, while the magnet is stationary - completely the wrong way around! There is no access or tapping into any of the system. So next idea is picking up the signal from the spark plug lead itself. Above is my initial idea for feeding a Voltage into the Arduino. I don't have an osilloscope, but can use one at work. I have to bring in a battery, a magneto and electric motor to drive the magneto (needs a hefty 12V motor to spin a magneto), so would like thoughts on if the above is worth a trial. Thank you. Rob Steward
     
  2. Picbuster

    Member

    Dec 2, 2013
    374
    50
    What do you want to measure refs per minute? or do you want to use it to adjust ignition timing.
    This question is due to accuracy of system.
    using the sparkplug lead will work however; cable leak big pulses as result.
    I used a copper wire and used cable isolation it as a 'capacitor' with 1 MOhm and 10K to gnd in series.
    but use a fast diode to clamp to 5V. a zener is to slow and spikes will eat your cpu.
     
  3. Robbo6

    Thread Starter New Member

    Jan 6, 2016
    4
    0
    Thanks for your reply.
    I'm just measuring revs per minute.
    The Aduino measures time takes for 5 pulses, calculates needle position, and moves the stepper motor to the new position.
    Thanks for the suggestion of a fast diode to clamp to 5V instead of a Zener - I don't want to cook my Arduino.
    Cheers, Rob.
     
  4. sailorjoe

    Member

    Jun 4, 2013
    361
    63
    Recommend you experiment with as few windings around your spark plug lead as possible. Fewer turns, smaller spikes, less chance of damage to Arduino.
     
  5. tcmtech

    Well-Known Member

    Nov 4, 2013
    2,039
    1,667
    Actually you have everything you need to pick up a good signal from the inverted magneto system. The permanent magnet is experiencing variations in its own flux lines as it reacts to the rotating coil assy.

    A properly sized coil or hall effect sensor around or in contact with the magnet will easily pickup the changes in the magnets flux and give you the needed signal you want without picking up a lot of secondary noises from the spark plug discharges like a coil on a spark plug wire would.
     
    BR-549 likes this.
  6. Robbo6

    Thread Starter New Member

    Jan 6, 2016
    4
    0
    sailorjoe, I am now testing with just 6 turns of winding wire. Seems to be 10V on my little hand held oscilloscope, but need a proper scope!
    Thanks for your input, tcmtech - I hadn't thought about picking up directly from the magnet. The permanent magnet is cast within an alloy housing, with laminated steel extensions to interact with the spinning armature. (sketch at left). Sketches 1 to 4 are what I think happens to the magnetic flux lines. (note - the primary and secondary windings around the armature are not shown) The points are timed to open at the precise moment the flux lines change direction (between sketch 3 and 4). Two questions are prompted from your idea -
    1. Where would be the best position to glue a Hall effect or coil - at the magnet or the extensions? (the extensions are difficult to access)
    2. Wires from the Hall or coil are likely to pick up noise from the spark plug lead?
    MagnetoFlux.png
    Originally, I had a slotted disc and phototransistor for bench testing, but when bolted to the motor, the leads (5V, 0V, signal) picked up the messy spark plug signals. I tried twisted pair, shielding etc, but couldn't avoid the spark plug signal, so that's why I started trialling using the plug lead. My skills are simple - I do not know how to process signals. Also, a "plug lead" detector would be universal. However, I will trial what a Hall or coil will pick up. Regards, Rob.
     
  7. ftsolutions

    Active Member

    Nov 21, 2009
    48
    2
    You could possibly even sense the primary side of the coil for the signal instead of the HV secondary side.
    Alot of older motorcycle ignitions are "wasted spark", so unless you are dividing by 2, your pulses could cause you to indicate a 2X RPM.
     
  8. wwuepper

    New Member

    Jan 1, 2014
    1
    0
    This is true for 4-cycle engines, two cycle engines will not have a wasted spark. But, having said that, if you count the pulses, every pulse will represent 360 degrees of rotation, wasted spark or not.
     
    Last edited: Jan 20, 2016
  9. Brownout

    Well-Known Member

    Jan 10, 2012
    2,375
    998
    If you used a fiber optic thread to transmit the light signal instead of a detector/wire lead, you would be able to transmit the light to a distant detector and avoid any interference. The detector would still need to be well shielded, but that would be true of any scheme you use.

    But I think you're on the right track with the torroid. Just make careful measurements before connecting your Arduino. Shielding and grounding as well as using a grounded resistor at the Instrument end of the transmission line are important.
     
  10. Brownout

    Well-Known Member

    Jan 10, 2012
    2,375
    998
    Remember that the Arduino input pins have millions of ohms of resistance. And so, signals of high impedance which are picked up by your detector/wires are felt at full value at your Arduino's pins. Besides shielding your wires, you need to resistively divide all those interferring signals. Say you connected a ten K-ohm resistor on the input near your Arduino. This would help to divide down capacitively coupled signals, which might be of millions of ohm impedance. Using a terminating resistor and coax wire would go a long way to suppressing all those unwanted signals.


    You should also consider isolating your Arduino from the torroid pick up sensor, using an opto-isolator or something similar. That way, if you get a large, rogue voltage spike, it will trash your opto and not your Arduino. A robust isolator would be able to better survive a large input event as well, maybe even for an extended time.

    Lastly, you might want to think about some level detecting. A comparator with an adjustable threshold would be the last line of defense for unwanted pulses. If you've shielded, terminated and isolated, your pulse of interest should be dominate enough to allow you to tune out any left over unwanted pulses by setting the threshold.

    Neat project. Cool unusual use of the components.
     
  11. Robbo6

    Thread Starter New Member

    Jan 6, 2016
    4
    0
    Thanks Brownout for your suggestions and encouragement. I have a 12k resistor in the circuit, and will get some co-ax cable and an opto-isolator. I admit to being untrained in electronics, so I thank you for your clear ideas. To be continued.......... Cheers, Rob.
     
  12. Brownout

    Well-Known Member

    Jan 10, 2012
    2,375
    998
    Another advantage of using an opto-isolator is you can isolate the operating voltage for the Arduino from your car's electrical system, and the inevitable overage caused by load dumps, which can well exceed one hundred volts, that could turn your Arduino into a piece of coal. I suggest running your Arduino from a separate battery set, if possible. And be sure to ground one end of you coax to your chassis or "-" battery terminal <prefered>. A shield won't do much good of there isn't a path to drain off charge.
     
Loading...