Arduino + нестандартный драйвер шагового двигателя
- Войдите на сайт для отправки комментариев
Всем доброго дня
В наличие имеется пару собранных драйверов (вот линк на спецификацию: http://www.silniki.pl/download/smc62_instr.pdf, правда на польском языке).
Суть в чем: надо управлять шаговым двигателем через Arduino с помощью это драйвера. Упраляеться как я понял так:
- чтобы включить (дать питание) двигатель: посадить на землю выход "EN" (в инструкции он почему-то LUZ);
- чтобы повернуть на определенный угол: посадить на землю выход "CLK", причем не просто посадить, а коротко временно посадить. Использую analogWrite...
Вот тут и вопрос: допустим я использую полный шаг и включаю двигатель на полную (analogWrite (pin, 1000)) и надо повернуть двигатель на 30град. Откуда мне знать когда надо его выключать?
На ум приходит только самому рассчитать при какой паузе на сколько он поворачивается, но это имхо бред. Так как, даже если это и получится, то в самой программе надо будет делать паузы в виде delay, а это недопустимо, так как программа не должна останавливаться.
Как быть в таком случае, ибо походих библиотек я не видел. Может у кого-то есть какие-либо идеи?
Спасибо
Это обычный STEP-DIR.....(KIER это DIR )
Скорее всего контроллер подобный TB6560 .... ищите
https://www.cnc-box.ru/forum/viewtopic.php?f=41&p=116090
Это не просто мотор. С шаговиками так не работают.
Побаловаться- возьмите энкодер, подключите (с привязкой на 5Вольт) STEP-DIR и покрутите.
офигенно. шим уже 16 битный похоже стал в ардуине))
не может быть больше 255
Делаю поправку: при записи analogWrite любым значением мотор крутится на максимуме. Наверное прийдется делать конструкцию:
где 100, некоторая пауза
Но тогда такой вопрос (я просто никогда не ставливался с шаговыми двигателями): это нормально что немного подергивается? Видел видео, где даже при малых скоростях он просто плавно работал
ps: тут STEP нет такого выхода, скорей всего он CLK. С ним и играюсь.
Выхода М1 и М2 пока не трогаю, закоротил их на самой плате = т.е. сейчас полный шаг
наверно видел самый дешевый китайский в котором редуктор стоит
http://www.youtube.com/watch?v=etx24iFMilg первое что попалось
а вообще он шаговый. и по определению не может крутится плавно. он дергается. просто это можно не увидеть
trembo уже написал, и скорее всего так и есть. просто dir управляет направлением. step делает шаг. там вроде джамперы есть чтобы установить микрошаг например 1/2 1/8. один раз подали на step двигатель повернулся на 1 шаг
у двигателя есть характеристика либо сколько градусов на шаг, либо сколько шагов на оборот. высчитываешь сколько нужно шагов сделать чтобы повернутся на 30градусов и подаешь это количество импульсов на step
какие пины dir step у поляков хз
а вообще нафига нужно было покупать поляцкое гавно. лучше уж китайское, там хоть надписи на английском и понятно сразу как с ним работать
Спасибо. Но есть еще вопрос: с какой частотой подавать импульсы на STEP?
И так понял, что подергивание на малых оборотах это нормально?
конечно нормально. ведь шаговый двигатель двигается по шагам. если сделать микрошаг то макс. скорость упадет но будет более плавное вращение
импульсы подавать с частотой не выше чем та на которую поддерживает двигатель. можно превысить конечно немного но мощность от этого сильно падает, если еще быстрее подать двигатель будет просто пищать но крутится не будет
Сделал такую вот процедурку:
где, 1 - пауза для максимальных оборотах
200 - количество импульсов на полный оборот
Прикол в том, что я опытным путем нашел это число, только потом прочитал даташит)
Вроде бы разобрался, спасибо!
)) пожалуйста
Еще один вопрос: как бысть с паузами?
Хотелось бы не тормозить программу ибо мне надо управлять не один, а несколькими двигателями.
я твоя не понимать) какие паузы?
Вот пример: мне надо повернуть двигатель на 90 градусов при скорости 30%. Я вызываю процедуру поворота и примерно поворот займет 5 секунд. При это вся программа останавливается и выполняется только поворот (процедура поворота)
какой ужас. вот если бы программа могла по прерываниям сама крутить двигатель не останавливая основную
есть такая библиотека TimerOne, кажется так называется. в ней много чего можно сделать
Еще один вопрос: как бысть с паузами?
Мигаем светодиодом без delay()
Видимо без минимальной паузы (в теле самой процедуру, т.е. вкл/выкл импульс) не обойтись.
Буду пробовать. Спасибо
.....импульсы подавать с частотой не выше чем та на которую поддерживает двигатель.....
А если шаговик имеет приличную нагрузку на валу то может и не стронутся с места без плавного разгона...
http://www.airspayce.com/mikem/arduino/AccelStepper/
не надо было говорить. узнали бы что тс там двигает
может от пулементную точку собирает и поставляет на украину
Шаговик довольно мощный да и нагрузка плевая)
Я живу в Украине ;)
))) а зачем мощный шаговик ставить на плевую нагрузку? чтобы игнорировать инерцию и без задержек поворачивать или перемещать нагрузку
и моторов несколько
да и драйвер у него польский
как то это подозрительно
Просто это все добро есть в наличае, для теста и знакомста в шаговиками самое то. Мб позже перейду на что-нубудь по проще
ракетные установки?)))
шучу. а то подумаете
Для знакомства надо взять драйвер, на который куча примеров разжёванных , где всё по полочкам разложено.
Для знакомства надо взять драйвер, на который куча примеров разжёванных , где всё по полочкам разложено.
расслабся
тут классический DIR STEP
все литературным польским языком для детей разжевано
ТС просто любит садо-мазо
Вот почему у меня всегда все получается?
Что я делаю не так?
Кстати, у меня все получилось) Прадва пока что с одним шаговиком, будет чуть больше времени, буду пробовать с 3
Кстати, у меня все получилось) Прадва пока что с одним шаговиком, будет чуть больше времени, буду пробовать с 3
ну славо богу Clock в Шаги в STEP перевел, а Dir-ектора не трогал по умолчанию, да и Енабле ци не Енабле определился плюсом землей или вооще лучше не енаблировать enabl-тое по умолчанию.
Схемы до сих пор нет.
Нам хоть расскажи
Как оно?
Продолжаем телепатические сеансы. :)
В смысле перевел?) CLK = STEP, DIR = DIR, EN = вкл мотор, с М1 и М2 итак понятно. Причем все управляющие выходы сажу на землю через npn транзистор.
У меня самая большая проблемма была в том, что я не думал (да и сейчас не хочу) что процедура поворота на опеределенный градус будет "тормозить" главную процедуру. А драйвер оказался почти стандартным)
В смысле перевел?) CLK = STEP, DIR = DIR, EN = вкл мотор, с М1 и М2 итак понятно. Причем все управляющие выходы сажу на землю через npn транзистор.
У меня самая большая проблемма была в том, что я не думал (да и сейчас не хочу) что процедура поворота на опеределенный градус будет "тормозить" главную процедуру. А драйвер оказался почти стандартным)
а когда классический ЧПУ с 4-мя моторами через прерывания пишется
ну вот с живого станка
не пытайся сам все писать
100 килобайт для Atmel текста пишут командой 5 лет если с парсером команд
мне известен толко один проект в мире на 28 килобайт который не знаю сколько писало но поддерживает 1 человек
искать ссылку на станок с ЧПУ попроще или сам все уже изучаешь?
Да хотелось бы самому. Пока что в планах линейный ход и круговой (соответсвенно G коды: G01, G02, G03).
ps/ код действительно не плох))
Да хотелось бы самому. Пока что в планах линейный ход и круговой (соответсвенно G коды: G01, G02, G03).
ps/ код действительно не плох))
код из жирного проекта который толпа студентов и преподов за казенные харчи писала отлаживала
уууу все таки на g-code парсер тебя несет в ардуину
есть в мире только 3 варианта
1.mach lpt + твои драйверы (ардуине тут делать нечего кроме чегонибудь шпиндельно индикаторного вспомогательного)
всякий софт проверенный на 3dпринтерах не важно ну допустмим printrun arduino разделяется на две ветки
2.atmega256 потому что болше 32килобайта мозга и туда люди смогли всунуть парсер толстый и развивающийся
и единственный вариант
3.arduino uno r3 и автор много труда потратил на оптимизацию кода чтоб всунуться 3 мотора 3 концевики 1 шпиндел и g-code для резки твоих кругов корпусов короче резки метала
30 ног как бы везде хватает на станок с ЧПУ и твои драйверы везде
4 вариант не сбрасывай со счетов когда arduino только контроллирует станок с ЧПУ а сам парсер все таки в большом интел компьютере
Ну вот и ответ) Я смотрю на 4 вариант. Но это все пока что идеи и мысли... Так сказать собираю все в одну корзинку
Ну вот и ответ) Я смотрю на 4 вариант. Но это все пока что идеи и мысли... Так сказать собираю все в одну корзинку
Ну вот вы мне за мой опыт уже должны сколько я вам сэкономил
не менее 2000$
;)
ссылку давать на готовый вариант
я его даже собирал когда-то проверял g-code-ом
работает
и дури практически не обнаружил
Пока что не надо) Пока что обдумываю различные алгоритмы
Пока что не надо) Пока что обдумываю различные алгоритмы
да брось ты велосипеды изобретать
все уже отлажено толпами студентов
надо использовать и двигаться дальше
Мб ты и прав. Но тогда где найти нормальный интерпритатор G кодов на Arduino? Хотя бы коды 01, 02, 03
ну попробуй
что-то на диске вижу лежит
раз дата есть значит я это пробовал
честно не помню
https://yadi.sk/d/6MI_SSNmbdFoC