Оглавление:

Arduino: Precision Lib для шагового двигателя: 19 шагов
Arduino: Precision Lib для шагового двигателя: 19 шагов

Видео: Arduino: Precision Lib для шагового двигателя: 19 шагов

Видео: Arduino: Precision Lib для шагового двигателя: 19 шагов
Видео: Шаговый двигатель 28BYJ-48 -- 5V Arduino Stepper Motor button potentiometer variable resistor 2024, Июль
Anonim
Image
Image
Глобальные переменные
Глобальные переменные

Сегодня я покажу вам библиотеку для полного привода шагового двигателя с концевыми выключателями и движения двигателя с ускорением и микрошагом. Этот Lib, который работает как на Arduino Uno, так и на Arduino Mega, позволяет перемещать двигатели не только по количеству шагов, но и по миллиметрам. И это тоже довольно точно.

Важной особенностью этой библиотеки является то, что она позволяет вам создать свой собственный станок с ЧПУ, который не обязательно будет просто X, Y, но также, например, переключателем секций, потому что это не готовый GRBL, а скорее программа, которая позволяет сделать идеальную машину для вас.

Однако следующее утверждение - важная деталь! Это видео только для тех, кто уже привык к программированию. Если вы не знакомы с программированием Arduino, вам следует сначала посмотреть другие вводные видео на моем канале. Это потому, что я обсуждаю более сложную тему в этом конкретном видео и более подробно объясняю Lib, используемую в видео: Шаговый двигатель с ускорением и концом хода.

Шаг 1. Библиотека StepDriver

Эта библиотека охватывает три наиболее распространенных типа драйверов на рынке: A4988, DRV8825 и TB6600. Он конфигурирует контакты драйверов, позволяя им выполнять сброс и перевод в спящий режим, а также активировать и деактивировать выходы двигателя, воздействующие на контакт включения. Он также устанавливает входы микрошаговых выводов драйвера и ограничительные переключатели, а также уровень их активации (высокий или низкий). Он также имеет код движения двигателя с постоянным ускорением в мм / с², максимальной скоростью в мм / с и минимальной скоростью в мм / с.

Для тех, кто смотрел части 1 и 2 видео «Шаговый двигатель с ускорением и концом хода», скачайте эту новую библиотеку, доступную сегодня, потому что я внес некоторые изменения в этот первый файл, чтобы облегчить его использование.

Шаг 2: глобальные переменные

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

Шаг 3: Функции - Установка выводов драйвера

Функции - Установка выводов драйвера
Функции - Установка выводов драйвера

Здесь я описываю некоторые методы.

Я установил параметры вывода и выводы Arduino в качестве вывода.

Шаг 4: Функции - основные функции драйвера

Функции - основные функции драйвера
Функции - основные функции драйвера

В этой части мы работаем с настройкой драйвера и его основных функций.

Шаг 5: Функции - Настройка шага двигателя

Функции - Настройка шага двигателя
Функции - Настройка шага двигателя
Функции - Настройка шага двигателя
Функции - Настройка шага двигателя

На этом этапе кода мы настраиваем количество шагов на миллиметр, которые должен выполнить двигатель.

Шаг 6: Функции - Установка пошагового режима двигателя

Функции - Настройка пошагового режима двигателя
Функции - Настройка пошагового режима двигателя
Функции - установка пошагового режима двигателя
Функции - установка пошагового режима двигателя
Функции - установка пошагового режима двигателя
Функции - установка пошагового режима двигателя

В этой таблице показаны настройки для шагового режима двигателя. Вот несколько примеров.

Шаг 7: Функции - установка концевых выключателей

Функции - установка концевых выключателей
Функции - установка концевых выключателей

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

Шаг 8: Функции - считывание концевых выключателей

Функции - считывание концевых выключателей
Функции - считывание концевых выключателей
Функции - считывание концевых выключателей
Функции - считывание концевых выключателей
Функции - считывание концевых выключателей
Функции - считывание концевых выключателей

Эта часть отличается от той, что в Lib, которую я сделал доступной на прошлой неделе. Почему я его поменял? Что ж, я создал eRead, чтобы заменить некоторые другие. Здесь eRead прочитает LVL, digitalRead (контакт) и вернет TRUE. Все это нужно выполнять на высоком уровне. Дальнейшая работа с активным ключом будет на низком уровне. Я использую его здесь, чтобы показать вам таблицу «Истина».

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

Теперь, на этом изображении os code bool DRV8825, я показываю, что движок все еще движется в растущем направлении. Однако сработал максимальный концевой выключатель. Таким образом, механизм должен остановить движение.

Наконец, я показываю то же движение, но в противоположном направлении.

Здесь у вас уже активирован переключатель конца курса.

Шаг 9: Функции - Настройка движения

Функции - Настройка движения
Функции - Настройка движения

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

Шаг 10: Функции - Функция движения

Функции - функция движения
Функции - функция движения

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

Шаг 11: Функции - Функция движения - Переменные

Функции - Функция движения - Переменные
Функции - Функция движения - Переменные

В этой части мы настраиваем все переменные, которые включают, среди прочего, периоды максимальной и минимальной скорости, расстояние траектории и шаги, необходимые для прерывания траектории.

Шаг 12: Функции - Функция движения - Ускорение

Функции - Функция движения - Ускорение
Функции - Функция движения - Ускорение
Функции - Функция движения - Ускорение
Функции - Функция движения - Ускорение

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

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

Шаг 13: Функции - Функция движения - Постоянная скорость

Функции - Функция движения - Постоянная скорость
Функции - Функция движения - Постоянная скорость
Функции - Функция движения - Постоянная скорость
Функции - Функция движения - Постоянная скорость

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

Шаг 14: Функции - Функция движения - Замедление

Функции - функция движения - замедление
Функции - функция движения - замедление
Функции - функция движения - замедление
Функции - функция движения - замедление

Здесь у нас есть другое уравнение, на этот раз с отрицательным значением ускорения. Он также отображается в строке кода, которая на изображении ниже представляет прямоугольник с надписью Deceleration.

Шаг 15: Функции - Функция движения - Постоянная скорость

Функции - Функция движения - Постоянная скорость
Функции - Функция движения - Постоянная скорость
Функции - Функция движения - Постоянная скорость
Функции - Функция движения - Постоянная скорость

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

Шаг 16: Функции - Функция перемещения - Перемещение поворотов

Функции - Функция перемещения - Ход поворотов
Функции - Функция перемещения - Ход поворотов

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

Шаг 17: График движения - скорость положения

График движения - скорость положения
График движения - скорость положения

На этом графике у меня есть данные, которые были извлечены из уравнения, которое мы использовали в части ускорения. Я взял значения и поиграл с последовательным интерфейсом Arduino, а затем перешел от этого к Excel, что привело к этой таблице. В этой таблице показан прогресс шага.

Шаг 18: Анимированный график - позиция против. Позиция

График движения - позиция против. Позиция
График движения - позиция против. Позиция

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

Шаг 19: Анимированная диаграмма - скорость против. Момент

График движения - скорость против. Момент
График движения - скорость против. Момент

Наконец, у нас есть скорость как функция момента, и благодаря этому у нас есть прямая линия, поскольку это скорость как функция времени.

Рекомендуемые: