Скорость вращения 28YBJ-48

IgorU
Offline
Зарегистрирован: 03.12.2014

Посмотрел форум, не нашел как задается скорость вращения ШД 28YBJ-48 Stepper Motor. Меня интересует:
Количественное значение, в каких пределах от и до, можно задавать значение скорости(min, max). 
В каких единицах оно указывается(измеряется) - количество об/мин?
Есть ли какие либо особенности при задании скорости вращения, значение должно быть целым числом?
Возможно применить дробное, например: 5.5 об/мин?

 

IgorU
Offline
Зарегистрирован: 03.12.2014

Снимаю вопрос. Установил эксперементально, ШД с редуктором 64/1. Количество шагов вала мотора 28BYJ-48 за один оборот   в 4-ступенчатой последовательности 32 x 64 = 2048, в 8-ступенчатой последовательности 64 x 64 = 4096, при инициализации в скетче нужно указывать это значение. 

Цитата:
Количественное значение, в каких пределах от и до, можно задавать значение скорости(min, max).

от 1(мин) до 14(макс),  при нуле = стоит, при значениях больше 14 = шагает раз в секунду или две, каждый раз по разному... Хотя в даташтие - максимальная 25 об/мин, возможно есть модификации движков, с моим экземпляром история такая, как описал выше.

Цитата:
В каких единицах оно указывается(измеряется) - количество об/мин?

обороты в минуту

Цитата:
Есть ли какие либо особенности при задании скорости вращения, значение должно быть целым числом? Возможно применить дробное, например: 5.5 об/мин?

можно, работают целые и дробные числа

Тестировал вот с этим кодом непрерывно около 4 часов, ШД нагрелся примерно до температуры 40 градусов(на вскидку, рука терпит), позиционирование четкое, движок питаю от внешнего источника 5В, драйвер  ULN2003. Проверил скорость вращения stepper.setSpeed(i), при значении "1" делает = 1 об/мин, при "6" = 7 об/мин, при "14" = 14 об/мин. Вот такие дела!

#include <Stepper_28BYJ.h>
#define STEPS 4096   //количество шагов для мотора
Stepper_28BYJ stepper(STEPS, 6,7,8,9);  

void setup()
{
  stepper.setSpeed(6);  // установим скорость вращения 6 об/мин 
}
void loop()
{
  stepper.step(4096); // Делаем 4096 шагов в одну строну
  delay(1000);
   stepper.step(-4096);// Делаем 4096 шагов в другую строну
   delay(1000);
}

(Может кому пригодится, все в кучке). Прошу прощения за оффтоп!

countervector
Offline
Зарегистрирован: 08.12.2016

Скачал библиотеку с дружественного сайта, установил, подключил, залил, заработало!!!(когда копируешь код нужно нажать на значок скопировть, чтобы не вставлялись строки!!!)Спасибо, ребята!!!

Вопрос1: А как установить в нулевую позицию?Спасибо!!

DIYMan
DIYMan аватар
Offline
Зарегистрирован: 23.11.2015

countervector пишет:

Вопрос1: А как установить в нулевую позицию?Спасибо!!

Что есть "нулевая позиция" в вашем понимании? У шагового мотора нет нулевой позиции - это привод постоянного вращения. Любую позицию можно считать нулевой, при некоторых внешних вводных - например, при срабатывании концевика.

countervector
Offline
Зарегистрирован: 08.12.2016

Не совсем понятно как можно сделать точку отсчета = нулевая позиция. Скажем 4096 оборотов в одну сторону и потом обратно, это и будет нулевой позицией но как тогда сделать рассчет погрешности?!!

DIYMan
DIYMan аватар
Offline
Зарегистрирован: 23.11.2015

Всё делается банальными арифметическими расчётами. Если у вас любая позиция (например, при подаче питания) - нулевая, то относительно её и считается всё.

countervector
Offline
Зарегистрирован: 08.12.2016

ok!понял!А концевик нужен?Спасибо!

DIYMan
DIYMan аватар
Offline
Зарегистрирован: 23.11.2015

Если концевик нужен для обеспечения точки отсчёта - ставьте. Если не нужен - не ставьте, ваш КЭП. Всё зависит от условий задачи.

countervector
Offline
Зарегистрирован: 08.12.2016

Помогите, еще один вопрос.

Описание

коэффициент редукции - 1 / 64;

угол шага - 5,625 °;

Вопрос:   Сколько 1 Step?(substep?)