Uses brush current pulses to measure speed
To make the experience fit your profile, pick a username and tell us what interests you.
We found and based on your interests.
Schematic: https://oshwlab.com/speed/dc-speed-control
Keep in mind, this is rework of https://hackaday.io/project/166492-grinder-speed-control-with-stable-rpm. Many things are very similar. Let's describe difference.
Currently, many chips become not accessible (very high priced). MCU is changed to STM32G030F6P6. It has no USB support (no easy flash without programmer), but has low price and better performance.
Appropriate components, related to USB uploader, are removed. Also, removed ADC power filter, because new MCU usees the same pins for digital & analog power.
For FFT-based frequency detector we need PWM instead of phase control. So, instead of triac we use rectifier + mosfet + anti-spike diode.
Note, most of brushed motors (without magnets) are "universal". That means, those works well with both AC and DC power. In theory, those need some correction of winding count for DC power. But in real world, those work "as is".
Since FFT-based algorithms are well resistant to noise and DC drifts, shunt amplifier is replaced with INA180A2IDBVR - more cheap and more easy to mount.
Schematic is the same, but step down output increased to 5.5 volts for more stable mosfet control. Also, LDO replaced with more simple, supporting 6 volts input.
FFT frequency detector requires only value of current to work. No voltage sensor needed. Appropriate components are removed.
New regulator should be very flexible. For example:
When brushed motor works, brush commutations causes current peaks. If we can detect fundamental frequency. then speed will be:
Speed = (frequency * 60 / poles) RPM
Idea is simple - use FFT and find peak frequency. Also, we have to drop noise, produced by rectified power:
Ordinary grinders have 8-pole motors and work in range 5000...30000 RPM. Some models - up to 45000 RPM. Desired range to measure is 670...6000 Hz.
Repository at github has multiple dumps for different motor modes. We did simple scripts to quick-check math, and imported data to LibreOffice Calc (Excel) to build diagrams.
See images below.
Current at high speed:
Current at low speed:
Spectrum at high speed:
Spectrum at low speed
As you can see, if we drop 0..500hz range (first 16 points), peak reflects RPM very well..
In ideal world, it would be fine to measure speed every 0.1 sec, with precision 1%. Let's check what we have in reality.
For FFT 512, Sampling rate 16384 Hz:
Not as perfect as desired, but pretty well for real world. Any attempt to increase precision at low speed (via FFT size or resampling) will cause increase of total sampling period and going out of desired limits. Also, let be honest, added value of those extra efforts will be zero :).
For grinder motors, powered via rectifier:
Looks pretty simple.
Create an account to leave a comment. Already have an account? Log In.
Become a member to follow this project and never miss any updates
Found this by link from https://forum.allaboutcircuits.com/threads/universal-motor-speed-control-using-commutator-frequency-as-feedback.195800/
No connection - just saying someone found this.