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

4 次查看(过去 30 天)
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.

回答(2 个)

Jan Houska
Jan Houska 2023-10-17
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 个评论
Tobias Dehn Nielsen
Tobias Dehn Nielsen 2023-10-24
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

请先登录,再进行评论。


Jan Houska
Jan Houska 2023-10-25
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

类别

Help CenterFile Exchange 中查找有关 Get Started with Simulink Desktop Real-Time 的更多信息

产品


版本

R2023b

Community Treasure Hunt

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

Start Hunting!

Translated by