Можно ли подружить Драйвер шагового двигателя (Troyka-модуль) и библиотеку AccelStepper?

Тема в разделе "Моторы, сервоприводы, робототехника", создана пользователем orskdealer, 3 мар 2016.

  1. orskdealer

    orskdealer Нуб

  2. Unixon

    Unixon Оракул Модератор

    Зачем? Есть же родная библиотека AmperkaStepper...
     
  3. orskdealer

    orskdealer Нуб

    Она только для управления шаговыми двигателями через Motor Shield.
     
  4. Unixon

    Unixon Оракул Модератор

    Пардон, я все перепутал, вы правы.
    Просто у этого модуля все в железе сделано, там особо ничего в коде городить не нужно.
     
  5. Unixon

    Unixon Оракул Модератор

    Да, у AccelStepper есть свои фичи поверх базового интерфейса шаговика.
    По поводу адаптации нужно смотреть в код библиотеки.
     
  6. Unixon

    Unixon Оракул Модератор

    Вроде ему в конструкторе можно передать по указателю функции forward() и backward() и установить интерфейс 0 "FUNCTION", а в этих функциях самому давить на пины модуля.

    Ага, интерфейс сам выбирается, нужно только передать ему свои callback функции.
     
    orskdealer нравится это.
  7. Onkel

    Onkel Гуру

    а шаговик не сожрет батарейки через пару минут?
     
  8. orskdealer

    orskdealer Нуб

    Нет, так как сейчас всё подключено не к батарейкам. а к аккамулятору пуско-зарядного устройства CARKU E-power-21.

    Основные технические характеристики

    Аккумуляторы – литий-полимерный, 18А*ч при 3,7В (67 Ватт*ч);
    Вход: 14В/1A;
    Выходы: 12В (на крокодилы) /300А пусковой, 600A пиковый, 19В/3.5A, 12В/10A, 5В/2A (USB), 5В/1A (USB);
    Режим работы фонаря: постоянный, мигающий, SOS;
    Продолжительность полного заряда батареи – 7 ч;
    Допустимый диапазон температур: -30..+60;
    Габариты: 230х87х27 мм;
    Вес 670 г.
     
  9. orskdealer

    orskdealer Нуб

    Unixon, подскажите, пожалуйста, чайнику подробнее как это сделать. Можно пример скетча?
     
  10. orskdealer

    orskdealer Нуб

    Я правильно понимаю, что если у меня Драйвер шагового двигателя (Troyka-модуль) подключен к следующим пинам:
    Step - 7 пин,
    Direction - 8 пин,
    Enable - 11 пин,
    то я должен написать:
    Код (C++):
    #include <AccelStepper.h>

    AccelStepper stepper1(1, 7, 8);
    stepper1.setEnablePin(11);
     
    ?
     
    Последнее редактирование: 3 мар 2016
  11. Unixon

    Unixon Оракул Модератор

    Код (C++):
    #include "AccelStepper.h"

    #define PIN_DIR 4
    #define PIN_STEP 3
    #define PIN_ENABLE 2

    void forward();
    void backward();

    AccelStepper stepper(&forward, &backward);

    void forward()
    {
      digitalWrite(PIN_DIR, HIGH);
      digitalWrite(PIN_STEP, HIGH);
      digitalWrite(PIN_STEP, LOW);
    }

    void backward()
    {
      digitalWrite(PIN_DIR, LOW);
      digitalWrite(PIN_STEP, HIGH);
      digitalWrite(PIN_STEP, LOW);
    }

    void setup()
    {
      pinMode(PIN_ENABLE, OUTPUT);
      pinMode(PIN_STEP, OUTPUT);
      pinMode(PIN_DIR, OUTPUT);
      digitalWrite(PIN_ENABLE, HIGH);
    }

    void loop()
    {
    }
     
    Tomasina, nyptus и orskdealer нравится это.