Официальный сайт компании Arduino по адресу arduino.cc
Шаг в два раза больше нужного
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Сб, 29/06/2013 - 11:56
Здравствуйте! Я столкнулся с проблемой, что мой шаговик (FL42STH25-0404) делает шаг в два раза больше нужно. Например, если необходимо повернуться на 90 градусов, поворот происходит на 180. Для того чтобы повернуться на 90, приходиться писать 45 градусов. В чем может быть дело?
Имею:
- Arduino Uno
- Драйвер L293D
- Шаговый двигатель FL42STH25-0404 (http://motioncontrolproducts.co.uk/motionnews/wp-content/uploads/2012/05/FL42STH-stepper-motor.pdf)
- Питание двигателя от кроны (9V)
Код:
#include <Stepper.h> #define STEPS 200 Stepper stepper(STEPS, 8, 9, 10, 11); void setup() { stepper.setSpeed(150); } void loop() { stepper.step(90); delay(2000); stepper.step(-90); delay(2000); }
Вращение происходит на 180 градусов в одной сторону, а потом в другую, хотя должно на 90. Не могу понять, что сделал не так, вроде собрал все точно также как указано на официальном сайте Arduino.
Величина шага вашего двигателя может быть больше в два раза, чем у двигателя автора библиотеки - предусмотрена такая подстройка?
Если нет или не хочется заморачиваться, то введите поправочный коэффициент в
stepper.step(a);
пишите так
stepper.step(a/2);
где "a" - угол поворота.
Предварительно протестировав корректную работу при a = 1 и a = 360.
...так думаю.
Вращение происходит на 180 градусов в одной сторону, а потом в другую, хотя должно на 90.
С чего бы это вдруг? Как переводится слово step знаете? Так а с чего тогда stepper.step(90); должна задавать угол ,если она задает количество шагов?
В вашем случеа шаг 1.8 градуса умножаем на 90 получаем 162 градуса.
Ага... всё даже проще, чем кажется.
maksim, спасибо, действительно все элементарно!