Подключение драйвера шагового двигателя

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

  1. Kasiman

    Kasiman Нуб

    Добрый день, столкнулся с проблемой при подключении шаговика к дуне через драйвер. Подключаю все, как показано на картинке.
    [​IMG]
    Использую только STEP, то есть от драйвера идет один шлейф (SVG).
    Все три провода подключаю к ардуине (не использую Troyka Shield).
    На контакты Vin, Vout подвожу крону 9V. Подключаю двигатель, пишу скетч и все должно быть ОК.
    И на самом деле все ОК, если я пишу простой скетч без общения через COM-порт.
    Но мне необходимо управлять шаговиком, по команде. Вот код:
    Код (Text):
    #define Turn_Table '3'
    #define Table_on_Start '4'

    int stepper = 9;

    int stepCount = 0;    // переменная для хранения позиции мотора

    void setup()
    {
      Serial.begin(9600);
      pinMode(stepper, OUTPUT);
    }


    void loop()
    {
      while (Serial.available())
      {
        char event = Serial.read();

        switch (event)
        {
          case Turn_Table:
            digitalWrite(stepper, HIGH);
            delay(20);
            digitalWrite(stepper, LOW);
            delay(20);
            stepCount++;
            break;
          case Table_on_Start:
            for (int i = 0; i < 200 - stepCount; i++)
            {
              digitalWrite(stepper, HIGH);
              delay(20);
              digitalWrite(stepper, LOW);
              delay(20);
            }
            break;
        }
      }
    }
    Заливать код приходится отключив драйвер от ардуины, так как иначе код просто не заливается. После того как залил код, возвращаю в цепь драйвер и подключаю ардуину к компу. В результате диод на дуне загорается, но при попытке открыть COM-порт выдается ошибка о том что он недоступен.

    Подскажите, пожалуйста, в чем может быть проблема. Буду благодарен любой помощи.
     

    Вложения:

  2. Unixon

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

    Попробуйте подключить один только драйвер, без двигателя, и в такой конфигурации залить скетч.
     
  3. Kasiman

    Kasiman Нуб

    Залить скетч, не проблема. Отключив драйвер, код заливается.
    Проблема заключается в том, что после подключения полностью собранной схемы (с уже залитым кодом) к компу, я не могу управлять процессом через COM-порт, потому что он по странным причинам недоступен.
     
  4. Unixon

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

    Ну, сходу напрашивается версия, что мотор у вас тупо сжирает весь ток и вся схема не может работать от источника типа "USB+крона".
     
  5. Unixon

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

    Версия номер 2 - глюки взаимодействия винды с виртуальным COM портом и как результат - удержание МК в состоянии сброса, но это чисто схемотехнически маловероятно.
     
  6. Kasiman

    Kasiman Нуб

    Версия с недостатком тока очень похожа на правду, потому что при отключении питания на шлейфе SVG, диод на ардуине начинает светиться ярче.
    Вот мотор: http://amperka.ru/product/stepper-motor-ldo-28sth45-0674a
    Мне почему-то казалось что от ардуины питается только сам драйвер, которому достаточно 3,3-5 В. А на двигатель питание идет уже от кроны подключенной к драйверу на контакты Vin, Vout.
    В связи с моими очень слабыми познаниями в области электротехники прошу помочь решить эту проблему.
     
  7. Kasiman

    Kasiman Нуб

    И, кстати, я не указал:
    в схеме также присутствует лазерный модуль, который кушает еще 3В и питается он от ардуины.
    Так что нехватка питания - это похоже и есть причина неработоспособности установки.
    Можно ли как-то все организовать без использования дополнительных батареек?
     
  8. Kasiman

    Kasiman Нуб

    Исключил из схемы лазер и все равно двигатель не реагирует. Но если я пишу что-то вроде этого:
    Код (Text):
    int stepper = 9;

    void setup()
    {
      Serial.begin(9600);
      pinMode(stepper, OUTPUT);
    }


    void loop()
    {
            for (int i = 0; i < 200; i++)
            {
              digitalWrite(stepper, HIGH);
              delay(20);
              digitalWrite(stepper, LOW);
              delay(20);
            }
    }
    Двигатель крутится, как надо. Но тут нету никакого общения с контроллером через COM-порт, что мне крайне необходимо.
     
  9. Unixon

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

    Таких контактов нет. Есть контакты "Vin +", "Vin -", "Vout 1,2,3,4".
     
  10. Unixon

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

    Просто возьмите вместо дохлокроны блок батарей типоразмера C или D.
     
  11. Kasiman

    Kasiman Нуб

    Но ведь питания для вращения двигателя без общения через COM-порт хватает. Он вращается в соответствие с прописанным кодом.
    Проблемы с COM-портом тоже быть не может, потому что лазер я могу включать/отключать по команде.
     
  12. Unixon

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

    Т.е. как только вы подключаете драйвер к ардуине, что с мотором, что без него, скетчи перестают заливаться?
     
  13. Kasiman

    Kasiman Нуб

    Решил проблему!
    Дело действительно было в нехватке питания. Теперь же я питаю ардуину через импульсный блок питания (9В), при этом также подключаю плату к компу по USB, для общения с контроллером через COM-порт.
    Все работает правильно.
    Благодарю за помощь!