Вопрос от непрофессионала Профессионалам Ардуино

Дано:

N - количество шаговых двигателей в стенде, они могут быть разной мощности;

Вопросы:

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

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

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

Arduino & Pi

1.4K поста20.6K подписчика

Правила сообщества

В нашем сообществе запрещается:

• Добавлять посты не относящиеся к тематике сообщества, либо не несущие какой-либо полезной нагрузки (флуд)

• Задавать очевидные вопросы в виде постов, не воспользовавшись перед этим поиском

• Выкладывать код прямо в посте - используйте для этого сервисы ideone.com, gist.github.com или схожие ресурсы (pastebin запрещен)

• Рассуждать на темы политики

• Нарушать установленные правила Пикабу

1
Автор поста оценил этот комментарий

Так то да - надёжней. Отказоустойчивость системы так же подскочит.
Вместо 300 узлов будет 1 узел. Более того, механический. Т.е. ему будет глубоко похер на проблемы, будет работать до тех пор пока не выйдет из строя.

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

У меня тётя в 90х работала на аналоговой АТС в городе 100тыс+ населения  и когда я был в самом коммутационном зале, то залипал как какое-то устройство ездит и коммутирует один шкаф с другим... вот наверно типа такого надо, но миниатюрного)

показать ответы
Автор поста оценил этот комментарий

У вас от 1C до аппаратуры - еще куча всего. В данном случае идет речь об организации конечного железа, а что у вас там в 1С - пока забыли (чтобы не пачкать мозг).

Важно только что одновременно может работать не более 1 мотора (это мы уже и так поняли).

А под "ключем" в данном случае понимался силовой ключ, ака транзистор.

раскрыть ветку (1)
Автор поста оценил этот комментарий

я просто хотел собрать мнения в какую сторону рыть, а тут такой движняк пошел))))

показать ответы
Автор поста оценил этот комментарий
В ключе нет и не может быть никакого значения. Все что вы описываете - для плат "с мозгами" . Если у вас познания на таком уровне (программиста далекого от схемотехники) - то только индивидуальные драйверы и ни как иначе !
раскрыть ветку (1)
Автор поста оценил этот комментарий

У меня в 1С есть ключ openbox, которых означает, что хоть один ящик открыт. Если он равен true, то новая команда на открытие другого ящика не отправится

показать ответы
Автор поста оценил этот комментарий

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


Посмотри klt-контейнеры для автоматизированного склада. Это сейчас, фактически мировой стандарт автоматизированного хранения. Дорого.

Опять же - автоматизированные стеллажи я первый раз увидел в 1987 году. Как раз в архиве.

раскрыть ветку (1)
Автор поста оценил этот комментарий

Там для товаров.

показать ответы
Автор поста оценил этот комментарий
Нет, такое только драйверами с индивидуальным процессором.
Из простого, только коммутация входных или выходных цепей, и надо будет ждать, пока каждый двигатель не отработает своё задание и затем подключать новый.
раскрыть ветку (1)
Автор поста оценил этот комментарий

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

показать ответы
Автор поста оценил этот комментарий
Нет, такое только драйверами с индивидуальным процессором.
Из простого, только коммутация входных или выходных цепей, и надо будет ждать, пока каждый двигатель не отработает своё задание и затем подключать новый.
раскрыть ветку (1)
Автор поста оценил этот комментарий

А по-другому программная часть не позволит - пока есть в ключе OpenBox значение True нельзя запустить второй двигатель.

показать ответы
1
Автор поста оценил этот комментарий

1 - У ардуины скорости не хватит на такую кучу моторчиков. Они будут срабатывать приблизительно тогда, когда надо. Тут уже малинку можно рассматривать. Тем более из 1с - значит тебе ещё комп нужен будет.


2 - даже китайское заводское будет надежней самодельного из китайских деталей.



Вот не обижайся, жопой чую типичную "вечную задачу". То есть можно построить механизм за копейки, потом его 5 лет отлаживать, добиться терпимой работы, выкинуть и купить заводское решение.


Ты, случайно, не сортировщик делаешь?

раскрыть ветку (1)
Автор поста оценил этот комментарий

Нет. Доступ к нужным документам в архиве)

показать ответы
Автор поста оценил этот комментарий

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

Станок ЧПУ - три оси, но нужно высокое быстродействие, так как там скорости движения одновременно работающих двигателей высокие. Так же и 3д принтер.

раскрыть ветку (1)
Автор поста оценил этот комментарий

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

показать ответы
1
Автор поста оценил этот комментарий
Ну тут вопросов к проекту больше, чем ответов. Как конечные положения определять например, как отработать пропуск шагов?
раскрыть ветку (1)
Автор поста оценил этот комментарий

Там стоят физические ограничители, в которые упираются направляющие, по которым идет механизм, который двигает двигатель. Мне просто хотелось понять как организовать свой поиск и изыскания - в каком направлении. По сути схема-то логическая глобальная простая: в какую-то плату поступает сигнал с данными (номер двигателя, время срабатывания, направление срабатывания и тд.) и двигатель нужный должен нужным образом сработать.

показать ответы
1
Автор поста оценил этот комментарий

Если у вас сотни двигателей и не допускается работы в частично исправном состоянии - можно поставить один драйвер. По проводам выйдет на самом деле компактней: к двигателю 4 провода, а к драйверу вроде 6 или 7. Но на самом деле экономии не получится. По деньгам получится дороже: вам нужно будет коммутировать силовую часть.


Самый простой и стабильный способ - я бы сделал коммутацию по принципу адресной светодиодной ленты. Чтобы избежать глюков, вам нужно отключать от двигателя все линии. Значит один адресуемый ключ типа ds2408 4 транзистора, 4 оптопары на каждый двигатель.


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

раскрыть ветку (1)
Автор поста оценил этот комментарий

Ну так а все равно же нужна плата, которая будет принимать сигнал из 1С и отправлять на нужный двигатель/драйвер.

показать ответы
Автор поста оценил этот комментарий

Дополнительные вопросы:

1) дробление шага надо ?

2) фиксация неиспользуемых движков под током надо ? или хватит собственного статического момента ?

раскрыть ветку (1)
Автор поста оценил этот комментарий

Нет. Там не миллиметровые расстояния, а 30 см крутить движком))) Фиксация не нужна - двигатель двигает горизонтальный механизм)

показать ответы
Автор поста оценил этот комментарий
Тоесть представьте что вы подключили все двигатели к одному драйверу, а потом в два конца разных фаз двигателя вставили двухполюсное реле. Реле через мультиплексор и транзистор получило свой адрес и по команде замкнуло контакты, подключив двигатель к драйверу.
раскрыть ветку (1)
Автор поста оценил этот комментарий

Вот Ваша идея мне в голову изначально и приходила, но почему-то я решил, что существует в природе такая плата - туда приходят сигналы с драйвера и из 1С и она по сигналу с 1С решает на какой выход из своих 200 отправить сигнал с драйвера)

показать ответы
2
Автор поста оценил этот комментарий
Разница в цене. Нормальное реле обойдется минимум в два раза дороже драйвера.
раскрыть ветку (1)
Автор поста оценил этот комментарий

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

показать ответы
1
Автор поста оценил этот комментарий
Драйвера и мультиплексор.
Я так понимаю моторы хиленькие до 2А ?
раскрыть ветку (1)
Автор поста оценил этот комментарий

17HS4401 Nema17

Автор поста оценил этот комментарий
Есть подозрения, что моторы смешной мощности. Что-то, что будет крутить зеркалами или цветными пластинками, для визуализации.
раскрыть ветку (1)
Автор поста оценил этот комментарий

Не совсем так. Логическая схема простая: сотрудник сканером сканирует штрихкод, сигнал от сканера идет в 1С, 1С выдает JSON с параметрами работы шагового двигатели (номер, время срабатывания и пр.).Двигатели 17HS4401 Nema17

показать ответы
4
Автор поста оценил этот комментарий

при их количестве в сотни штук нецелесообразно к каждому двигателю ставить драйвер.

На самом деле, тут есть варианты.

С точки зрения затрат на железо - может, и нет смысла. А с точки зрения живучести всей системы, вполне может и быть смысл.

Например, если ты проектируешь механическую сороконожку. Или, ближе к жизненному, глубоководный батискаф с несколькими моторами, обеспечивающими подвижность в разных плоскостях.

У тебя при отказе драйвера перестают работать ВСЕ моторы. В случае с батискафом, это почти гарантированная гибель экипажа и потеря аппарата.

А когда на каждый мотор отдельный драйвер, то выход из строя даже 50% драйверов не приведет к обездвиживанию всей системы.

раскрыть ветку (1)
Автор поста оценил этот комментарий

А если на два драйвера или три как резервные? Ну и драйвер ведь в запасе иметь никто не отменял.

6
Автор поста оценил этот комментарий
Вас спасут два мешочка - один с силовыми мосфетами, а второй со сдвиговыми регистрами. Хоть обкоммутируйтесь, лишь бы хватало соотношения сигнал/шум. Но надёжность этого решения под большим вопросом, т.к. если нет развязки по питанию - двигатели могут создавать в цепи ТАКИЕ интересные наводки, что вас ждёт много часов приседаний с осциллографом и выяснения "почему сраный регистр вдруг перескочил в следующую позицию"
В идеале силовую часть коммутировать исключительно через оптопары. Короче, я не уверен что экономия выйдет прям вах какая.
раскрыть ветку (1)
Автор поста оценил этот комментарий

Но в случае, если поставить каждому двигателю свой драйвер без платы, которая будет определять на какой драйвер отправлять сигнал ведь не обойтись. Тогда вопрос - какая разница куда отправлять сигнал - на драйвер или на реле ...

показать ответы
1
Автор поста оценил этот комментарий

Ну, на сколько я понял, у человека сотня моторов и он хочет сэкономить на покупке 99 драйверов :).

раскрыть ветку (1)
Автор поста оценил этот комментарий

Нет. Немного не так. Есть проект в голове, есть 90 моторов, есть два устройства, к которым уже подключены по мотору. Еще почти 200 моторов заказано и будут в марте. Задача определиться со схемой работы и какие инструменты нужны.

Даже уже обвязка программная для выдачи номера двигателя, который должен сработать частично есть (сигнал от сканера штрихкодов через 1С и выдача JSONа с нужными данными).

показать ответы
1
Автор поста оценил этот комментарий
Ну, берёте двухфазные шаговики и на две их фазы вешаете двухполюсное реле, которое по команде накидывает эти фазы на общую шину драйвера.
раскрыть ветку (1)
Автор поста оценил этот комментарий

То есть по этой схеме к двигателю идет кроме питания еще и релейный провод?

показать ответы
Автор поста оценил этот комментарий

Что-то типа адресного управления? Все равно надо как-то обозначить движки. Как минимум отдельную плату управления городить с ключами на каждый мотор.

раскрыть ветку (1)
Автор поста оценил этот комментарий

Вот и в этом вопросы:

1. Осуществимо ли это, так как если система содержит 200 двигателей, то экономия 199 драйверов это значительное удешевление системы.

2. Можно ли собрать такую схему и подобрать плату за адекватные деньги

показать ответы
4
Автор поста оценил этот комментарий
Релейная коммутация сигналов.
Имеет свои недостатки и достоинства.
не выйдет одновременно крутить два двигателя с одним номиналом но разными заданиями.
раскрыть ветку (1)
Автор поста оценил этот комментарий

Нет, не два двигателя ОДНОВРЕМЕННО - одновременно используется один двигатель. Но в разное время - разные из ста, например, двухста и т.д.

показать ответы
15
Автор поста оценил этот комментарий

на каждый шаговый двигатель- свой драйвер.

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

А нельзя с драйвера заводить сигнал в плату, которая распределяет сигнал на определенный двигатель из ста подключенных к этой плате?

показать ответы
2
Автор поста оценил этот комментарий
Экономия на спичках, на самом деле.

https://m.aliexpress.ru/item/1005003267649033.html?sku_id=12...
раскрыть ветку (1)
Автор поста оценил этот комментарий

Ну так все равно без платы, которая будет отправлять сигнал на конкретный драйвер не обойтись.. И какая разница с этой платы сигнал будет идти на драйвер или на реле?

показать ответы