How to sense rpm from sensored brushless motor

hi! I need to sense rpm of a sensored bldc motor, because I want to control its power output so that it does not slow down under load. I am new to programming and just want to make sure it is possible and what is the best way to go about it. I have a uno at the moment, but would like to use the smallest board possible for this project.
Many thanks, Scott.

You can listen to the hall sensors - think of them as a sort of crude encoder.

Hi,
How are you going to control the speed of the BLDC motor, if you want to speed it up due to added load, what do you do to make it go faster.
Can you post a link to the BLDC motor you are aiming to use.
Also what is the application that needs constant speed.

Thanks.... Tom.... :slight_smile:

Useful information here.

It should be noted however that you are asking for the impossible. The motor must slow down under load in order to give your system the information that the power must be increased. The amount it slows down can be controlled by correct design though.

Russell.

It doesn't have to slow down continuously, just get delayed by a small time, if you use position feedback
rather than speed feedback. With something like an encoder its easier to use position information anyway.
PID control allows the disturbance to be purely temporary too, so that there is zero net drift in steady-state as the I-term encodes the current loading.

MarkT:
It doesn't have to slow down continuously, just get delayed by a small time, if you use position feedback
rather than speed feedback.

To avoid slowing down, other than for a short time, you need the feedback function to include a term proportional to the integral of the speed error rather than the position but I think that's getting a bit complicated for the OP.

Russell.

You might use a variable speed control ESC and monitor the voltage pulse on a phase to determine the current motor rpm.