I'm currently building my own dynamometer (dyno) for mopeds and maybe motorcycles later on, and I've hit a key question where I could really use your experience.
My Project: The basic setup is planned out: an Arduino UNO R4 will read the data from a heavy roller (using a Hall sensor for speed) and send it to my laptop. The power calculation will then be handled by my PC.
My Question: Now I'm stuck on the best and most reliable way to get the engine RPM (not the roller RPM) to the Arduino.
I know one method is to calculate the RPM from the roller speed and the gear ratio, but this requires calibration for every gear. I'd prefer a more direct measurement. I've seen these inductive clamps/pickups that you just clamp around the spark plug wire. I'd actually prefer that, since it's a clean, non-contact solution.
Does anyone have experience with these inductive pickups on an Arduino?
What kind of signal do they output, and do you definitely need a circuit in between (like a comparator) to condition the signal?
Or is there an even better/simpler method that's proven to work? I've also read that you can safely tap the signal from the ignition coil using an optocoupler.
My goal is to get a clean, digital signal that I can process with an interrupt on the Arduino.
Why not use another Hall sensor, but attached to something that runs at engine RPM, or at an RPM that has a fixed ratio to the engine RPM? To me that feels easier and safer than dealing with high voltage signals.
Yes of course. It is a digital ingitionsignal sensor. I found it on: Motogadget
The disadvantage is that I have to use an external 12V Voltage source. A motorcycle battery for example. bit this sensor has a HIGH LOW output with 12V every time when the engine. I think i can just add a resistance to create a 5V singal for the Arduino.
I will build it in the following weeks. I don't know now if it really works. I will update it as soon as possible.