I've built the suggested circuit using this diagram (found here: Ignition Coil Interface · Issue #2 · seanauff/classic-car-sensor-interface · GitHub):
My H11L1MS indeed accepts 5V and it outputs a nice clean signal for the Arduino:
I'm not sure if I'm happy with the accuracy though:
Hz rpm rpm Arduino difference % difference
42,756 641 741 15,6 100
43,36 650 769 18,3 119
43,234 649 710 9,4 61
43,323 650 656 0,9 6
85,513 1283 1396 8,8 113
86,29 1294 1510 16,7 216
86,2 1293 1453 12,4 160
85,685 1285 1453 13,1 168
85,513 1283 1425 11,1 142
85 1275 1396 9,5 121
85,255 1279 1368 7 89
123,239 1849 1966 6,3 117
124,626 1869 1881 0,6 12
123,639 1855 1938 4,5 83
120,12 1802 1897 5,3 95
121,047 1816 1955 7,7 139
121,167 1818 1824 0,3 6
120,927 1814 1966 8,4 152
121,407 1821 1909 4,8 88
134,596 2019 2166 7,3 147
134,596 2019 2052 1,6 33
136,003 2040 2070 1,5 30
143,564 2153 2337 8,5 184
152,347 2285 2394 4,8 109
158,572 2379 2308 3 71
158,887 2383 2365 0,8 18
103,3 1550 1738 12,1 188
The first column is measurement from the oscilloscope, the 2nd calculated rpm from oscilloscope, 3rd rpm calculated by adruino.
I'm now calculating the rpm using rev*(60000/time)/(C/2).
rev = number of pulses counted
time = measuring time (ms)
c = number of cilinders
Is there a way to improve the accuracy? I am aware that this method of calculation makes that the value the Arduino displays always lags slightly behind compared to the actual rpm.
Perhaps it would be better to measure the time between pulses?

