Disclaimer: I am extremely new to the world of electronics. So if this is a dumb question I apologize ahead of time.
I would like to make an electronic governer for an engine so I can adjust it as I please. To do this I need to read the engines RPM and the best way I can think to do this is by reading the voltage spikes every time the coil fires the spark plug. This pulse would be somewhere under 12V and I'm not sure what the amperage would be but it shouldn't be more than 10 at the very maximum. How would I read this spike in voltage? Is there a sensor I need to buy or can I just directly hook it up to my MEGA? Would I need to put some resistors in the line first to lower the spike to safe levels? How much current and voltage can a MEGA take? Any input is helpful.
Safest option would be to use an inductive pickup to sense the passing of the gear teeth or spokes on the flywheel, or any other mechanical part that moves several mm during each crankshaft revolution.
Disclaimer: I am extremely new to the world of electronics.
I would like to make an electronic governer for an engine
I seriously suggest you start with the beginnings in this case. Such as blinking an LED, reading a button.
This doesn't at all sound like a beginner's project - meaning the most likely result you have is utter failure. While if you build up your knowledge foundation first, you get a much better chance of success in the end. Lots of tricky bits in coding, sensing, wiring it all up so it doesn't fall apart the moment you start up the engine, etc.
Thank you for the input. I have programming experience and mechanical experience, but I've never really tried to put the two together. Hence the Arduino and forum posts. I will do the basic tutorial stuff once I have some free time and work up to this project. I know it's not exactly beginner-friendly, but its the sole reason I bought the Arduino so I figured I would gather data now rather than wait. I cant use a flywheel because it doesn't have one. The engine just has an output shaft that goes directly to the transmission and it uses the alternator to start the engine. It's a weird engine, to say the least. So is there a way I can read the voltage pulses going to the coil?
Voltages on the low-voltage side of the coil (on the contact set) are much more than 12V if this is an old style ignition (pre-CDI)
CDI usually uses safe voltages on the contacts, but more lethal energy levels for the spark.
I would suggest using some sort of opto-coupling for this, keeping the Arduino safe from any nasty voltages, and caution needs to be observed if you haven't dealt with ignitions before.
An old style ignition is likely to have a capacitor that's well past its best and may be in need of replacement. A failing capacitor will make your task harder as the low-side voltage pulses wont be as controlled.
Remember the low-side voltage pulses are more than 12V, treat them as potentially lethal and don't let yourself become part of the ignition circuit inadvertently.
What you are looking to build is called an "inductive RPM tachometer" (you can buy these ready-made for around $20 but they don't have any outputs that could be read by Arduino).
If you google "arduino inductive rpm tachometer circuit" several interesting results come up including this one that looks promising (among others).
At a basic level you are going to be building a variation of a "current monitoring" project. In typical applications these monitor the amount of current flowing through a electric circuit to calculate how much power an appliance uses etc.
The basic component is a "Current Transformer" (CT) which clamps on the wire and (when combined with a burden resistor) converts amps to volts that can be read by the Arduino analog inputs.
On a related note; I have zero clue how you would ever use this to electronically govern the speed of an old motor. The speed of the motor is controlled by how much fuel/air mixture flows into it and that is governed by the throttle. Unless you are going to control a motor that adjusts the throttle?