I am looking for some help with calculating rpm from a single
cycle using (T1) input capture with either a UNO or a Mega.
Basically I want to take a timer count => convert it into micro-
seconds (.06 to .006666) => 60/ micro-seconds = rpm.
With an Arduino, I may need to use the Timer1 8x prescaler and
work with 500ns units.
My tachometer project is for a 2-cycle race engine. The tach will
measure the rpm using several different methods: (1). Capacitive
pick-up attached to the spark plug wire. I have 2 methods to clean
up the ringing associated with the coil. (2). A tach source wire from
the CDI ignition. (3). A motorized Hall Effect test stand. I also have
an ignition coil test stand.
I started doing some Arduino math experiments using the “double”
var size and had what I believe to be rounding errors before I really
made any progress. I tried the FP64lib, but I didn’t understand it. I
also looked into converting values to scientific notation and then apply
I have tested many individual parts of my tach, but the math and the
circuit to mask the coil ringing are still on my todo list.
I want to get my math to work with a single cycle first, then record
several cycles, determine an average, and calculate the rpm.
This might be easier if I could reduce the clock speed to 1mhz. Has
anyone tried the AVR clock-cycle prescaler in the beginning of their
Arduino program before?