Data logging Motor Rotation pulse across 55 Treadmill motors with arduino

5500rpm is nearly 100rpm, or 1 pulse every 10ms. That's faster than I was expecting. Here are a couple of issues you might face:

  1. Keeping the motor sufficiently well balanced when you glue magnets to a rotating part. A US1881 needs to see a N pole followed by a S pole, so you can glue 2 small magnets on opposite sides of a suitable rotating part. However, at 100 revs/sec, any imbalance will cause vibration. You might better of sticking with optical sensing, especially as the necessary hardware is already in place.

  2. The US1881 will generate a 1:1 square wave if you position the magnets diametrically opposite each other (so will a suitably-designed optical pickup). To register a pulse, then Arduino needs to see a high and a low state. So you need to sample and process each input at intervals of 5ms or below. I would aim for 3ms in case the pulses are not quite square. That's one input every 55us on average. That's easily doable, especially if you read all the inputs from a shift register using SPI at maximum rate. But if you are not careful, then any I/O or writing to flash that you do may cause pulses to be lost.