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.


Find more on Specialized Power Systems in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!