- Your code is detecting transitions from the sensor as high/low. If there are rotational vibrations in the motion, e.g. the teeth are moving very slightly backward due to load even when moving MOSTLY forward, each backward vibration would count as "more" speed because it could trip the sensor twice. A solution to fix this would be to use an A/B type encoder which detects direction changes (even minor ones), or you could possibly low-pass filter the tach signal.
- Motors operating under load draw far more current than without load, which may be generating electrical noise that you are picking up on your sensor. Solutions to this would again be to low-pass filter the signal, use shielded wire on the sensor side, keep the sensor wire physically separated from the motor's power wires, use twisted-pair ground/signal wire on the sensor, and make sure the sensor's power/ground lines are completely independent of the motor's power/ground.
- Your no-load speed measurements are aliased, namely are not being measured fast enough. An easy way to check for this is to make sure to measure the motor's speed under different applied voltages (or speed settings) as you ramp the speed up. If you are aliasing, the sensor will start to miss a tooth count, causing the speed to decrease again with higher speeds. Thus, when you slow the motor down (like under load), the speed would be increasing. As a rule, you want to make sure you are measuring the tooth sensor at least 2 times faster than the teeth can move by the sensor (Nyquist criterion), but in practice at least 5 to 10 times faster.
Tachometer outputting increased value under load erroneously
1 view (last 30 days)
Show older comments
Hi all!
This project is being done in simulink.
In the project I am working on I need to count rotations per minute using a hall effect sensor. To do this I have said type of sensor connected to an arduino and it is sending out a pulse wave to a digital input pin.
To measure RPM I want to use the tachometer block. Without any load on the motor in use the output value the tachometer is outputting is precise. I put some load on the motor to slow it down, and the measured RPM increases, opposite of what it should be doing.
The whole reason I need these measurments is to know exactly how fast the motor is spinning under load.
Does anyone know what is going on?
0 Comments
Accepted Answer
Sean Brennan
on 23 Jun 2021
There's several things that could explain this behavior:
If these aren't the issue, it could be code - in which case you should post this to the forum. Hope this gives some debugging ideas!
0 Comments
More Answers (0)
See Also
Categories
Find more on Arduino Hardware in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!