Проблема с драйвером L298N

Здравствуйте может кто помочь разобраться с проблемой. В общем суть проблемы такова: я подключал к этому драйверу 4 мотора написал код что бы моторчики крутились сначала по очереди потом все вместе и так же в обратную сторону, но такая проблема колеса крутятся вперед по отдельности но вместе не хотят и крутится только одна сторона, в обратную сторону моторчики вообще не крутятся никак. Питаю от 4 пальчиковых батареек
Код:
#define pinA1 2 // Левый мотор
#define pinA2 3
#define pinB1 4 // Правый мотор
#define pinB2 5
#define enableA 9
#define enableB 11

void setup() {
pinMode(pinA1, OUTPUT);
pinMode(pinA2, OUTPUT);
pinMode(pinB1, OUTPUT);
pinMode(pinB2, OUTPUT);
pinMode(enableA, OUTPUT);
pinMode(enableB, OUTPUT);

Serial.begin(9600);
Serial.println(“Тест моторов начнётся через 3 секунды…”);
delay(3000);
}

void loop() {
Serial.println(“Вместе”);
motorAon();
motorBon();
motorAforward();
motorBforward();
delay(1000);
motorBcoast();
motorAcoast();
delay(1000);
Serial.println(“Левый”);
motorAforward();
delay(2000);
motorAstop();
}

void motorAforward() {
digitalWrite (pinA1, HIGH);
digitalWrite (pinA2, LOW);
}
void motorBforward() {
digitalWrite (pinB1, LOW);
digitalWrite (pinB2, HIGH);
}
void motorAbackward() {
digitalWrite (pinA1, LOW);
digitalWrite (pinA2, HIGH);
}
void motorBbackward() {
digitalWrite (pinB1, HIGH);
digitalWrite (pinB2, LOW);
}
void motorAstop() {
digitalWrite (pinA1, HIGH);
digitalWrite (pinA2, HIGH);
}
void motorBstop() {
digitalWrite (pinB1, HIGH);
digitalWrite (pinB2, HIGH);
}
void motorAcoast() {
digitalWrite (pinA1, LOW);
digitalWrite (pinA2, LOW);
}
void motorBcoast() {
digitalWrite (pinB1, LOW);
digitalWrite (pinB2, LOW);
}
void motorAon() {
digitalWrite (enableA, HIGH);
}
void motorBon() {
digitalWrite (enableB, HIGH);
}
void motorAoff() {
digitalWrite (enableA, LOW);
}
void motorBoff() {
digitalWrite (enableB, LOW);
}

Для начала сделайте так

#define pinA1 2 // Левый мотор
#define pinA2 3
#define pinB1 4 // Правый мотор
#define pinB2 5
#define enableA 9
#define enableB 11

void setup() {
pinMode(pinA1, OUTPUT);
pinMode(pinA2, OUTPUT);
pinMode(pinB1, OUTPUT);
pinMode(pinB2, OUTPUT);
pinMode(enableA, OUTPUT);
pinMode(enableB, OUTPUT);

Serial.begin(9600);
Serial.println(“Тест моторов начнётся через 3 секунды…”);
delay(3000);
}

void loop() {
Serial.println(“Вместе”);
motorAon();
motorBon();
motorAforward();
motorBforward();
delay(1000);
motorBcoast();
motorAcoast();
delay(1000);
Serial.println(“Левый”);
motorAforward();
delay(2000);
motorAstop();
}

void motorAforward() {
digitalWrite (pinA1, HIGH);
digitalWrite (pinA2, LOW);
}
void motorBforward() {
digitalWrite (pinB1, LOW);
digitalWrite (pinB2, HIGH);
}
void motorAbackward() {
digitalWrite (pinA1, LOW);
digitalWrite (pinA2, HIGH);
}
void motorBbackward() {
digitalWrite (pinB1, HIGH);
digitalWrite (pinB2, LOW);
}
void motorAstop() {
digitalWrite (pinA1, HIGH);
digitalWrite (pinA2, HIGH);
}
void motorBstop() {
digitalWrite (pinB1, HIGH);
digitalWrite (pinB2, HIGH);
}
void motorAcoast() {
digitalWrite (pinA1, LOW);
digitalWrite (pinA2, LOW);
}
void motorBcoast() {
digitalWrite (pinB1, LOW);
digitalWrite (pinB2, LOW);
}
void motorAon() {
digitalWrite (enableA, HIGH);
}
void motorBon() {
digitalWrite (enableB, HIGH);
}
void motorAoff() {
digitalWrite (enableA, LOW);
}
void motorBoff() {
digitalWrite (enableB, LOW);
}

Покажите в коде, где у вас вращение в обратную сторону? - я не вижу

void motorAbackward() {
digitalWrite (pinA1, LOW);
digitalWrite (pinA2, HIGH);
}
void motorBbackward() {
digitalWrite (pinB1, HIGH);
digitalWrite (pinB2, LOW);

я просто функции показал которые вызываю что не понятно

не надо раздражаться, вы сюда за помощью пришли, а не спорить.

То что вы показали выше - это функции. Чтобы машинка ехала назад, мало определить такие функции, их надо еще вызывать в основном цикле (loop()) . В вашем коде этого нет.

я их вызывал просо в коде этого нет, извиняюсь за раздражение.

Вы всегда выкладываете один вариант кода, а вопросы задаете про другой?
Такой подход приведет к тому, что вам перестанут отвечать, а ветку снесут в помойку.

ВСЕГДА показывайте ИМЕННО ТОТ КОД, о котором спрашиваете

я столько вариантов кода перепробовал что сюда бы все не поместилось

не надо постить все. Надо выложить тот код, по которому задаете вопрос.

Вы правда не понимаете, почему это важно?
Я потратил время, выискивая в коде ошибку, которой там нет. В следующий раз я посмотрю на аватар и подумаю “А, это тот @Bera228, который намеренно путает отвечающих в своих вопросах… Не буду тратить на него время”.

Давайте закончим перебранку. Конкретно по коду из поста #3 какие вопросы?

без проблем. Так по коду вопросов нету, я просто не могу решить проблему с вращениями двигателей, которую описал в самой теме

вместсе двигатели не крутятся, только по отдельности, а в обратную сторону вообще никак не крутятся

вы плохо понимаете, что я написал выше?
Если у вас в коде нет вращения в обратную сторону, зачем вы об этом спрашиваете?

Вы не умеете общаться на технических форумах? Вы должны задавать четкие вопросы, и выкладывать код и схему (которой, кстати, у вас тоже нет) - в точности соответствующие обсуждаемой проблеме.

я впервые на таком форуме

я думал мы с этим разобрались. я вызывал эти же функции для вращения назад но колеса не крутились. это же просто как 2 + 2

вопрос вроде нормальный, проблема описана, на счет схемы я просто не знаю как и где их собирать, это же раздел для новичков поэтому я думаю это нормально

Где код, в котором вы это вызывали?

вот, в этом коде же просто добавляется несколько строчек, я не понимаю зачем так усложнять

#define pinA1 2 // Левый мотор
#define pinA2 3
#define pinB1 4 // Правый мотор
#define pinB2 5
#define enableA 9
#define enableB 11

void setup() {
pinMode(pinA1, OUTPUT);
pinMode(pinA2, OUTPUT);
pinMode(pinB1, OUTPUT);
pinMode(pinB2, OUTPUT);
pinMode(enableA, OUTPUT);
pinMode(enableB, OUTPUT);

Serial.begin(9600);
Serial.println(“Тест моторов начнётся через 3 секунды…”);
delay(3000);
}

void loop() {
Serial.println(“Вместе”);
motorAon();
motorBon();
motorAforward();
motorBforward();
delay(1000);
motorBcoast();
motorAcoast();
delay(1000);
Serial.println(“Левый”);
motorAforward();
delay(2000);
motorAcoast();
delay(1000);
Serial.println(“Правый”);
motorBforward();
delay(2000);
motorBcoast();
delay(1000);
Serial.println(“Левый - назад”);
motorAbackward();
delay(2000);
motorAcoast();
delay(1000);
Serial.println(“Правый- назад”);
motorBbackward();
delay(2000);
motorBcoast();
delay(1000);
}

void motorAforward() {
digitalWrite (pinA1, HIGH);
digitalWrite (pinA2, LOW);
}
void motorBforward() {
digitalWrite (pinB1, LOW);
digitalWrite (pinB2, HIGH);
}
void motorAbackward() {
digitalWrite (pinA1, LOW);
digitalWrite (pinA2, HIGH);
}
void motorBbackward() {
digitalWrite (pinB1, HIGH);
digitalWrite (pinB2, LOW);
}
void motorAstop() {
digitalWrite (pinA1, HIGH);
digitalWrite (pinA2, HIGH);
}
void motorBstop() {
digitalWrite (pinB1, HIGH);
digitalWrite (pinB2, HIGH);
}
void motorAcoast() {
digitalWrite (pinA1, LOW);
digitalWrite (pinA2, LOW);
}
void motorBcoast() {
digitalWrite (pinB1, LOW);
digitalWrite (pinB2, LOW);
}
void motorAon() {
digitalWrite (enableA, HIGH);
}
void motorBon() {
digitalWrite (enableB, HIGH);
}
void motorAoff() {
digitalWrite (enableA, LOW);
}
void motorBoff() {
digitalWrite (enableB, LOW);
}

Bera228 в этом коде нет подключения 4 моторов, там только 2, начните с этого

я к этому драйверу подключаю два правых и два левых мотора к motorA и motorB

Правильный код от кода с ошибками тоже отличается всего на несколько строчек. Вы предлагаете нам додумывать, что и как вы написали в коде?

если для вас это просто, почему вы не решите проблему сами?