управление шаговыми движками

Использование драйверов двигателей и пользовательских блоков к ним
Ответить
Аватара пользователя
jonik22sm
Капитан
Сообщения: 703
Зарегистрирован: 20.11.2015{, 11:28}
Репутация: 6
Откуда: Краснодар
Имя: Евгений
Контактная информация:

управление шаговыми движками

#1

Сообщение jonik22sm » 20.11.2015{, 11:36}

вот простой код из ардуино шаговый ту сюда работает отлично
  • #include <Stepper.h>
  • const int stepsPerRevolution = 200;  // change this to fit the number of steps per revolution
  • // for your motor
  • // initialize the stepper library on pins 8 through 11:
  • Stepper myStepper(stepsPerRevolution, 5, 6, 7, 8);
  • void setup() {
  •   // set the speed at 60 rpm:
  •   myStepper.setSpeed(60);
  •   // initialize the serial port:
  •   Serial.begin(9600);
  • }
  • void loop() {
  •   // step one revolution  in one direction:
  •   Serial.println("clockwise");
  •   myStepper.step(stepsPerRevolution);
  •   delay(500);
  •   // step one revolution in the other direction:
  •   Serial.println("counterclockwise");
  •   myStepper.step(-stepsPerRevolution);
  •   delay(500);
  • }
а вот код из Flprog и мотор не работает а дёргается
  • #include <Stepper.h>
  • Stepper  _StM1(48,5,7,6,8);
  • bool _gen1I = 0;
  • bool _gen1O = 0;
  • unsigned long _gen1P = 0UL;
  • void setup()
  • {
  • _StM1.setSpeed(200);
  • }
  • void loop()
  • {
  • if (1) {if (! _gen1I) { _gen1I = 1; _gen1O = 1; _gen1P =  millis(); } } else { _gen1I = 0 ;  _gen1O= 0;  } if (_gen1I ) { if (_gen1O) { if ( _isTimer( _gen1P , 60000 )) { _gen1P = millis(); _gen1O = 0; } } else  { if ( _isTimer( _gen1P , 60000 )) {  _gen1P = millis(); _gen1O = 1;  } } }
  • int  b1temp1_StM1;
  • if (_gen1O) { b1temp1_StM1 = 1;} else {b1temp1_StM1 = -1;}
  • if (1) {_StM1.step(b1temp1_StM1);}
  • }
  • bool _isTimer(unsigned long startTime, unsigned long period )
  •   {
  •   unsigned long currentTime;
  • currentTime = millis();
  • if (currentTime>= startTime) {return (currentTime>=(startTime + period));} else {return (currentTime >=(4294967295-startTime+period));}
  •   }
подскажите пожалуйста как мне написать в Flprog свой блок для управления или я неправильно выставляю параметры блока
ИзображениеИзображение
Последний раз редактировалось jonik22sm 20.11.2015{, 15:27}, всего редактировалось 1 раз.
Можно сделать ВСЁ. Было бы желание.

Аватара пользователя
DerAlex
Лейтенант
Сообщения: 437
Зарегистрирован: 06.09.2015{, 08:39}
Репутация: 11
Откуда: Новосибирск

управление шаговыми движками

#2

Сообщение DerAlex » 20.11.2015{, 12:39}

Скорее всего нарушено чередование обмоток.Ошибка в программе.Приведите для примера код FLProg в графическом виде.
аврора

Аватара пользователя
jonik22sm
Капитан
Сообщения: 703
Зарегистрирован: 20.11.2015{, 11:28}
Репутация: 6
Откуда: Краснодар
Имя: Евгений
Контактная информация:

управление шаговыми движками

#3

Сообщение jonik22sm » 20.11.2015{, 13:29}

добавил фото
Последний раз редактировалось jonik22sm 20.11.2015{, 13:29}, всего редактировалось 1 раз.
Можно сделать ВСЁ. Было бы желание.

Аватара пользователя
DerAlex
Лейтенант
Сообщения: 437
Зарегистрирован: 06.09.2015{, 08:39}
Репутация: 11
Откуда: Новосибирск

управление шаговыми движками

#4

Сообщение DerAlex » 20.11.2015{, 13:42}

Проверьте соединение на шаговом двигателе.Точно подключены обмотки к пин 5,6,7,8 . Если правильно попробуйте уменьшить максимальную скорость . В последнем варианте указано 200.
Может пока поставить в два раза меньшую.
аврора

Аватара пользователя
jonik22sm
Капитан
Сообщения: 703
Зарегистрирован: 20.11.2015{, 11:28}
Репутация: 6
Откуда: Краснодар
Имя: Евгений
Контактная информация:

управление шаговыми движками

#5

Сообщение jonik22sm » 20.11.2015{, 14:05}

ничего не помогает
Можно сделать ВСЁ. Было бы желание.

Аватара пользователя
DerAlex
Лейтенант
Сообщения: 437
Зарегистрирован: 06.09.2015{, 08:39}
Репутация: 11
Откуда: Новосибирск

управление шаговыми движками

#6

Сообщение DerAlex » 20.11.2015{, 18:53}

Для диагностики можно временно подключить светодиоды вместо шагового двигателя. Четыре светодиода на пин 5,6,7,8. И минимальную скорость чтобы наблюдать переключение светодиодов.

Добавлено (20.11.2015, 18:51)
---------------------------------------------
функция УСТАНОВИТЬ СКОРОСТЬ  подключена ? Если нет то нужно кликнуть на квадратик и поключить

Добавлено (20.11.2015, 18:53)
---------------------------------------------
Прочитайте внимательно описание блока еще раз и видео посмотрите
аврора

kossn93
Сержант
Сообщения: 151
Зарегистрирован: 05.09.2015{, 14:41}
Репутация: 0
Откуда: Харьков

управление шаговыми движками

#7

Сообщение kossn93 » 20.11.2015{, 19:07}

скорее всего косяк с подключением я у себя проверил при правельном подключении работает флпрог, а ваш скетч не работает, дергается, методом научного тыка и ваш скетч заработал.
правильно подключайте полюса.
Последний раз редактировалось kossn93 20.11.2015{, 19:09}, всего редактировалось 1 раз.

Аватара пользователя
jonik22sm
Капитан
Сообщения: 703
Зарегистрирован: 20.11.2015{, 11:28}
Репутация: 6
Откуда: Краснодар
Имя: Евгений
Контактная информация:

управление шаговыми движками

#8

Сообщение jonik22sm » 20.11.2015{, 19:14}

выставил скорость но всё равно пришлось поменять in2 и in3 в блоке типа номер поставил 5, 7, 6, 8
Можно сделать ВСЁ. Было бы желание.

Аватара пользователя
DerAlex
Лейтенант
Сообщения: 437
Зарегистрирован: 06.09.2015{, 08:39}
Репутация: 11
Откуда: Новосибирск

управление шаговыми движками

#9

Сообщение DerAlex » 20.11.2015{, 19:16}

теперь работает?
аврора

Аватара пользователя
jonik22sm
Капитан
Сообщения: 703
Зарегистрирован: 20.11.2015{, 11:28}
Репутация: 6
Откуда: Краснодар
Имя: Евгений
Контактная информация:

управление шаговыми движками

#10

Сообщение jonik22sm » 20.11.2015{, 19:34}

да теперь работает но греется движок как сцуко
но вопрос почему на скетче меняется местами in2 и in3
Последний раз редактировалось jonik22sm 20.11.2015{, 19:36}, всего редактировалось 1 раз.
Можно сделать ВСЁ. Было бы желание.

Аватара пользователя
DerAlex
Лейтенант
Сообщения: 437
Зарегистрирован: 06.09.2015{, 08:39}
Репутация: 11
Откуда: Новосибирск

управление шаговыми движками

#11

Сообщение DerAlex » 21.11.2015{, 05:09}

есть другой шаговый двигатель ? попробуйте на нем , если есть
аврора

Аватара пользователя
виталик
Рядовой
Сообщения: 22
Зарегистрирован: 17.10.2015{, 17:34}
Репутация: 0
Откуда: Санкт-Петербург
Контактная информация:

управление шаговыми движками

#12

Сообщение виталик » 21.11.2015{, 12:44}

У вас включено направление вращения RS и подключен генератор который будет переключать по часовой против часовой .каждый свой период .
Виталик

Аватара пользователя
Cruzator
Рядовой
Сообщения: 3
Зарегистрирован: 06.09.2015{, 00:08}
Репутация: 0
Откуда: Москва

управление шаговыми движками

#13

Сообщение Cruzator » 23.11.2015{, 10:11}

В первом коде - const int stepsPerRevolution = 200; (200 шагов на оборот) у Вас - 48 шагов на оборот
 myStepper.setSpeed(60); - скорость 60 - у Вас 200!
Видимо по этому и греется

Ответить

Вернуться в «Управление двигателями»