Шаговый двигатель
- Войдите на сайт для отправки комментариев
Пт, 29/03/2013 - 20:46
Шаговик вращается только в одну сторону! Почему?
#include <Stepper.h>
Stepper myStepper(100, 8,9,10,11);
void setup() {
myStepper.setSpeed(60);
}
void loop() {
myStepper.step(1000);
delay(500);
myStepper.step(-1000);
dela(500);
}
Мда.( Мотор и драйвер вот такие http://dx.com/p/28ybt-48-stepper-motor-with-uln2003-driver-dc-5v-126409
Никаких идей нет?
void setup() { pinMode(2, OUTPUT); //to N1 pinMode(3, OUTPUT); //to N2 pinMode(4, OUTPUT); //to N3 pinMode(5, OUTPUT); //to N4 } void loop() { int t=(random(2,10)); //choose random speed for (int i=0; i <= random(10,1000); i++) //CW for random steps { digitalWrite(3, HIGH); digitalWrite(5, LOW); delay(t); digitalWrite(4, HIGH); digitalWrite(2, LOW); delay(t); digitalWrite(5, HIGH); digitalWrite(3, LOW); delay(t); digitalWrite(2, HIGH); digitalWrite(4, LOW); delay(t); } delay(500); for (int u=0; u <= random(10,1000); u++) //CCW for random steps { digitalWrite(3, HIGH); digitalWrite(5, LOW); delay(t); digitalWrite(2, HIGH); digitalWrite(4, LOW); delay(t); digitalWrite(5, HIGH); digitalWrite(3, LOW); delay(t); digitalWrite(4, HIGH); digitalWrite(2, LOW); delay(t); } delay(500); }Попробуйте без библиотеки Stepper
Есть идеи.
Еще подождать пока вы еще какую-то доп. инфу дадите. Догадались же вы, по молчанию, что неплохо бы добавить указание на то "что за мотор" и "что за драйвер".
Может догадаетесь и более подробное описать как именно он вращается в одну строну (с паузами, без пауз) и как вы подключаете.
Хотя дать ссылку - это уже шаг вперед. Уже можно хоть какие-то осмысленные догадки строить.
В частности - возможно порядок обмоток не так включается у вас. В простейшем виде, через ULN обычно рулить нужно просто включая по очереди пины. А библитеока степпер имеет чуток другую последовательность. Можете заглянуть в файлик Stepper.h
Сам я - рулил степпером через AccelStepper, там (в моем случае) нужно было поменять второй и третий пины (либо физичеси, либо в коде). Вообщем у мня запапал вот так AccelStepper stepper(AccelStepper::FULL4WIRE, 8,10,9,11);
Если же, вам все-таки вам хочется именно стардартную либу, то две минуты гугления по названию вашего шилда, выводим скажем на
http://www.utopiamechanicus.com/article/arduino-stepper-motor-setup-trou...
на второй странице - человек дал перечеь всех возможных комбинаций пинов (чуть больше 20-ти). Нужно только сесть перебрать "с чем заработает" (это что-бы мозг не хмурить и не разбиратся "как же его правильно подключать").
Если и это лень - то еще чуть ниже он приводит четыре комбинации которые у него заработали.
So in the end, four entries worked: (8,10,11,9), (9,11,8,10), (10,8,9,11), and (11,9,10,8).
Ну либо брать тестер, вызванивать где какие обмотки у вас, читать принцип действия шаговика и в каком порядке их включать... вообщем разобраться :)
Сама ULN - "драйвером" ее слишком громко назвали. Свое "логики" - она не содержит. Это скорее "усилитель". Позволяет с пина рулить относительно большим током. Так что вся логика - такая же как если бы мотор прямо к пинам подключали (только не подключайте - они сгорят от такого тока. это "умозрительно").
Есть идеи.
Еще подождать пока вы еще какую-то доп. инфу дадите. Догадались же вы, по молчанию, что неплохо бы добавить указание на то "что за мотор" и "что за драйвер".
Может догадаетесь и более подробное описать как именно он вращается в одну строну (с паузами, без пауз) и как вы подключаете.
Хотя дать ссылку - это уже шаг вперед. Уже можно хоть какие-то осмысленные догадки строить.
В частности - возможно порядок обмоток не так включается у вас. В простейшем виде, через ULN обычно рулить нужно просто включая по очереди пины. А библитеока степпер имеет чуток другую последовательность. Можете заглянуть в файлик Stepper.h
Сам я - рулил степпером через AccelStepper, там (в моем случае) нужно было поменять второй и третий пины (либо физичеси, либо в коде). Вообщем у мня запапал вот так AccelStepper stepper(AccelStepper::FULL4WIRE, 8,10,9,11);
Если же, вам все-таки вам хочется именно стардартную либу, то две минуты гугления по названию вашего шилда, выводим скажем на
http://www.utopiamechanicus.com/article/arduino-stepper-motor-setup-trou...
на второй странице - человек дал перечеь всех возможных комбинаций пинов (чуть больше 20-ти). Нужно только сесть перебрать "с чем заработает" (это что-бы мозг не хмурить и не разбиратся "как же его правильно подключать").
Если и это лень - то еще чуть ниже он приводит четыре комбинации которые у него заработали.
So in the end, four entries worked: (8,10,11,9), (9,11,8,10), (10,8,9,11), and (11,9,10,8).
Ну либо брать тестер, вызванивать где какие обмотки у вас, читать принцип действия шаговика и в каком порядке их включать... вообщем разобраться :)
Сама ULN - "драйвером" ее слишком громко назвали. Свое "логики" - она не содержит. Это скорее "усилитель". Позволяет с пина рулить относительно большим током. Так что вся логика - такая же как если бы мотор прямо к пинам подключали (только не подключайте - они сгорят от такого тока. это "умозрительно").
Спасибо за ссыль, но тон слишком нравоучительный)
Заработал. Еще раз спасибо
Спасибо за ссыль, но тон слишком нравоучительный)
Не наравится - не ешь :)
В принципе - вы конечно правы. Подобный недостаток - однозначно имеет место быть, но, боюсь, он уже вне моего контроля. Проф. деформация. Так что предлагаю не обижатся и считать это моим личным пунктиком. Все же имеют право на недостатки?
"Все люди ограничены, но каждый ограничен по своему. В этом и состоит индивидуальность " (C)
;)