Работая с датчиком и двигателем, могу ли я использовать оба или щит двигателя?

11

Обновление: я в настоящее время изменяю несколько вещей с проектом. Я воспользовался некоторыми из вас советом. Я перешел с шагового двигателя на RC-сервопривод (управляемый через ШИМ), и если я столкнусь с какими-либо проблемами и не смогу их решить, я спрошу. Спасибо за помощь!

Я работаю над проектом с другом, и мы впервые используем Arduino. Мы используем Arduino для получения данных от датчика (акселерометр), а затем включаем двигатель (6 В, постоянный ток).

Я занимался копанием, и кажется, что питания от Arduino может быть недостаточно для двигателя и датчика одновременно. Может быть, что-то вроде задержки может сработать (возможно ли это?).

Я собираюсь использовать моторный щит . Смогу ли я по-прежнему управлять акселерометром и двигателем?

Я пытаюсь использовать один внешний источник питания (максимум: 6 батареек типа АА; я пытаюсь ограничить количество батарей, поскольку мы пытаемся сохранить его портативность), поэтому есть ли способ использовать один источник, так как Arduino и моторный щит нужны два разных блока питания (из моего понимания).

Om23
источник
Вы все еще должны быть в состоянии использовать свои другие булавки. Этот моторный щит будет действовать как могущественный брат, прислушиваться к тому, что говорит булавка, и делать то, что, конечно, с большой силой, он - старший брат! Не могли бы вы отредактировать свой вопрос, чтобы более точно определить количество батареек АА, которые вы собираетесь использовать?
Абдулла Кахраман
Хорошо, я обновил количество батарей. Как вы думаете, шаговой двигатель будет лучшей заменой, поскольку я слышал, что они очень хорошо работают с Arduinos.
23
@ Om23 Выбор шагового, сервоприводного, щеточного постоянного тока или бесщеточного постоянного тока будет зависеть от цели, которую должен выполнять двигатель, и (например, для двигателей BLDC) доступного оборудования для управления двигателем. Это может привести к интересному новому вопросу, касающемуся определения, какой двигатель лучше всего использовать для каких из нескольких возможных целей, о которых вы можете подумать. Не уверен, что такой вопрос идеально подходит для сайта Arduino, возможно, кто-то другой может вмешаться в это.
Аниндо Гош

Ответы:

12

Проблема 1 : Управление двигателем напрямую от Arduino

Вождение двигателя непосредственно от выводов Arduino не рекомендуется по нескольким причинам:

  • Ток нагрузки , особенно при запуске и останове двигателя. Как правильно указано в вопросе, контакты Arduino могут просто не рассчитываться для обеспечения достаточного тока. Arduino может нагреться или даже повредиться из-за длительного сильного тока.
    Хотя каждый вывод Arduino для Arduinos на базе ATmega рассчитан на 40 мА, я лично предпочитаю, чтобы любая постоянная нагрузка была ниже 30 мА, ваш аппетит к риску может отличаться. Не видя спецификацию рассматриваемого двигателя, невозможно предположить, какой ток требуется двигателю
  • Противо-ЭДС двигателя, как во время выключения двигателя, так и, возможно, во время коммутации двигателя. При вращении двигателя постоянного тока контактные щетки «коммутируют» между разрезными кольцами, по крайней мере, в традиционных типах щеточных двигателей постоянного тока, создавая крошечные искры каждый раз.
    Обратное ЭДС - это, в основном, обратное напряжение, генерируемое катушками двигателя (или любой индуктивной нагрузкой при отключении), переходные процессы (пики), которые могут на мгновение значительно превышать допустимый диапазон напряжения, который могут выдержать контакты микроконтроллера.
    Противо-ЭДС остается риском, хотя и уменьшенным, даже если быстрый диод подключен с обратным смещением к выводам двигателя, что настоятельно рекомендуется.
  • Таким образом, настоятельно рекомендуется изоляция между Arduino и моторным приводом. Для простоты реализации это будет моторный щит.
    Если вы знакомы с базовой электроникой, это также может быть достигнуто путем непосредственного подключения подходящей ИС драйвера двигателя и обратных диодов. ( Правка : это отлично описано в ответе Манишарта )
    Драйвер мотора, будь то экран или микросхема, должен получать питание независимо от Arduino, но с двумя линиями заземления источника питания, соединенными вместе. Смотрите дальше вниз.

Проблема 2 : Управление акселерометром и моторным щитом одновременно

  • Да, акселерометр можно контролировать и считывать с Arduino с установленным экраном двигателя, гарантируя, что контакты, выбранные для доступа к акселерометру, не используются на самом деле экраном двигателя. Все они будут подключены к экрану, но без внутренней функции или подключения внутри экрана. Документация для выбранного щита обычно предоставляет эту информацию.
    Для удобства ищите моторный щиток со стекируемыми заголовками, то есть со штырьками Arduino, дублированными на моторном щитке, для подключения дополнительного оборудования, в вашем случае акселерометра. Не все экраны обеспечивают наращиваемые заголовки. Таким образом, усложняется использование штырьков, не используемых экраном, необходимость припайки проводов к соответствующим контактным площадкам на печатной плате или какое-либо подобное расположение.
    В случае, если выбранный вами экран двигателя израсходует все контакты GPIO, как это может быть в случае экранов для управления несколькими двигателями, у вас могут возникнуть проблемы. Поскольку необходимо приводить в действие только один двигатель, избегайте экранов с несколькими двигателями, которые не оставляют достаточно неиспользованных выводов GPIO.

Проблема 3 : Распределение мощности между Arduino и моторным щитом

  • Проблема с предложенной схемой 6 х АА (номинальное максимум 9 Вольт) состоит в том, что, хотя она обеспечивает достаточное напряжение для входного разъема постоянного тока, доступного на многих Arduinos (обычно рассчитанных на вход от 7 до 12 Вольт), она слишком высока для того, чтобы двигатель быть отвезенным прямо с него.
  • Есть, однако, несколько экранов двигателя, которые принимают прямую мощность (например, от 7 до 25 Вольт), а затем обеспечивают хорошо регулируемые 5 Вольт для Arduino, к которому они подключены. Таким образом, Arduino вообще не нуждается в отдельном питании и не должен быть. Это абсолютно единственный тип моторного щита, который стоит купить .
  • Альтернативы Kludgier включают касание 4 из 6 ячеек АА для питания двигателя и всех 6 ячеек для питания постоянного тока (PWRIN) Arduino, или использование отдельного стабилизатора 6 Вольт для питания двигателя при подаче 9 Вольт непосредственно к разъему Arduino DC.
  • Попытка питания Arduino с помощью батарейного блока, а затем питание двигателя от Vin-контакта Arduino - плохая идея, потому что
    • Диод M7 между разъемом постоянного тока и Vin-контактом на нескольких эталонных конструкциях Arduino рассчитан на 1 Ампер, двигатель может предположительно увеличить ток, по крайней мере, на мгновение
    • Весь электромагнитный шум, генерируемый двигателем, коммутационный шум плюс переходные процессы обратной связи, будет поступать обратно на плату Arduino, если не будет реализована очень жесткая развязка, а не простая задача. Эта обратная связь EMI вызовет прерывистые, трудные для отладки проблемы с работой Arduino.
Аниндо Гош
источник
10

Большинство экранов занимают несколько выводов, а остальные оставляют для вас (поэтому многие из них имеют точную копию системы выводов Arduino поверх них, используя наращиваемые заголовки). Они спроектированы так, чтобы быть максимально без проблем, поэтому получить щит - самый простой способ обойти это.

Я лично не питаю моторы от платы напрямую; вместо этого я использую моторные драйверы, такие как L293D для этого. Контакты не очень хороши для извлечения тока, и обычно лучше подключать датчики напрямую, а не через контакты Arduino. Помните, что контакты имеют ограничение по току, и если вы их перегрузите, они сгорят.

Использовать L293D легко:

введите описание изображения здесь

Подключите контакты 1,9,16 к источнику Vcc (положительный вывод любого источника 5 В, которым вы питаете Arduino. Для меня это, как правило, линия, вытянутая от LM7805). Теперь подключите контакты 4,5,13,12 к вашему GND (отрицательный вывод). Теперь подключите контакт 8 к источнику высокого напряжения (6 В, 12 В или любой другой, который вы хотите подать на ваши двигатели). Обратите внимание, что отрицательные клеммы всех источников напряжения должны быть замкнуты на GND.

Теперь подключите ваш двигатель через два выходных контакта на одном участке (3,4 слева). Подключите входные контакты (2,7) к двум различным контактам на Arduino. Когда вы подаете одинаковый сигнал (ВЫСОКИЙ или НИЗКИЙ) на оба контакта, двигатель останавливается. Если вы дадите HIGH от одного контакта и LOW от другого, двигатель будет вращаться по часовой стрелке или против часовой стрелки, в зависимости от того, какой вывод получил какой сигнал.

Если вы хотите однонаправленный двигатель и хотите сохранить контакты, замкните один из входных контактов на GND. Теперь, когда другой входной контакт НИЗКИЙ, двигатель будет выключен, а когда он ВЫСОКИЙ, двигатель будет включен.

Вы можете присоединить другой двигатель, используя ту же процедуру на противоположном конце чипа, если хотите.

L293D потребляет небольшое количество тока от Arduino и питает двигатель от тока, подаваемого через контакт 8, и обычно идеально подходит для таких ситуаций.

Manishearth
источник