Arduino и Motor shield. Помогите разобраться.

Тема в разделе "Arduino & Shields", создана пользователем ZolbergN, 18 окт 2015.

  1. ZolbergN

    ZolbergN Нерд

    Ребят, подскажите пожалуйста, почему при подключении двигатель к мотор шилду и написании кода, двигатель движется слишком медленно, питание идёт по USB от компьютера? (если проблема не в подключении, подскажите код на увеличение скорости пожалуйста)
    И второй вопрос, как нужно подключать моторчики, чтобы не спалить мотор шилд. Потому что я подключил двигатель, а сама плата(motor shield) немного греется и двигатель пищит, помогите разобраться?
     
    Последнее редактирование: 18 окт 2015
  2. robokop

    robokop Гик

    1.вам могло было просто не хватить напряжения,попробуйте его повысить:)
    2.нужно знать, где находится + - на моторе, и на клемниках мотор-шилда . Подключать надо соответственно полярности:)
     
  3. ZolbergN

    ZolbergN Нерд

    Так вот, я совсем новичок в этой сфере, поэтому не знаю как повысить напряжение, подскажите)
     
  4. geher

    geher Гуру

    Жалких 500 мА на все. Да и то не факт.
    Питать надо от чего-то помощнее.
     
  5. ZolbergN

    ZolbergN Нерд

    Батарейки крона хватит?
     
  6. geher

    geher Гуру

    Крона сама по себе как источник питания для достаточно мощных вещей не очень. Хотя, может быть, двигатели будут крутиться быстрее, но очень недолго. Экспериментировал в свое время с кроной в качестве источника питания. Уж очень недолго работает.
    Лучше пакет из аккумуляторов АА или LiPo. Если не хватает напряжения, использовать повышающий преобразователь.
    И лучше питать моторшилд отдельно, а не от ардуино, если есть такая возможность. Можно от одного источника, но с все таки с разделением питания (управляется перемычкой на шилде), в смысле подключить источник параллельно к шилду и ардуине.

    Кстати, какой двигатель, какой потребляемый им ток, на какое напряжение рассчитан?
    Чтобы он нормально работал с типичным моторшилдом, возможности по току шилда должны с запасом перекрывать потребности двигателя. Еще неплохо припаять керамические конденсаторы параллельно моторам. номинал конденсаторов не подскажу, ставил в свое время 0.1 мкФ, не уверен, что это лучший вариант.
     
  7. ZolbergN

    ZolbergN Нерд

    Мне нужно питать 4 мотора по 6 Вольт каждый, силу тока не скажу, так как не знаю..
     
  8. geher

    geher Гуру

    Типичный моторшилд - это два канала по 2А. Т.е. можно подключать пару независимо управляемых двигателей с током потребления 1-1.5 А. Если надо подключать четыре, то можно подключить их попарно параллельно к двум каналам, но при этом каждый двигатель должен потреблять не больше 1А в самых тяжелых режимах (чтобы не спалить шилд), а двигатели будут управляться сразу парами.
    Если нужно подключать более мощные двигатели, то нужно брать драйвер или шилд помощнее (в соответствии с током, потребляемым двигателями).
    Если нужно управлять независимо четырьмя двигателями, то нужно или два типичных шилда (да еще решать вопрос с разнесением по разным пинам), или искать шилд сразу на четыре двигателя, если такой есть.
     
  9. ZolbergN

    ZolbergN Нерд

    У меня шилд именно под 4 двигателя.
     
  10. geher

    geher Гуру

    А какой именно?
     
  11. ZolbergN

    ZolbergN Нерд

    Вот
     

    Вложения:

  12. geher

    geher Гуру

    По фото ничего не скажу, первый раз такой вижу. Да еще перемычек на нем как собак нерезаных. Одна, скорее всего, объединение/разделение питания с ардуиной. А остальные две зачем?
    И на какой ток потребления он рассчитан?

    Ясно только, что внешнее питание, скорее всего, подключается к двухконтактному клеммнику на длинной стороне.
     
  13. vvr

    vvr Инженерище

  14. geher

    geher Гуру

    Итак:
    1. максимально-продолжительный ток каждого канала: 0,6 А; маловато как-то.
    Т.е. если моторы на больший ток, можно спалить шилд.
    2. В принципе, если греется не сильно, но не страшно. Вопрос только в том, не сильно - это сколько.
    3. Питать шилд лучше отдельно. Соответственно, перемычку PWR Sel в положение Ext, Питание 7-24 В к двойному клеммнику на длинной стороне.
    4. Для подключения двигателя четыре канала. Подключать по одному к пятиконтактным клемникам к крайним парам клемм (помечены M1, M2, M3, M4)
    5. Дальше могу ошибаться, но из описания вроде следует так:
    для каждого подключенного двигателя объявляется экземпляр класса.
    Код (Text):
    AF_DCMotor motor1(1);  // подключен к M1
    AF_DCMotor motor2(2);  // подключен к M2
    AF_DCMotor motor3(3);  // подключен к M3
    AF_DCMotor motor4(4);  // подключен к M4
    И в тексте скетча надо просто пинать по мере надобности экземпляры классов на предмет управления соответствующим двигателем.
    Например, для того, чтобы пнуть двигатель, подключенный к M2, надо пнуть экземпляр класса motor2 (поскольку именно его объявили с двойкой в параметре конструктора).
    Установить направление:
    Код (Text):
    motor2.run(FORWARD); // вперед (условное понятие,
    //зависящее от физического расположения двигателя
    // на устройстве и полярности его подключения к клемме).
    Код (Text):
    motor2.run(BACKWARD); // назад
    Код (Text):
    motor2.run(RELEASE); // остановить
    Заставить крутиться:
    Код (Text):
    motor2.setSpeed(255); // полный газ
    Параметр метода setSpeed, насколько я понимаю, может быть от 0 до 255 (соответственно от остановки до полного газа). Но при этом, как показывает практика использования других шилдов, в зависимости от мотора и источника питания двигатель может начинать крутиться не с нулевого значения, а с какого-нибудь еще (порог устанавливается исключительно экспериментально), причем иногда с достаточно высокого. Если скорость задана слишком маленькая (ниже этого самого порога), то двигатель будет пищать, а не вращаться.
    Перед реверсом направления вращения двигатель лучше остановить (в примере, кстати, так и делается).
     
  15. ZolbergN

    ZolbergN Нерд

    Большое спасибо, буду пробывать))
     
  16. robokop

    robokop Гик

    я лично для опытов с моторами использую зарядку от мощного фонаря на 12 в с подходящим входом