I have 4 12V DC fans (1000 - 14000 rpm range) with tachometer signals connected directly to my Particle Boron’s pins: A0, A1, A2, A3.
To measure the tachometer, I’ve attached an interrupt to a counter variable for each signal.
My results are as follows:
I consistently get high rpm values on pin A3 which isn’t possible for the fan (15k-30k rpm).
Moving the tacho signal from pin A3 to pin A4 fixes the problem.
When using level shifters between the signal and pins, the fan tachometer’s aren’t read at all.
At high PWM, the fan tachometer readings become inconsistent and inaccurate.
Are there any fundamental problems that are clear from these details which I’ve missed?
How can I best connect 4 fans to the Particle and read their speeds (including interrupt strategy in the code, circuit design, level shifters, info about pin A3, etc.)?
The fans work perfectly. They respond accurately to the PWM and send an accurate tacho signal. The problem is with the Particle and reading the pulses (especially on pin A3).
I am using internal pullups for the signal.
Thank you in advance