control stepper motor using MATLAB and Arduino

32 ビュー (過去 30 日間)
LO
LO 2021 年 2 月 26 日
I am trying to set up a stepper motor connected to an Arduino Uno with motor shield mounted on it.
The motor works through Arduno IDE.
I am trying to translate the code in MATLAB ...without success
here is my arduino code:
// Include the Stepper library<br>#include
#include <Stepper.h>
// Declare the used pins
int dirA = 12;
int dirB = 13;
int pwmA = 3;
int pwmB = 11;
// Declare a Stepper motor with 200 steps
Stepper stepper1(200, dirA, dirB);
void setup() {
// PWM pins require declaration when used as Digital
pinMode(pwmA, OUTPUT);
pinMode(pwmB, OUTPUT);
// Set PWM pins as always HIGH
digitalWrite(pwmA, HIGH);
digitalWrite(pwmB, HIGH);
// Set stepper motor speed
stepper1.setSpeed(30);
}
void loop(){
// Turn the stepper 100 steps which means 180 degrees
stepper1.step(2000);
// Wait half second
delay(500);
// Turn the stepper 100 steps back which means 180 degrees
stepper1.step(-200);
// Wait half second
delay(500);
}
and here is my MATLAB code:
clear all
global a;
% a = arduino('COM3','Uno');
a = arduino('COM3','Uno','Libraries','Adafruit\MotorShieldV2'); % load arduino package including motor shield
%% create shield object to control the motor
shield = addon(a,'Adafruit\MotorShieldV2');
sm = stepper(shield,1,200);
%% specify speed and movement direction
for i = 1:5
sm.RPM = 30;
move(sm, 200);
pause(2);
move(sm, -200);
end
release(sm);
any idea why it does not move ? the code per se should be correct (I do not get any error).
Thanks !
  1 件のコメント
Ernest Arranz Pasqual
Ernest Arranz Pasqual 2022 年 10 月 31 日
Hi, I'm also working on a stepper matlab arduino project. From what I undersand here:
it seems the problem is the pause function which can't operate with values low enough.

サインインしてコメントする。

回答 (0 件)

カテゴリ

Help Center および File ExchangeArduino Hardware についてさらに検索

製品


リリース

R2020b

Community Treasure Hunt

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

Start Hunting!

Translated by