проблема с запуском шаговика на 1000 об/мин

kirill-007
Offline
Зарегистрирован: 02.11.2014
Всем привет. Копаюсь с шаговиками и наткнулся на проблему пропуска шагов.
Имею:
Arduino nano
 
Так как движок униполярный с 6-тью выходами решил подключать его без центральных проводов на обмотках как расписано вот тут (Вариант 6А)
 
Всё собрано по схеме с офсайта:
[IMG]
Выводы 1,2,3,4in отправил на ардуинку 8,9,10,11.
V1,1-4 en дал 5 вольт с 5v ардуины. 
на Vin ардуины и V2 моста подал 12 вольт (источник питания мощностью 1А).
 
скетч опять же с офсайта:
 
#include <Stepper.h>
 
// change this to the number of steps on your motor  (Если я правильно понял то здесь задаётся количество шагов на оборот, у меня 200)
#define STEPS 200
 
// create an instance of the stepper class, specifying
// the number of steps of the motor and the pins it's
// attached to
Stepper stepper(STEPS, 8, 9, 10, 11);  (тут понятно прописываем пины управления)
// the previous reading from the analog input
void setup()
{
  // set the speed of the motor to 60 RPMs  (Вот тут как я понял указывается скорость вращения в оборотах/сек)
  stepper.setSpeed(60);
}
 
void loop()
{
  stepper.step(100); (количество шагов за цикл)
}
 
 
Теперь собственно проблема:
 
Судя по описанию двигателя он должен крутить 2500 оборотов в минуту. Мне надо 1000 оборотов в минуту. т.е. 16 оборотов в секунду.
Однако. когда ставишь параметр stepper.setSpeed(16); мотор крутится со скоростью один оборот в 4 секунды. при этом жрёт 0.52 ампера. 
когда ставишь параметр stepper.setSpeed(60) мотор крутится со скорость 1 об/секунду. и жрёт 0,29 ампера.
Начинаешь давать значение > 60 (из предположения что setSpeed задаёт таки об/мин а не об/сек) так двигатель начинает пропускать шаги, хотя токопотребление ещё больше падает.
 
Собственно теперь вопрос:
1) правильно ли я понял что можно подключать униполярник таким способом.
2) может я чего не так понимаю в коде...
 
Спасите! я чайник =)
kirill-007
Offline
Зарегистрирован: 02.11.2014

уф... нарыл библиотеку AccelStepper. Обсуждение живёт тут:

http://forum.arduino.cc/index.php?topic=194671.0
Там же и сама библиотека.
здесь описание её http://www.airspayce.com/mikem/arduino/AccelStepper/index.html
но я вообще никак не пойму как мне простую задачу выполнить - разогнать мотор до 1000 и оставить крутиться 15 секунд.
по этому скечу получается только разогнать до какого-то значения и потом он останавливается:

#include <AccelStepper.h>
// Define some steppers and the pins the will use
AccelStepper stepper(4, 8, 9, 10, 11);
// The first argument '5' indicates that we're using a 28byj-48 geared motor. The rest is just pin numbers. 
//You can still use all the other types of motors supported by accelstepper library (e.g. 4 for a normal 4 wire step motor, 8 for a halfstepped normal 4 wire motor etc.) 

void setup()

stepper.setMaxSpeed(1000.0); //max speed of the first motor - modify if you want to
stepper.setAcceleration(100.0); // rate at which the first motor accelerate -

}

void loop()

stepper.moveTo(7000);
stepper.run();

}

 

 

art100
Offline
Зарегистрирован: 09.03.2014

редуктор?

 

kirill-007
Offline
Зарегистрирован: 02.11.2014

Нет редуктора. 

Задача разогнать шаговик до 1000 оборотов и крутить 15 секунд.