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

den1skus
Offline
Зарегистрирован: 28.03.2013

Шаговик вращается только в одну сторону! Почему?



#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);
}

 

den1skus
Offline
Зарегистрирован: 28.03.2013

Мда.( Мотор и драйвер вот такие http://dx.com/p/28ybt-48-stepper-motor-with-uln2003-driver-dc-5v-126409

Никаких идей нет?

vvadim
Offline
Зарегистрирован: 23.05.2012


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

leshak
Offline
Зарегистрирован: 29.09.2011

Есть идеи.

Еще подождать пока вы еще какую-то доп. инфу дадите. Догадались же вы, по молчанию, что неплохо бы добавить указание на то "что за мотор" и "что за драйвер".

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

Хотя дать ссылку - это уже шаг вперед. Уже можно хоть какие-то осмысленные догадки строить.

В частности - возможно порядок обмоток не так включается у вас. В простейшем виде, через 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  - "драйвером" ее слишком громко назвали. Свое "логики" - она не содержит. Это скорее "усилитель". Позволяет с пина рулить относительно большим током. Так что вся логика - такая же как если бы мотор прямо к пинам подключали  (только не подключайте - они сгорят от такого тока. это "умозрительно").

den1skus
Offline
Зарегистрирован: 28.03.2013

leshak пишет:

Есть идеи.

Еще подождать пока вы еще какую-то доп. инфу дадите. Догадались же вы, по молчанию, что неплохо бы добавить указание на то "что за мотор" и "что за драйвер".

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

Хотя дать ссылку - это уже шаг вперед. Уже можно хоть какие-то осмысленные догадки строить.

В частности - возможно порядок обмоток не так включается у вас. В простейшем виде, через 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  - "драйвером" ее слишком громко назвали. Свое "логики" - она не содержит. Это скорее "усилитель". Позволяет с пина рулить относительно большим током. Так что вся логика - такая же как если бы мотор прямо к пинам подключали  (только не подключайте - они сгорят от такого тока. это "умозрительно").

Спасибо за ссыль, но тон слишком нравоучительный)

den1skus
Offline
Зарегистрирован: 28.03.2013

Заработал. Еще раз спасибо

leshak
Offline
Зарегистрирован: 29.09.2011

den1skus пишет:

Спасибо за ссыль, но тон слишком нравоучительный)

Не наравится - не ешь :)

В принципе - вы конечно правы. Подобный недостаток - однозначно имеет место быть, но, боюсь, он уже вне моего контроля. Проф. деформация. Так что предлагаю не обижатся и считать это моим личным пунктиком. Все же имеют право на недостатки?  

"Все люди ограничены, но каждый ограничен по своему. В этом и состоит индивидуальность " (C)  

;)