Управление несколькими шаговыми двигателями с помощью одного драйвера

Я хочу управлять ~50 шаговыми двигателями с помощью одного драйвера и использовать только один вывод Arduino для управления каждым двигателем.

В настоящее время я использую один драйвер A4988 и пару шаговых двигателей 12 В 1 А для прототипирования части машины в качестве доказательства концепции, но в ближайшем будущем мне нужно использовать много более крупных двигателей и лучших драйверов.

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

Я попытался проверить свою идею, используя 4 разных реле, и кажется, что двигатели работают идеально в соответствии с моими потребностями (я тестировал и переключался между ними в течение 24 часов). Но поскольку транзисторы намного дешевле и меньше по размеру, я хочу использовать их, если это возможно.

У меня есть опыт программирования и я никогда раньше не разрабатывал схемы, но ниже приведена схема, которую я разработал для управления двумя шаговыми двигателями с одним драйвером, я не знаю, какие транзисторы или резисторы мне следует использовать, или эта схема возможна в все? (Как я уже упоминал, я уже использовал «модуль с 4 реле» вместо транзисторов, и он работал хорошо).

вот схемы:

Схемы управления несколькими двигателями с одним драйвером

Будем признательны за любую помощь в устранении проблем со схемой и выборе транзисторов и резисторов.

Спасибо.

ps Поскольку все в разделе комментариев предлагают использовать несколько драйверов, я хочу еще раз уточнить: использование нескольких драйверов не вариант, потому что мне нужно управлять большими двигателями, и мне нужен более дорогой драйвер, который я не могу себе позволить многие из их в прототипе. Любое предложение использовать один драйвер для управления многими двигателями, предпочтительно с использованием одного вывода на двигатель, имеет большое значение. Спасибо.

Полевые транзисторы будут работать здесь лучше, чем биполярные транзисторы, но у вас есть проблема в том, что ток проходит через эти катушки двигателя в обоих направлениях, поэтому вам нужна более сложная схема для управления транзисторами. Если вы не управляете двигателями слишком быстро, рассмотрите вместо этого оптические изоляторы.
Честно говоря, A4988 не очень дорогие, и, вероятно, в конце концов будет проще просто использовать независимые драйверы для каждого двигателя и выбирать их со стороны микроконтроллера.
Согласованный. Все остальное - это фигня.
@evildemonic, я постараюсь узнать о полевых транзисторах и оптических изоляторах, спасибо. Кроме того, я знаю, что A4988 не очень дорогие, но с большими двигателями мне нужны гораздо более дорогие драйверы, поскольку они никогда не работают одновременно, а это означает, что нужно потратить много долларов на прототип. Также каждому драйверу нужно много пинов на Arduino, на которые я не могу потратить эти ограниченные драгоценные пины ;) Еще раз спасибо.
на вашей принципиальной схеме показано, что используются 5 контактов данных ... два драйвера будут использовать 6 контактов данных ... вы можете использовать отдельные enableсигналы и подключить два stepсигнала к одному контакту данных ... то же самое для direction... это будет уменьшить количество выводов до 4 или даже до 3 контактов
я проверил таблицу данных ... вы можете подключить два контакта включения к одному контакту данных ... то же самое с направлением ... используйте отдельные stepсигналы
@jsotola, AFAIK, подключая контакты включения, заставит все шаговые двигатели потреблять много энергии (так как мне нужно ~ 50 шаговых двигателей). Кроме того, требуется много $$$ для ~ 50 лучших драйверов для более крупных двигателей, и я не могу позволить себе прототип (я не живу в стране с высоким уровнем дохода, и я не миллионер). Согласно моим схемам и тестам с использованием реле, я могу запитать 50 шаговых двигателей, используя один драйвер и используя 50 + 3 контакта данных на Arduino.
@antwon Причина, по которой вы не используете механические реле, заключается в том, что они дороже. Но вы планируете перейти на более крупные двигатели. Не станет ли цена реле (которые обычно очень дешевы) несущественной по сравнению с ценой каждого двигателя, когда вы перейдете на более дорогие двигатели? «У меня есть опыт программирования, и я никогда раньше не разрабатывал схемы» кажется хорошей причиной для того, чтобы придерживаться более простых схем IMO.
@RaphaelP, да, ты прав. Я думаю, что я «преждевременно оптимизировал» схему. Другая моя проблема заключалась в том, что мне нужно слишком много реле для работы (~ 100 из них), которые занимают много места и их сложнее обслуживать (как вы видите на схемах выше). Я только что искал в Google и понял, что есть своего рода реле, которое называется DPDT. Как вы только что сказали, я думаю, что для меня лучше использовать реле DPDT, потому что оно работает так же, как 2 реле, но с меньшей сложностью, а также намного проще для меня. Но мне нравится наука, и было бы здорово узнать, какие еще есть варианты ;)
Существует потенциальная сложность, которую вы должны учитывать, если вам нужно поддерживать точное положение между двигательными движениями. Пример: вы устанавливаете реле на двигатель 1, перемещаете двигатель 1, переключаете реле на двигатель 2, затем перемещаете двигатель 2. Теперь вы хотите снова переместить двигатель 1, поэтому вы переключаете реле обратно на 1. Но контроллер и двигатель фазы могут не совпадать. Возможно, вам придется переместиться на несколько шагов для повторной синхронизации. Ваша точная позиция была потеряна. Вам нужно будет решить, является ли это проблемой.

Ответы (1)

Как я прокомментировал вопрос, вам, вероятно, лучше использовать обычные реле, учитывая, что:

  • их стоимость лучше растет по мере того, как вы выбираете более крупные / более мощные двигатели.
  • они менее сложны (поскольку вы заявили, что никогда раньше не проектировали схему)

Сказав это, если вы хотите следовать твердотельному подходу, то вы, вероятно, стремитесь к (MOS) FET из-за их низкого сопротивления (R ds (on) ) и низкого тока активации (бесконечное усиление по постоянному току).

Есть только одна проблема: силовые полевые МОП-транзисторы имеют встроенный диод в своей конструкции (внутренний диод), который не позволяет им переключать ток в обоих направлениях, как того требует драйвер H-моста. Чтобы решить эту проблему, вы должны использовать два из них вплотную. Сделав это, вы сделали себе простое твердотельное реле (SSR).

Вот как Texas Instruments объясняет это в своем проектном документе SSR:

Источник: http://www.ti.com/lit/ug/tiduc87a/tiduc87a.pdf http://www.ti.com/lit/ug/tiduc87a/tiduc87a.pdf

Похоже, это хорошая отправная точка для ваших поисков.