Monitoring 16+ sensors at 300-600 Hz

Hi all.

I'm sure this has been asked before, but I was unable to successfully search for it. No one seems to care how fast their motor is going, just how fast the driven wheel rotates.

I'm trying to monitor 16+ brushed motors with two poles running between 150 and 300 Hz. This article explains that I should be seeing commutation voltage spikes twice a revolution and a high pass filter turns this into a digital signal; hooking up my multimeter, that's what I see.

One I've thought about that should work is 2+ multiplexers switching every 10 ms (enough for at least 2 ticks of a 300 Hz signal) and Arduino listening for interrupts, but I think this would prevent the Arduino doing anything else at the same time.

Shift registers seem to be on the right track for this sort of thing but I'm not sure how they work with repeated signals, with all the tutorials talking about button presses. Or I just scan often enough (e.g. 1 ms) that a motor can only tick once per scan, but once again the Arduino would end up busy.

How do I do this?

Thank you so much for your help

hooking up my multimeter, that's what I see.

Really? How do you see rapid spikes on a multimeter?

but I think this would prevent the Arduino doing anything else at the same time.

You are incorrect. When the Arduino is not executing an interrupt it is free to do other stuff.

Shift registers seem to be on the right track for this sort of thing

Nop.

I have done this many years ago but the problem is the spikes are not very reliable and the odd one is missed. I was using this to regulate the speed of a model train. I used a phase locked loop to regulate the speed. No micro computers needed.

A more reliable way is to have each motor turn a rotary shaft encoder.

Really? How do you see rapid spikes on a multimeter?

I have no idea. The multimeter reads the same as the specs.

You are incorrect. When the Arduino is not executing an interrupt it is free to do other stuff.

I'm not sure how long an interrupt takes. If there are 9600 interrupts per second, they have to take at maximum 104 µs per interrupt to even fit, never mind allowing me to do a lot of other things.

Nop.

Okay.

I'll look into PLL.

The multimeter reads the same as the specs.

What specs?

I'm not sure how long an interrupt takes.

It depends on what it is doing, the overall overhead in in the order of 20uS. What do you want to do?

Well, it sounds like it's not supposed to spit out anything meaningful, so I'll assume the cheap multimeter is spitting out something not meaningful.

I believe that for speed monitoring I only need to run an increment in the interrupts, making 20 µs comfortable.

But a PLL sounds better. Is there a tutorial on running a motor with a PLL anywhere?

Thanks for your patience.

Is there a tutorial on running a motor with a PLL anywhere?

Not that I am aware of. I invented it back in the mid 70s in the days before easy dissemination of information.