Sorry this has taken me so long to get to. I got busy with some other stuff and also wanted to boil this down to basics to eliminate any other possibilities. Here is a pic...
Tach CircuitThis should suffice for a circuit diagram as well. As I said it's extremely basic. Signal pin from hall sensor to pin 2 on the nano. Other than that just power and ground. I got rid of the display and other components to get it down to basics. This is also a new board I'm trying it with. I previously had it on a Mega. Still getting the same results.
Here's some more console output...
period0=69216 rpm=866 rpmd=0 srpm=866
period0=69196 rpm=867 rpmd=1 srpm=866
period0=69200 rpm=867 rpmd=0 srpm=867
period0=69208 rpm=866 rpmd=1 srpm=867
period0=69184 rpm=867 rpmd=1 srpm=867
period0=69188 rpm=867 rpmd=0 srpm=867
discard period0=37648 rpm=1593 rpmd=726 srpm=978
discard period0=31532 rpm=1902 rpmd=309 srpm=1156
discard period0=69168 rpm=867 rpmd=1035 srpm=1191
period0=69152 rpm=867 rpmd=0 srpm=867
period0=69160 rpm=867 rpmd=0 srpm=867
period0=69168 rpm=867 rpmd=0 srpm=867
period0=69144 rpm=867 rpmd=0 srpm=867
period0=69156 rpm=867 rpmd=0 srpm=867
period0=69168 rpm=867 rpmd=0 srpm=867
period0=69156 rpm=867 rpmd=0 srpm=867
period0=69160 rpm=867 rpmd=0 srpm=867
Ther period0 line is the period between pulses. You can see the motor is running at a stead 867 RPM or approximately 69,160 microseconds between pulses. You'll see when the anomaly occurs it's like it's registering a pulse half way around the wheel. The two outlier pulses of 37,648 and 31,532 add up to 69,180 which is very close to all the normal pulse values.
I've tried this with the hall sensor, two different IR sensors, and two different arduino boards. It seems to be pretty consistent.