Output a square wave with tuneable frequency and phase delay

4 views (last 30 days)
I am trying to output two square waves to control a stepper motor. I need to be able to change the phase difference between the two waves to control the direction of the motor and I need to change the frequency of the waves to control the speed. I also need to control the number of cycles to control how far the motor travels.
Please help as I have tried quite a lot of different ways and had no success.
  1 Comment
Jon on 8 Apr 2013
Are you running a loop in MATLAB that sends its output to some physical i/o, or is it in Simulink. Please clarify

Sign in to comment.

Answers (1)

Jonathan Epperl
Jonathan Epperl on 8 Apr 2013
Showing us some of your prior attempts would certainly help, since we then could avoid suggesting stuff you already tried.
Anyway, whenever I needed square waves, I used a sine wave together with logical operators, e.g.
f = @(t) (sin(2*pi*t)>0)-(sin(2*pi*t)<=0)
should get you a square wave with frequency 1. Adapt it to your needs.

Community Treasure Hunt

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

Start Hunting!