Clear Filters
Clear Filters

Using the block "Counter input" to measure the signal from a quadrature encoder

4 views (last 30 days)
I am using the block "Counter input" from simulink desktop real-time to measure the signal from a quadrature encoder. From the encoder i get the signals A, B and Z. I want to use "Counter input" to count the signal. It works when i use the counter mode "bidirectional counter" but not when i use "quadrature encoder" which seems weird to me. Can someone explain how the block works and why the counter mode "bidirectional counter" works and not "quadrature encoder" which i thought was made exactly for this.

Answers (2)

Jan Houska
Jan Houska on 17 Oct 2023
Hi Tobias,
instead of the Counter Input block, you should be using the Encoder Input block to read data from the counter in quadrature encoder mode.
Good Luck, Jan
  1 Comment
Tobias Dehn Nielsen
Tobias Dehn Nielsen on 24 Oct 2023
Hi Jan,
Utilizing the Encoder Input block indeed resolves the issue in most cases. However, I've found that when I slowly rotate the encoder, the output from the Encoder Input block starts to shift. Even when I stop the rotation, the output from the Encoder Input block continues to increase. Can you help me understand why this is happening?
Best regards, Tobias

Sign in to comment.


Jan Houska
Jan Houska on 25 Oct 2023
Hi Tobias,
this typically happens when there are spurious pulses present at the encoder input pins. The most common source of spurious pulses is incorrect ground connection, so as the first thing I'd check if everything is properly grounded. Please use the board vendor's documentation to learn how to correctly connect the encoder, including proper grounding.
Good Luck, Jan

Products


Release

R2023b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!