Как написать код Arduino для шагового двигателя, чтобы двигать руку вперед и назад на 180 градусов
В настоящее время я работаю над проектом, в котором нужно собирать пластиковые шарики и складывать их в коробку. Я пытаюсь использовать шаговый двигатель для перемещения руки, прикрепленной к квадратному куску фанеры, на котором есть банки Pringles. Вот так я планирую собирать пластиковые шарики.
Шаговый двигатель должен перемещать рычаг вперед и назад на 180 градусов, чтобы собирать и размещать пластиковые шарики. Но я не уверен, как написать код для этого, так как я новичок в кодировании Arduino. Любая форма помощи будет принята с благодарностью. Заранее спасибо.
@jon_doe, 👍0
Обсуждение1 ответ
Недостаточно информации о вашем шаговом двигателе, поэтому давайте предположим некоторые: давайте использовать шаговый двигатель с шагом 1,8 градуса (очень популярный шаговый двигатель), и мы будем управлять без микрошагов.
Для выполнения задачи вам потребуется:
- Ардуино,
- шаговый двигатель,
- драйвер шагового двигателя (например, EasyDriver или что-то вроде Драйверы Pololu)
- блок питания. Чтобы избежать помех, я бы посоветовал подключить Arduino к ПК (через USB-порт) и дополнительному мощному блоку питания только для двигателя/драйвера двигателя.
Теперь вам нужно передать по крайней мере два сигнала от Arduino к драйверу шагового двигателя (здесь я говорю о примере EasyDriver). Сигналы DIR и STEP. DIR выбирает направление вращения двигателя. В зависимости от подключения шагового двигателя к печатной плате драйвера у вас может быть вращение по часовой стрелке, когда сигнал находится в одном состоянии, и против часовой стрелки, когда DIR находится в противоположном состоянии. STEP принимает импульсы для перемещения шагового двигателя. Драйвер перемещает шаговый двигатель, когда на входе STEP появляется передний фронт. Один передний фронт равен одному шагу = 1,8 градуса (опять же, это применимо, если вы не используете микрошаг). Чтобы повернуть мотор на 180 градусов, нужно сделать 100 шагов.
Подводя итог:
- Используйте два порта (самое простое решение здесь с EasyDriver): один определен как DIR, другой как STEP.
- DIR low (выбор одного из направлений)
- Шаговый импульс 100 раз (шаговый двигатель поворачивается на 180 градусов)
пауза (для всего, что нужно сделать)
DIR высокий (противоположное направление вращения)
- Шаговый импульс 100 раз (шаговый двигатель поворачивается на 180 градусов в исходное положение)
- Как использовать SPI на Arduino?
- Как решить проблему «avrdude: stk500_recv(): programmer is not responding»?
- Как создать несколько запущенных потоков?
- Как подключиться к Arduino с помощью WiFi?
- avrdude ser_open() can't set com-state
- Как узнать частоту дискретизации?
- Что такое Serial.begin(9600)?
- Я закирпичил свой Arduino Uno? Проблемы с загрузкой скетчей на плату
вы не сможете повернуть руку на 180 градусов, пока не научитесь поворачивать шаговый двигатель.... начните с непрерывного перемещения двигателя в обоих направлениях.... затем научитесь перемещать только определенное количество шагов, @jsotola
В сети уже полно примеров. Вы можете найти их через поисковую систему., @MichaelT