Шаговый двигатель как серво

Использование драйверов двигателей и пользовательских блоков к ним
Ответить
COBOK_OK
Рядовой
Сообщения: 23
Зарегистрирован: 13.01.2018{, 11:17}
Репутация: 5
Откуда: Московская область

Шаговый двигатель как серво

#1

Сообщение COBOK_OK » 20.01.2018{, 21:10}

Цель: сделать так, чтоб шаговый двигатель работал по логике сервопривода. То есть: при задании числа шагов допустим 60, он шагал на 60 шагов, при последующем задании 40 шагов, он сделал минус 20 шагов, то есть на позицию 40 шагов. использую штатный блок шагового двигателя из программы.
Мои попытки были такие:
шаговый серво.jpg
Описываю логику, и что пошло не так: При появлении числа на входе RV1 блок производит вычитание нуля, сразу же по сигналу с "детектора изменения числа" результат записывается в массив и поступает на вход L2. Вот тут то начались проблемы...
Так как после первого действия вычитания, происходит сразу же второе лишние действие вычитания, в результате этого на выходе имеем не нужный результат.
Что происходит в цифрах: поступило на вход число 4 след действие 4-0=4 оно пошло в массив, сразу идет следующее действие 4-4=0....
Как решить эту проблему я пока не придумал, может быть есть иные варианты решения данной задачи?

Аватара пользователя
dizzyy
Капитан
Сообщения: 752
Зарегистрирован: 24.11.2017{, 16:25}
Репутация: 37
Откуда: Червоноград
Имя: Марьян

Шаговый двигатель как серво

#2

Сообщение dizzyy » 20.01.2018{, 21:55}

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

COBOK_OK
Рядовой
Сообщения: 23
Зарегистрирован: 13.01.2018{, 11:17}
Репутация: 5
Откуда: Московская область

Шаговый двигатель как серво

#3

Сообщение COBOK_OK » 21.01.2018{, 10:53}

Разобрался, вот эта схема работает верно:
логика шагового.jpg

Аватара пользователя
eugeneb
Лейтенант
Сообщения: 481
Зарегистрирован: 15.08.2016{, 11:20}
Репутация: 18
Откуда: Нижний Новгород
Имя: Евгений

Шаговый двигатель как серво

#4

Сообщение eugeneb » 24.01.2018{, 10:47}

Это не "серво логика" :)
Серво, это когда есть обратная связь от двигателя и
обрабатывается сигнал ошибки.

serg54
Рядовой
Сообщения: 90
Зарегистрирован: 20.12.2015{, 15:21}
Репутация: 0
Откуда: Запорожская обл

Шаговый двигатель как серво

#5

Сообщение serg54 » 02.02.2018{, 22:30}

COBOK_OK писал(а):
21.01.2018{, 10:53}
Разобрался, вот эта схема работает верно:
Какой двигатель у тебя?

COBOK_OK
Рядовой
Сообщения: 23
Зарегистрирован: 13.01.2018{, 11:17}
Репутация: 5
Откуда: Московская область

Шаговый двигатель как серво

#6

Сообщение COBOK_OK » 03.02.2018{, 14:06}

serg54 писал(а):
02.02.2018{, 22:30}
Какой двигатель у тебя?
биполярный от принтера какого то на 96 шагов, подключал через L293D

serg54
Рядовой
Сообщения: 90
Зарегистрирован: 20.12.2015{, 15:21}
Репутация: 0
Откуда: Запорожская обл

Шаговый двигатель как серво

#7

Сообщение serg54 » 03.02.2018{, 17:26}

Пытаюсь пристроить ШД от 5" дисковода для управления дроссельной заслонкой на двигателе К750 (регулятор оборотов), Пробовал ШД 28-BYJ48 и драйвер ULN2003 не держит он позицию, 2_3 измерения на входе и двигатель уходит з заданной позиции, Надо думать что то другое.
Здесь http://hobbytech.com.ua/arduino-%D0%B1% ... %B5%D0%BB/ альтернативная библиотека для ШД, под нее бы сделать блок. Я в кодах не соображаю .

Ответить

Вернуться в «Управление двигателями»