I have been able to connect MATLAB to my Uno with this line of code: a = arduino('COM4'); through this package: Matlab support package for Arduino.
Right now, MATLAB is my main script that will synchronize all the components [like the Arduino].
I am able to send pulses to my stepper-motor just by using:
void loop() {
digitalWrite(2, HIGH);
delay(1);
digitalWrite(2, LOW);
delay(1);
}
This works fine, and will make the motor move about once every 2 milliseconds. My problem is that I cannot find a way to produce this same delay through MATLAB's interface. I do know that MATLAB has a pause() function, but when I set up a loop in MATLAB like this:
a = arduino('COM4');
for m = 1:400
a.digitalWrite(2, 1);
pause(0.001);
a.digitalWrite(2, 0);
pause(0.001);
end
Each step takes WAY longer - about 200 milliseconds each.
What are other options for creating the pause between digital High / Low being sent to the Arduino? It would be nice if I could control the outcome from Matlab, through Arduino.