Одновременное управление моторами

dmawzx
dmawzx аватар
Offline
Зарегистрирован: 02.05.2014

Ребята, объясните если кто знает как реализовать одновременное управление шаговыми моторами. Суть  в том, что пока вращается один мотор нужно запустить второй. У меня загвоздка в том, что пока первый мотор своё не отработает второй не включается.

Кусок кода:

void loop() 
{
   move_motor_1(way_to, spee);
   move_motor_2(way_to, spee);       
  
   delay(5000);
}

//поворот мотора №1 на один шаг вперёд/назад
void move_motor_1(int way_to1, int spee1) 
{  
   for(int i = 0; i<=350; i++) //350 шагов
   {
      digitalWrite(way1, way_to1); //направление туда/сюда
      digitalWrite(motor1, HIGH);
      digitalWrite(motor1, LOW);
      delay(spee1);  
   } 
}
GraninDm
Offline
Зарегистрирован: 01.08.2013

Все дело в этом delay(spee1);

Почитайте, что-нибудь про конечные цифровые автоматы.

dmawzx
dmawzx аватар
Offline
Зарегистрирован: 02.05.2014

Пока написал с помощью простых математических действий, на большее ума не хватает :)

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

leshak, спасибо! Отличный вариант!