Управление шаговиками

Тимур1

✩✩✩✩✩✩✩
20 Июл 2020
1
0
Хочу изготовить разводной, поворотный мост. Раздвигается он 4 шаговиками. Шаговики управляются драйвером l298n. Слева верхний мотор спокойно крутится, а остальные не хотят двигаться. Они как бы вибрируют, крутят немного, но толку ноль. Верхние моторы абсолютно одинаковые. При этом левый крутит, правый еле-еле. Я прикрепил скетч для проверки мотора. В чем может быть дело?
 

Вложения

bort707

★★★★★★✩
21 Сен 2020
3,044
909
@Тимур1, в вашем скетче только один мотор. Вы правда думаете, что по одной фотографии, где непонятно что куда подключено и каким кодом управляется -можно определить ошибку?
Нужен полный код и схема подключения всех 4х моторов
 

DAK

★★★✩✩✩✩
8 Окт 2020
517
137
На фото краем глаза видно только один драйвер шаговика... Может просто всё сделано параллельно и все моторы умотаны на один драйвер (хотя это вряд ли, ведб один мотор то работал, но мало ли...)? Самое простое, это 4 драйвера подключить к 16 пинам ардуино и после чего немного доработать скетч. Правда где то читал, что можно параллельно подключать драйвера, но там тоже есть подводные камни в случае подклинивания одного из моторов. Так что, если модель ардуино позволяет, то попробуйте подключить к соответствующим пинам моторы и проверить всё ли будет работать.

C++:
#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 10 through 13:
Stepper myStepper1(stepsPerRevolution, 10, 11, 12, 13);
// initialize the stepper library on pins 14 through 17:
Stepper myStepper2(stepsPerRevolution, 14, 15, 16, 17);
// initialize the stepper library on pins 18 through 21:
Stepper myStepper3(stepsPerRevolution, 18, 19, 20, 21);
// initialize the stepper library on pins 22 through 25:
Stepper myStepper4(stepsPerRevolution, 22, 23, 24, 25);

void setup() {

Serial.begin(9600);

}

void loop() {
  myStepper1.setSpeed(stepsPerRevolution);
  myStepper2.setSpeed(stepsPerRevolution);
  myStepper3.setSpeed(stepsPerRevolution);
  myStepper4.setSpeed(stepsPerRevolution);
  for (byte i=1; i<=200; i++){ 
    myStepper1.step(1);
    myStepper2.step(1);
    myStepper3.step(1);
    myStepper4.step(1);
  }
}
Очень поддерживаю @bort707, плюс ещё бы марку моторов, а так приходится гадать, но думаю скоро проснётся пару экстасенсов и они Вам точно подскажут где вы сделали не так.