Фазирование задачи проекта управления шаговым двигателем

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

Далее, я хотел бы, чтобы двигатель автоматически включился, как только я отпущу педаль. Я хотел бы контролировать скорость обратного вращения с переменным горшком, если это возможно, и контролировать, как долго двигатель работает в обратном направлении, прежде чем остановиться. Это время может варьироваться от 1 мс до 10 сек. Если это возможно, я бы с удовольствием использовал нажимные переключатели для управления временем реверса.

, 👍0

Обсуждение

Желаю вам удачи в ваших начинаниях. Однако я не вижу здесь вопроса о проблеме, с которой вы столкнулись с Arduino. Если вы хотите знать, можно ли это сделать, да, можно. Можно ли это сделать с помощью Arduino? Да, может. Мы сделаем это для вас? Нет, не будем., @Majenko

Вы ищете предложения о том, как начать работу или предупреждения об очевидных подводных камнях?, @dlu

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


2 ответа


1

Я мог бы предложить посмотреть прошивку для 3D-печати, такую как Repetier и Marlin, и игровую площадку Arduino для небольших проектов, таких как простое пошаговое управление, переключатели чтения и снятия, цифровые поворотные и аналоговые горшки. Я купил дешевый (проводной USB) контроллер PS3, чтобы получить некоторые идеи. Он имеет широкий спектр вариантов ввода. И местный магазин бытовой техники пригодится по пути.

Я также рекомендую перейти от родной среды разработки Arduino к чему-то вроде бесплатной версии Microsoft Visual Studio с надстройкой Visual Micro для Arduino. Это даст вам точки останова, доступ к переменным и удобные улучшения форматирования.

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

,

Вынужден не согласиться с большинством из этого. Применимая часть технологии 3d-принтера - это модули драйвера питания, но схема управления будет совсем другой. И нет необходимости связываться с visual studio - это очень простой программный проект, для которого должна быть полностью достаточна отладка последовательного вывода, а также хорошее упражнение в развитии навыков критического мышления., @Chris Stratton

@Крис Стрэттон-Нет проблем. Если 35 лет инженерной работы чему-то меня и научили, так это тому, что на технический вопрос НИКОГДА не бывает только одного хорошего ответа. Установка платы RAMPS для работы с Arduino является важной частью. Я лично думал, что схемы программного обеспечения / прошивки / конфигурации, необходимые для работы прошивки Repetier с несколькими наборами аппаратного и программного обеспечения хоста, также были увлекательным исследованием блокировки #defines. Наконец, если в родной среде Arduino есть возможности, которые я описал выше, я их еще не нашел., @Lou Geezer

Похоже, что вы, возможно, немного усложняете проблему, чем это должно быть - плакат пытается запустить *один* двигатель и прочитать *один* потенциометр и переключатель. Для этого им не нужна вся электроника принтера и многоосевой интерпретатор кода G-это должна сделать практически любая плата MCU, включая Uno и один драйвер шагового режима. Один цифровой вход, один аналоговый вход и, в зависимости от выбранного драйвера, от двух до четырех цифровых выходов. Тем не менее, может быть, стоит подумать о повышении и снижении скорости двигателя, если нагрузка нетривиальна... но это можно сделать путем подсчета., @Chris Stratton


1

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

Во-первых, непрерывный ход шагового двигателя, пока ваша нога нажимает на педаль, может быть выполнен относительно просто. Например, быстрое утверждение if может быстро позволить вам сообщить Arduino, что если переключатель закрыт (нога нажимает на педаль), запустите шаговый двигатель с любой желаемой скоростью. Что касается управления с помощью потенциометра, в Интернете есть много учебных пособий о том, как управлять ими с помощью потенциометров, таких как этот, https://www.youtube.com/watch?v=RakXequOrSY, в котором используется двигатель NEMA.

Во-вторых, что касается "возвращения на позицию", я настоятельно рекомендую заглянуть в библиотеку accelstepper.h. Там вы можете потенциально использовать функцию, такую как set stepper.setCurrentPosition (), и поставить 0 между (), чтобы указать ей вернуться в исходное положение после того, как вы отпустите ногу (добавьте это в ваше утверждение "если", если вы решите пойти по этому маршруту. Эта же библиотека также может быть весьма полезна для начального запуска двигателя, возможно, используя функцию, такую как stepper.runToNewPosition (), среди многих других возможностей.

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

,