Control of Stepper Motor with Simulink

11 views (last 30 days)
Nicky Man
Nicky Man on 6 Apr 2018
Answered: Michael Goebel on 24 Jun 2020
Hi there!
I have a program that tells the step sequence for a step motor to take. So far, I have been able to make the stepper motor turn clockwise and counter-clockwise. I did this using a repeating sequence stair, where the output is [0,1,2,3], and the sample rate is .01 seconds
Now I want that if I push a button (eg. arduino push button), then the repeating sequence stair logic will operate for 5 seconds. However, the repeating sequence stair logic is a source with no input.
Therefore, my question now is, how do I integrate an if statement so that when the push button is pressed, then the repeating sequence stair logic will initiate for five seconds?
Hardware used:
Arduino Uno
5 Volt DC 28BYJ-48 step motor
Motor Driver Board ULN2003
Thanks, Nick
Nicky Man
Nicky Man on 13 May 2018
Here you are. Let me know if it works or not.
Regards, Nick

Sign in to comment.

Answers (2)

Cosimo Mercuro
Cosimo Mercuro on 26 Apr 2018
Hi Nicky. I've the same issue. Have you found any solution? Thanks in advance
  1 Comment
Nicky Man
Nicky Man on 27 Apr 2018
Hi Cosimo,
Yes. I added a delay block as an input u2 to the if statement block. I set the delay block to the amount of time I wish for the motor to be delayed. The delay block becomes u1 after this period of time. The logic in the if statement is that if u2 becomes u1, then it will output the constant 8, which stops the stepper motor.

Sign in to comment.

Michael Goebel
Michael Goebel on 24 Jun 2020
You could try to implement it with
  • stateflow or
  • an enabled subsystem or
  • look under the mask of the repeating sequence block and adjust it as u want


More Answers in the  Power Electronics Control

Community Treasure Hunt

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

Start Hunting!

Translated by