управление шаговыми двигателями через com-порт наUno+MSS shield

Тема в разделе "Моторы, сервоприводы, робототехника", создана пользователем MorisGuku, 5 май 2015.

  1. MorisGuku

    MorisGuku Нуб

    Товарищи, прошу помощи в написании программы для управления шаговыми двигателями через com-port, требуется управление двумя двигателями, но выходит только через четность/нечетность и только одним. Помогите пожалуйста, заранее спасибо.
     
  2. ANV

    ANV Гуру

    Попробуйте через нечетнось/четность
     
  3. ANV

    ANV Гуру

    В смысле код и схему покажите, чтобы не гадать что не работает
     
  4. MorisGuku

    MorisGuku Нуб

    #include <AFMotor.h>

    AF_Stepper motor(200, 2);
    int usbnumber = 0;

    void setup() {
    Serial.begin(9600);
    motor.setSpeed(100);
    }

    void loop() { // основной цикл
    if (Serial.available() >
    0) {usbnumber = Serial.read();
    if (usbnumber > 0)
    { if (usbnumber % 2 == 0)
    {motor.step(200, FORWARD, SINGLE); }
    else {motor.step(200, BACKWARD, SINGLE); }}
    usbnumber = 0;
    }
    }
    Вот так выглядит программа для одного двигателя
     
  5. MorisGuku

    MorisGuku Нуб

    Проблему решил.
    #include <AFMotor.h>

    char incomingByte; // входящие данные.
    AF_Stepper motor1(200, 2);
    AF_Stepper motor2(200, 1);
    void setup() {
    Serial.begin(9600); // инициализация порта
    motor1.setSpeed(10);
    motor2.setSpeed(10);
    }
    void loop() {
    if (Serial.available() > 0) { //если пришли данные
    incomingByte = Serial.read(); // считываем байт
    if(incomingByte == 'q')

    {motor1.step(3, FORWARD, SINGLE);
    }
    if(incomingByte == 'w') {
    motor1.step(3, BACKWARD, SINGLE);


    }
    if(incomingByte == 'e')
    {motor2.step(3, FORWARD, SINGLE);

    }
    if(incomingByte == 'r') {
    motor2.step(3, BACKWARD, SINGLE);


    }

    }
    }