Здравствуйте может кто помочь разобраться с проблемой. В общем суть проблемы такова: я подключал к этому драйверу 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);
}
MMM
11.Декабрь.2025 08:45:45
4
Покажите в коде, где у вас вращение в обратную сторону? - я не вижу
void motorAbackward() {
digitalWrite (pinA1, LOW);
digitalWrite (pinA2, HIGH);
}
void motorBbackward() {
digitalWrite (pinB1, HIGH);
digitalWrite (pinB2, LOW);
я просто функции показал которые вызываю что не понятно
MMM
11.Декабрь.2025 08:54:00
6
Bera228:
что не понятно
не надо раздражаться, вы сюда за помощью пришли, а не спорить.
То что вы показали выше - это функции. Чтобы машинка ехала назад, мало определить такие функции, их надо еще вызывать в основном цикле (loop()) . В вашем коде этого нет.
я их вызывал просо в коде этого нет, извиняюсь за раздражение.
MMM
11.Декабрь.2025 08:56:29
8
Вы всегда выкладываете один вариант кода, а вопросы задаете про другой?
Такой подход приведет к тому, что вам перестанут отвечать, а ветку снесут в помойку.
ВСЕГДА показывайте ИМЕННО ТОТ КОД, о котором спрашиваете
я столько вариантов кода перепробовал что сюда бы все не поместилось
MMM
11.Декабрь.2025 09:05:19
10
не надо постить все. Надо выложить тот код, по которому задаете вопрос.
Вы правда не понимаете, почему это важно?
Я потратил время, выискивая в коде ошибку, которой там нет. В следующий раз я посмотрю на аватар и подумаю “А, это тот @Bera228 , который намеренно путает отвечающих в своих вопросах… Не буду тратить на него время”.
MMM
11.Декабрь.2025 09:09:46
11
Давайте закончим перебранку. Конкретно по коду из поста #3 какие вопросы?
Bera228
11.Декабрь.2025 09:13:02
12
без проблем. Так по коду вопросов нету, я просто не могу решить проблему с вращениями двигателей, которую описал в самой теме
Bera228
11.Декабрь.2025 09:13:46
13
вместсе двигатели не крутятся, только по отдельности, а в обратную сторону вообще никак не крутятся
MMM
11.Декабрь.2025 09:16:17
14
вы плохо понимаете, что я написал выше?
Если у вас в коде нет вращения в обратную сторону, зачем вы об этом спрашиваете?
Вы не умеете общаться на технических форумах? Вы должны задавать четкие вопросы, и выкладывать код и схему (которой, кстати, у вас тоже нет) - в точности соответствующие обсуждаемой проблеме.
Bera228
11.Декабрь.2025 09:23:32
15
я впервые на таком форуме
я думал мы с этим разобрались. я вызывал эти же функции для вращения назад но колеса не крутились. это же просто как 2 + 2
вопрос вроде нормальный, проблема описана, на счет схемы я просто не знаю как и где их собирать, это же раздел для новичков поэтому я думаю это нормально
v258
11.Декабрь.2025 09:25:18
16
Где код, в котором вы это вызывали?
Bera228
11.Декабрь.2025 09:34:18
17
вот, в этом коде же просто добавляется несколько строчек, я не понимаю зачем так усложнять
#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);
}
BABOS
11.Декабрь.2025 09:35:26
18
Bera228 в этом коде нет подключения 4 моторов, там только 2, начните с этого
Bera228
11.Декабрь.2025 09:37:12
19
я к этому драйверу подключаю два правых и два левых мотора к motorA и motorB
MMM
11.Декабрь.2025 09:38:22
20
Правильный код от кода с ошибками тоже отличается всего на несколько строчек. Вы предлагаете нам додумывать, что и как вы написали в коде?
Bera228:
это же просто как 2 + 2
если для вас это просто, почему вы не решите проблему сами?