MATLAB Answers

Arduino Encoder Application with Simulink Problem

20 views (last 30 days)
Hi, I'm using the Arduino Support Package for Simulink Toolbox. My goal is to make a counter that counts up when it rotates clockwise and counts down when it rotates counterclockwise by using KY-040 Encoder. I can read all values appropriately. (Encoder has 2 output pins, OutA and OutB, and they produce digital signals.) My problem is to take the values I read from the OutA pin and compare them with the new values. Which blocks should I use for this?


Sign in to comment.

Accepted Answer

J Chen
J Chen on 2 Mar 2020
You can use Simulink Delay block which store you last data. Type delay in the search box in the Simulink Library Browser to locate the block.


Show 2 older comments
BienPz10 on 11 Mar 2020
Chen, can you export that file in a previous version (2017b) ?. Please.
Berke Ogulcan Parlak
Berke Ogulcan Parlak on 11 Mar 2020
Hi!, Chan. The block diagram works really well with this state. However, when I connect the encoder to the input, the count is delayed. I think this problem occurs because I don't use interrupt. But when I use the external interrupt block, although my encoder is 20 pulse / rev, I read values like 500-600 and it is not stable. Do you have any advice for counting pulses with interrupt? Thank u!

Sign in to comment.

More Answers (0)