Всем привет. Кто может помочь с AccelStepper

sazn
Offline
Зарегистрирован: 24.09.2013

Есть такая маленькая задча. Есть несколько шаговых двигателей (например 2) подключенных к Arduino.

Двигатели дапустим обозначаются M1 . M2

Необходимо через порт отправить например M1 шаговик с этой маркеровкой приходит в движение на заданное в прошивке расстоние, с заданой скорость.

То есть отправкой команд M1 или M2 запускаем в работу нужные шаговики. Кто может помочь с кодом? За ранее огромное спасибо!

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

всего ничего - систему команд GS-232 реализовать )))

sazn
Offline
Зарегистрирован: 24.09.2013

Может просто цифры без символов.  1, 2 и т.д.

griin
Offline
Зарегистрирован: 19.04.2015

возьми grbl контроллер на дуне и будет тебе счастье

vvadim
Offline
Зарегистрирован: 23.05.2012

показывайте что у вас уже написано и тогда народ начнёт активно помогать (а может быть и не будет....)

sazn
Offline
Зарегистрирован: 24.09.2013
Ну вот нашел такой пример кода. Тут тупо в консоль кидаешь расстояние на которе надо повернуть.
Думаю надо как то переделать что бы код производил сравнение числа который я вписываю в консоль с числами заданными в коде. Например с 1 до 10 . И в случае совпадения отправлял команду на вращение определнного двигателя под тем же номером.
Например отсылаю в консоль число 4 , программа сравнивал 4 с числами 1 до 10 и в случае равенства отправлял на двигатель 4 команду на движение. 
#include <AccelStepper.h>

// Define a stepper and the pins it will use
AccelStepper stepper(1, 3, 2); 
long steps = 0;

void setup()
{ 
  stepper.setMaxSpeed(1000);
  stepper.setAcceleration(1000);
  Serial.begin(9600);
}

void loop(){
  if (Serial.available() > 0) {
    steps = Serial.parseInt();
    Serial.println(steps);
    stepper.moveTo(steps);
    while (stepper.distanceToGo() != 0) {
      Serial.println(stepper.currentPosition());
      stepper.run();
    }
  }
}