Управление шаговым двигателем от DVD
- Войдите на сайт для отправки комментариев
Привет!
Ребят, помогите со скетчем.
Задача: управление ШД от DVD с ардуины.
Управление мотором:
шаг 1: - + + -
шаг 2: - + - +
шаг 3: + - - +
шаг 4: + - + -
При выполнении сверху - вниз, шд крутится в одну сторону.
При выполнении снизу - вверх, шд крутится в обратныю сторону.
Всего 259 шагов
Ссылка на даташит
Подключение: ардуино - L293d - ШД
L293d подключал по такому принципу. Вместо моторов - катушки моего ШД. Ну, и ардуино, соответственно.
Для теста написал простейший скетч. Сначала в одну сторону до 259 шага, потом задержка в секунду и в обратную сторону. Все работает.
Задача:
С компьютера ( через COM потр (терминал) отправить в ардуину координту (0-259) и мотор должен повернуться в это положение.
Как это сделать? Чет я понять не могу (неверное массив использовать нужно, но для меня, пока, это тяжело). Помогите, пожалуйста. Заранее спасибо.
1. запоминать текущую позицию, чтобы можно было отправлять на нужное количество шагов
2. считываем из uart
3. если число меньше текущей позиции, то (позиция-число)=количество шагов в одну сторону
если больше, то (число - позиция)=количество шагов в другую сторону
4. проверка а не превысит ли количество шагов максимально или минимально допустимую позицию
5. если все сделали запоминаем новую позицию и отправляем шаговик шагать
а как засунуть в процедуру, или еще как-то сделать последовательность шагов.
т.е. как грамотно организовать движение по:
шаг 1: - + + -
шаг 2: - + - +
шаг 3: + - - +
шаг 4: + - + -
Учитывая, что двигаться нужно то сверху-в низ, то наоборот
сделай массив для шагов, 4х4 и например запоминай еще и текущий шаг чтобы правильно переключаться
ок. Спасибо. Буду гуглить. Я только начинаю с ардуной разбиратьс. Учусь) С массивами пока все сложно...
Нашел в интернете тако код:
Будет ли он работать так, как мне нужно? Проверить пока не могу, т.к. на работе, а ардуина дома...
не будет. надо переделывать. но ближе к тому что тебе нужно
А! Я кажется понял, почему не будет работать. Тут получается, что
stepper stepper(STEPS, 7, 8, 9, 10);
подает +5в поочереди на 7, 8, 9, 10 пины ардуины. А в моем случае нужно так:
шаг1:
digitalWrite(7, 0);
digitalWrite(8, 1);
digitalWrite(9, 1);
digitalWrite(10, 0);
шаг2:
digitalWrite(7, 0);
digitalWrite(8, 1);
digitalWrite(9, 0);
digitalWrite(10, 1);
шаг3:
digitalWrite(7, 1);
digitalWrite(8, 0);
digitalWrite(9, 0);
digitalWrite(10, 1);
шаг4:
digitalWrite(7, 1);
digitalWrite(8, 0);
digitalWrite(9, 1);
digitalWrite(10, 0);
Для "остановки":
digitalWrite(7, 0);
digitalWrite(8, 0);
digitalWrite(9, 0);
digitalWrite(10, 0);
"8" = "шаг2"
"9" = "шаг3"
"10" = "шаг4"
Я правильно рассуждаю?
почему ты думаешь что со стандартной либой не будет работать? зачем туда всовывать свои шаги. либа уже заточена под шаговики
и с ней управлять тебе гораздо проще. только говорить в какую сторону насколько шагов повернуться
думал, что стандартная заточена под другие моторы, под униполярные, которые управляются через uln2003...
она вроде под те и другие
Все, доделал. Получилось так:
Пока так много в COM отправляет для отладки.
Сейчас буду еще один мотор приклеивать!
Спасибо за советы!!