Control of Stepper Motor with Simulink

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

2 Comments

Hi Nicky. May you provide me the simulink file? Thanks in advance
Here you are. Let me know if it works or not.
https://drive.google.com/file/d/1ld9JExjWdWl8oDiPtMAot4Wi5-hbVWAa/view?usp=sharing
Regards, Nick

Sign in to comment.

Answers (2)

Hi Nicky. I've the same issue. Have you found any solution? Thanks in advance

1 Comment

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.

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

Communities

More Answers in the  Power Electronics Control

Categories

Asked:

on 6 Apr 2018

Answered:

on 24 Jun 2020

Community Treasure Hunt

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

Start Hunting!