УПРАВЛЕНИЕ ШАГОВЫМ ДВИГАТЕЛЕМ

Тема в разделе "Моторы, сервоприводы, робототехника", создана пользователем mosvet, 20 фев 2017.

  1. vvr

    vvr Инженерище

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

    макс скорость и ускорение в сетапе, остальное убрать
     
  2. mosvet

    mosvet Нуб

    С етим скетчем светодиод светится по програме но ШД молчит не стартует
     
  3. ostrov

    ostrov Гуру

    А так?
    Код (C++):
    #include <AccelStepper.h>
    #include <MultiStepper.h>
    AccelStepper Xaxis(1, 5, 9); // pin 3 = step, pin 6 = direction


    const int button1Pin = 2; // подключение кнопки
    const int button2Pin = 3; // подключение кнопки
    const int button3Pin = 4; // подключение кнопки

    const int ledPin = 13; // подключение светодиода
    const int STEPPin = 5; // подключение импульсы ШД
    const int DIRPin = 6; // подключение направление ШД
    const int RESPin = 7; // подключение включить ШД


    int STEPState = 0; // чтение состояния кнопки
    int DIRState = 0; // чтение состояния датчика
    int RESState = 0; // чтение состояния датчика


    int button1State = 0; // чтение состояния кнопки
    int button2State = 0; // чтение состояния датчика
    int button3State = 0; // чтение состояния датчика

    bool trigger = false;

    void setup() {
      Xaxis.setMaxSpeed(1000000);
      // Задаём ускорение двигателя
      Xaxis.setAcceleration(9000000);
      // Установим скорость в шагах за секунду
      Xaxis.setSpeed(4000000);
      // Перемещаем в абсолютно указанное положение
      Xaxis.moveTo(4000000);

      pinMode (ledPin, OUTPUT);// инициализация порта на вывод сигнала на свеодиод:
      pinMode (button1Pin, INPUT_PULLUP);// инициализация порта на ввод информации с кнопки:
      pinMode (button2Pin, INPUT_PULLUP);// инициализация порта на ввод информации с кнопки:
      pinMode (button3Pin, INPUT_PULLUP);// инициализация порта на ввод информации с кнопки:

      pinMode (STEPPin, OUTPUT);// инициализация порта на вывод сигнала на свеодиод:
      pinMode (DIRPin, OUTPUT);// инициализация порта на вывод сигнала на свеодиод:
      pinMode (RESPin, OUTPUT);// инициализация порта на вывод сигнала на свеодиод:

      Xaxis.setMaxSpeed(100000);  // Задаём ускорение двигателя
      Xaxis.setAcceleration(100000);  // Установим скорость в шагах за секунду

    }

    void loop() {
      {
        if (Xaxis.distanceToGo() == 0)
          Xaxis.moveTo(-Xaxis.currentPosition());
        Xaxis.run();
        Xaxis.runSpeed();
      }

      button1State = digitalRead (button1Pin);// чтение состояния кнопки:

      if (button1State == LOW) // если кнопка нажата.
      {
        digitalWrite (ledPin, HIGH);// включить светодиод
        digitalWrite (DIRPin, HIGH);// направление движения ШД
        digitalWrite (RESPin, HIGH);// разрешить работу ШД
      }


      button2State = digitalRead (button2Pin);// чтение состояния кнопки:

      if (button2State == LOW) // если сработал 1 датчик
      {
        digitalWrite (ledPin, HIGH);// включить светодиод
        digitalWrite (DIRPin, LOW);// меняем направление движения ШД
        digitalWrite (RESPin, HIGH);// разрешить работу ШД
        trigger = true;
      }


      button3State = digitalRead (button3Pin);// чтение состояния кнопки:

      if (!button3State && trigger) // если сработал 2 датчик ((конец работі)
      {
        digitalWrite (ledPin, LOW);// віключить светодиод
        digitalWrite (DIRPin, HIGH);// направление движения ШД
        digitalWrite (RESPin, LOW);// запретить работу ШД
        trigger = false;
      }
    }
     
     
    mosvet нравится это.
  4. vvr

    vvr Инженерище

    какая то возня непонятная - трудно посмотреть примеры из библиотеки))))
     
  5. mosvet

    mosvet Нуб

    ВСЕМ КТО УЧАСТВОВАЛ И ПОМОГАЛ БОООЛЬШОЕ СПАСИБО СИСТЕМА ЗАРАБОТАЛА КАК НАДО ПОСЛЕ МАЛЕНЬКИХ ПОПРАВОК!!!!!
    trigger +
    AccelStepper -
    отрицательный результат тоже результат
    ВСЕ РАВНО ВСЕМ БОООЛЬШОЕ СПАСИБО !!!
     
    Последнее редактирование: 21 фев 2017
  6. vvr

    vvr Инженерище

    ну так покажите народу код, может кому то понадобится)))
     
  7. ostrov

    ostrov Гуру

    Благодарить тут принято кнопкой "мне нравится".
     
    mosvet нравится это.
  8. mosvet

    mosvet Нуб

    Я извиняюсь но думал что я на форуме сам держите код мна не жалко кому надо пользуйтесь пожалуста.
     

    Вложения:

    • _555.ino
      Размер файла:
      3,8 КБ
      Просмотров:
      470
    Последнее редактирование модератором: 22 фев 2017
  9. mosvet

    mosvet Нуб

    ВОПРОС НЕ ПО БИБЛИОТЕКЕ
     
  10. mosvet

    mosvet Нуб

    Отдельная благодарность
    ostrov
    по поводу кнопки нравится не нравится понял на форуме впервые извиняюсь если что не так.
     
  11. mosvet

    mosvet Нуб

    всем спокойной ночи
     
  12. vvr

    vvr Инженерище

    работает - ну и чудненько.
    на будущее - управление шаговым двигателем с помощью библиотеки AccelStepper у вас не правильно сделано.
     
  13. mosvet

    mosvet Нуб

    Дело новое хотелось бы разобраться с ШД первый проект если можете подскажите как правильно.
     
  14. vvr

    vvr Инженерище

    я уже несколько раз вам писал - сравните свой код и примеры в библиотеке, только внимательно.
    моё сообщение #23 вы проигнорировали.
     
  15. mosvet

    mosvet Нуб

    Предположение правильное и логика правильная я и сам ето понимал только не знал как ето сделать програмно всем кто помог Огромная благодарность и отдельное СПАСИБО ЧЕЛОВЕКУ ostrov я помню что ето не катируерсяна форуме.