Bruce Abbott
Feb 23, 2009, 05:10 AM
Here's a circuit I developed for measuring the rpm of a brushless motor with my Wattmeter (http://homepages.paradise.net.nz/bhabbott/wattmeter.html).
It consists of a passive attenuator and band-pass filter, followed by an opamp which is configured as a Schmitt Trigger (http://en.wikipedia.org/wiki/Schmitt_trigger). To connect to one phase of the motor, I soldered a pin onto the end of the input wire. The pin is simply pushed into any one of the ESC's motor wires.
The output is a square wave whose frequency equals the motor's commutation speed. To convert to actual rpm the frequency must be divided by the number of motor poles (ie. magnets) divided by 2. A 2 pole motor reads directly (divide by 1), whereas a 14 pole motor's output needs to be divided by 7. In my wattmeter this is set by the 'blades' parameter, which is otherwise used for measuring propeller rpm with an optical sensor.
Compared to an optical tach, this method has a number of advantages, including:-
1. No light source is required and it is unaffected by room lighting.
2. The motor's true no-load rpm can easily be measured (no reflective tape, felt pen markers or tiny sticks required!)
3. Reliable measurements can be achieved in situations where it is hard to get a good optical reading, eg. EDF installed in a snaky duct, in-flight recording.
There are a few limitations:-
1. It only works on brushless motors (you still need an optical tach for your brushed motors, glow engines, rubber powered models...).
2. You need to know the number of poles in your motor. Outrunners are usually easy to determine (just count the number of magnets around the inside of the bell). If you don't know the number of poles in an inrunner, choose the divider which gives an rpm reading most closely matching the motor's specified Kv.
3. Some controller/motor combinations may produce a lot of commutation 'hash' which can cause false rpm readings. A clean signal is usually achieved at full throttle, whereas at part throttle the PWM and backemf waveforms are harder to filter out.
It consists of a passive attenuator and band-pass filter, followed by an opamp which is configured as a Schmitt Trigger (http://en.wikipedia.org/wiki/Schmitt_trigger). To connect to one phase of the motor, I soldered a pin onto the end of the input wire. The pin is simply pushed into any one of the ESC's motor wires.
The output is a square wave whose frequency equals the motor's commutation speed. To convert to actual rpm the frequency must be divided by the number of motor poles (ie. magnets) divided by 2. A 2 pole motor reads directly (divide by 1), whereas a 14 pole motor's output needs to be divided by 7. In my wattmeter this is set by the 'blades' parameter, which is otherwise used for measuring propeller rpm with an optical sensor.
Compared to an optical tach, this method has a number of advantages, including:-
1. No light source is required and it is unaffected by room lighting.
2. The motor's true no-load rpm can easily be measured (no reflective tape, felt pen markers or tiny sticks required!)
3. Reliable measurements can be achieved in situations where it is hard to get a good optical reading, eg. EDF installed in a snaky duct, in-flight recording.
There are a few limitations:-
1. It only works on brushless motors (you still need an optical tach for your brushed motors, glow engines, rubber powered models...).
2. You need to know the number of poles in your motor. Outrunners are usually easy to determine (just count the number of magnets around the inside of the bell). If you don't know the number of poles in an inrunner, choose the divider which gives an rpm reading most closely matching the motor's specified Kv.
3. Some controller/motor combinations may produce a lot of commutation 'hash' which can cause false rpm readings. A clean signal is usually achieved at full throttle, whereas at part throttle the PWM and backemf waveforms are harder to filter out.