I would like to measure speed from 0 to 2000 RPM. Therefore, the corresponding frequency would be a bit lower than 1.5 MHz. Is it possible to use a Arduino to measure the signal from an encoder up to 1.5 MHz ?
in terms of speed you will then be limited by your interrupt handlers. If you programm cleverly you can get the time to handle the interrupts well below 1us (I can provide code if necessary), meaning that you can detect slopes at rates above 1MHz. If you use more than one encoder you just divide the 1MHz by the number of encoders you'd like to use.
I am using a high resolution encoder because I want to measure speed as close to 0 mph as possible.
At the top of the second page, Schwingkpof said that it might be possible to go to rates above 1MHz. It seems like it would be enough for my project. What do you think about that ?
In this situation, I will approach a speed of 0. Therefore, I will achieve a situation were the time between 2 pulses will theoretically be infinite. Why it is not possible to measure a speed of 0.
The required precision for speed measurement is : 0.01 mph
What is the minimum update interval for speed : I don't know how to obtain that (I am not sure to understand what information you want)
You might also consider counting on 1 of the four available transitions at higher speeds, and change to the 4X algorithm at slower speeds if you are using the high resolution encoder.
dlloyd has suggested a very interesting solution where at low speeds you work with interval times between pulses, and transition to pulse counts at higher speeds.
The hardware quadrature decoder proposed can be added to the arduino and process the signal ?
I am still interested to use the hardware solution proposed by CrossRoads