Does anyone know a quick, "non-surgical", non-optical DIY RPM sensor for brushless motors?Wonder how the Brushless RPM Sensor/Tach from Eagle Tree System works? Does it use back-EMF to measure the RPM?
You need to be a member of diydrones to add comments!
Just throwing stuff out here, but wouldn't a hall effect sensor work for this? the brushless motor is basically a big spinning magnet, which is what the hall effect sensor needs... they use them for ignition timing in cars apparently as a type of distributor... Also, I could be wrong, but as far as I knew the brushless ESC uses the induction voltage generated on the non active solenoid as timing information, which means that the ESC knows exactly what the motor is doing, otherwise it would loose cycles under load... the hall effect sensor sounds like the right thing to me... they recommend you set it on a interrupt with an accumulator, check and reset the accumulator every x milliseconds, this will give you the rpm...
See my implementation of a BLDC RPM sensor here: BLDC Hall Effect Sensor. The sensor simply uses at least one magnet (I use 4 to get higher update rate) and a hall switch (about $.40 on digikey).
While the ESC probably needs to sense feedback in order to sync, the eagle tree, is really just measuring the intentions of the ESC, and not the effect on the motor.
The ESC is a simple H Bridge (Actually 3 simple H Bridges.) Which pulses the outputs at a much higher frequency than rpm. ~100khz
If you simply connect 1 wire as an input (through a safety resistor ie 10Kohm), you'll get information - but you'll probably get the High Freq signal. add a small cap to the uController side of the resistor to create an RC filter and you will get an easy signal s that relates to rpm = s/number of windings.
It's very simple, if you can get hold of a old ball mouse inside is a optical pickup an a wheel with all the electronics, you just have to apply 5V If you turn the wheel you get a increase in frequency It should be easy to translate that to RPM with Arduino. You can also use an old processor fan inside is a magnetic pickup which they use to measure rpm with
I am new to the site and don't have a uav project yet, but I do have an eagletree brushless rpm sensor. In fact you typically only need to hook up one of the two sensor wires to one of the three motor phases. The instructions state only to hook up the second sensor wire if you are having trouble getting an accurate reading and for most motor/esc combinations you are better off just using one.
The Eagle Tree rpm sensor requires tapping into any two motor leads, as Mike Bakula states, probably measuring the timing between the two signals.
When I found that out, I was going to design and build one. Then I saw their price of 10 bucks and decided time and parts would far exceed that. That's cheaper than a pressure transducer and I'm not about to try to build one of those!
Thanks both. I have a frequency meter, will try both ways and post the results. I will also try to establish a relationship between voltage, RPM, tourque, and Amps pulled.
Brushless DC motors are synchronous - the fundamental freq of the current/voltage going into the motor is proportional to the speed of the motor. Depending on the switching method used by the controller, the current may be a simple square wave, or a PWM signal that mimics a sine wave (I'm not sure which is typically used in ESCs).
So, I'm guessing that the system you mentioned works in this way. It would measure the voltage on one of the motor leads, filter that signal, and calculate the frequency of the signal.
If you have a multimeter that measures frequency, you could stick one lead on the motor terminal, the other on the negative battery terminal, and see if it seems to measure the frequency correctly.
Replies
http://www.melexis.com/Assets/Hall_Applications_Guide__3715.aspx
-Todd
The ESC is a simple H Bridge (Actually 3 simple H Bridges.) Which pulses the outputs at a much higher frequency than rpm. ~100khz
If you simply connect 1 wire as an input (through a safety resistor ie 10Kohm), you'll get information - but you'll probably get the High Freq signal. add a small cap to the uController side of the resistor to create an RC filter and you will get an easy signal s that relates to rpm = s/number of windings.
the resistor and cap will cost < 20 cents.
I am new to the site and don't have a uav project yet, but I do have an eagletree brushless rpm sensor. In fact you typically only need to hook up one of the two sensor wires to one of the three motor phases. The instructions state only to hook up the second sensor wire if you are having trouble getting an accurate reading and for most motor/esc combinations you are better off just using one.
Doug
When I found that out, I was going to design and build one. Then I saw their price of 10 bucks and decided time and parts would far exceed that. That's cheaper than a pressure transducer and I'm not about to try to build one of those!
Eric
So, I'm guessing that the system you mentioned works in this way. It would measure the voltage on one of the motor leads, filter that signal, and calculate the frequency of the signal.
If you have a multimeter that measures frequency, you could stick one lead on the motor terminal, the other on the negative battery terminal, and see if it seems to measure the frequency correctly.