Страница 1 из 1

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

Добавлено: 20.11.2015{, 11:36}
jonik22sm
вот простой код из ардуино шаговый ту сюда работает отлично
  • #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 свой блок для управления или я неправильно выставляю параметры блока
ИзображениеИзображение

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

Добавлено: 20.11.2015{, 12:39}
DerAlex
Скорее всего нарушено чередование обмоток.Ошибка в программе.Приведите для примера код FLProg в графическом виде.

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

Добавлено: 20.11.2015{, 13:29}
jonik22sm
добавил фото

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

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

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

Добавлено: 20.11.2015{, 14:05}
jonik22sm
ничего не помогает

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

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

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

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

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

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

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

Добавлено: 20.11.2015{, 19:14}
jonik22sm
выставил скорость но всё равно пришлось поменять in2 и in3 в блоке типа номер поставил 5, 7, 6, 8

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

Добавлено: 20.11.2015{, 19:16}
DerAlex
теперь работает?

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

Добавлено: 20.11.2015{, 19:34}
jonik22sm
да теперь работает но греется движок как сцуко
но вопрос почему на скетче меняется местами in2 и in3

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

Добавлено: 21.11.2015{, 05:09}
DerAlex
есть другой шаговый двигатель ? попробуйте на нем , если есть

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

Добавлено: 21.11.2015{, 12:44}
виталик
У вас включено направление вращения RS и подключен генератор который будет переключать по часовой против часовой .каждый свой период .

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

Добавлено: 23.11.2015{, 10:11}
Cruzator
В первом коде - const int stepsPerRevolution = 200; (200 шагов на оборот) у Вас - 48 шагов на оборот
 myStepper.setSpeed(60); - скорость 60 - у Вас 200!
Видимо по этому и греется