Съдържание:

Arduino: Precision Lib за стъпков двигател: 19 стъпки
Arduino: Precision Lib за стъпков двигател: 19 стъпки

Видео: Arduino: Precision Lib за стъпков двигател: 19 стъпки

Видео: Arduino: Precision Lib за стъпков двигател: 19 стъпки
Видео: Arduino Stepper Motor - 28byj-48 #steppermotor #arduino 2024, Декември
Anonim
Image
Image
Глобални променливи
Глобални променливи

Днес ще ви покажа библиотека за водач на двигател с пълна стъпка с крайни превключватели и движение на двигателя с ускорение и микро стъпка. Този Lib, който работи както с Arduino Uno, така и с Arduino Mega, ви позволява да премествате двигателите не само според броя на стъпките, но и на милиметри. И е доста точен.

Важна характеристика на тази библиотека е, че тя ви позволява да изградите своя собствена машина с ЦПУ, която не е задължително само X, Y, но и превключвател на секции, например, защото не е готов GRBL, а по -скоро програмирането, което ви позволява да направите идеалната машина за вас.

Следното твърдение обаче е важна подробност! Това видео е само за тези, които вече са свикнали да програмират. Ако не сте запознати с програмирането на Arduino, първо трябва да гледате други още въвеждащи видеоклипове в канала ми. Това е така, защото обсъждам напреднала тема в този конкретен видеоклип и обяснявам по -подробно Lib, използван във видеото: Стъпен двигател с ускорение и край на хода.

Стъпка 1: Библиотека на StepDriver

Тази библиотека обхваща трите най -често срещани типа драйвери на пазара: A4988, DRV8825 и TB6600. Той конфигурира щифтовете на драйверите, като им позволява да извършат нулирането и поставянето в режим на заспиване, както и да активира и деактивира изходите на двигателя, действащи върху щифта Enable. Той също така задава входовете на микростепенните щифтове на драйвера и ограничава превключвателите и тяхното ниво на активиране (високо или ниско). Той също така има код за движение на двигателя с непрекъснато ускорение в mm / s², максимална скорост в mm / s и минимална скорост в mm / s.

За тези, които са гледали части 1 и 2 на видеото Step Motor с ускорение и край на хода, изтеглете тази нова библиотека, достъпна днес, защото направих някои промени в първия файл, за да улесня използването му.

Стъпка 2: Глобални променливи

Показвам точно за какво служи всяка от глобалните променливи.

Стъпка 3: Функции - Настройка на пиновете на драйвера

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

Тук описвам някои методи.

Зададох настройката Pinout и щифтовете 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: Диаграма на движение - Позиция срещу Позиция

Диаграма на движение - позиция Vs. Позиция
Диаграма на движение - позиция Vs. Позиция

Тук вземаме позицията на стъпки и скоростта и я преобразуваме в период, в микросекунда. Отбелязваме в тази стъпка, че периодът е обратно пропорционален на скоростта.

Стъпка 19: Диаграма на движение - Скорост Vs. Момент

Диаграма на движение - Скорост Vs. Момент
Диаграма на движение - Скорост Vs. Момент

И накрая, имаме скоростта като функция на момента и поради това имаме права линия, тъй като тя е скоростта като функция на времето.

Препоръчано: