Проблема управления двумя моторами через l298n и nodemcu v3

Тема в разделе "Моторы, сервоприводы, робототехника", создана пользователем Grzeg, 22 ноя 2020.

  1. Grzeg

    Grzeg Нуб

    Здраствуйте форумчани!
    У меня появилась проблема. Я использую ESP8266 NodeMcu v3 чтобы сделать платформу на управлении. Но при использованиии 2-х моторов постоянного тока двигается только один двигатель, а именно левый.
    Вот схема и код:
    upload_2020-11-21_23-54-50.png

    Питание на драйвер +-12в

    Код (C++):
    // Двигатель A
    int in1 = 5;
    int in2 = 4;
    // Двигатель B
    int in3 = 12;
    int in4 = 13;

    void setup()
    {

      pinMode(in1, OUTPUT);
      pinMode(in2, OUTPUT);
      pinMode(in3, OUTPUT);
      pinMode(in4, OUTPUT);
      digitalWrite(in1, LOW);
      digitalWrite(in2, LOW);
      digitalWrite(in3, LOW);
      digitalWrite(in4, LOW);
    }

    void loop()
    {
    // Установка двигателя A и B на максимальную скорость (0 ... 255)
    // Вращение двигателем A и B вперед
      digitalWrite(in1, HIGH);
      digitalWrite(in2, LOW);
      digitalWrite(in3, HIGH);
      digitalWrite(in4, LOW);
      delay(2000);
    // Вращение двигателем A и B назад
      digitalWrite(in1, LOW);
      digitalWrite(in2, HIGH);
      digitalWrite(in3, LOW);
      digitalWrite(in4, HIGH);
      delay(2000);

    }
    Буду очень признателен, спасибо!
     
  2. akl

    akl Гуру

    если двигатели поменять местами - все равно только тот что слева крутится?
    у блока питания достаточно мощности на оба двигателя?
    если модуль такой то там еще есть какие-то перемычки - они правильно установлены?
    [​IMG]
     
  3. Grzeg

    Grzeg Нуб

    Перемычки установлены правильно (все 3 штуки), питания должно хватить (через DC-DC преобразователь подаю 12в на драйвер)
     
  4. Grzeg

    Grzeg Нуб

    При такой распиновке двигается только двигатель А (левый)
    Код (C++):

    // Двигатель A
    int in1 = 16;
    int in2 = 5;
    // Двигатель B
    int in3 = 14;
    int in4 = 12;

    void setup()
    {

      pinMode(in1, OUTPUT);
      pinMode(in2, OUTPUT);
      pinMode(in3, OUTPUT);
      pinMode(in4, OUTPUT);
      digitalWrite(in1, LOW);
      digitalWrite(in2, LOW);
      digitalWrite(in3, LOW);
      digitalWrite(in4, LOW);
    }

    void loop()
    {
    // Установка двигателя A и B на максимальную скорость (0 ... 255)
    // Вращение двигателем A и B вперед
      digitalWrite(in1, HIGH);
      digitalWrite(in2, LOW);
      digitalWrite(in3, HIGH);
      digitalWrite(in4, LOW);
      delay(2000);
    // Вращение двигателем A и B назад
      digitalWrite(in1, LOW);
      digitalWrite(in2, HIGH);
      digitalWrite(in3, LOW);
      digitalWrite(in4, HIGH);
      delay(2000);

    }
     
  5. akl

    akl Гуру

    отключи оба двигателя от платы драйвера, потом подключи двигатель А к OUT4-OUT3 и проверь будет ли он крутиться там
     
  6. Grzeg

    Grzeg Нуб

    К сожалению ничего
     
  7. vvr

    vvr Инженерище

    меняй драйвер.
     
  8. witt64

    witt64 Гик

    кабельки подходящие на Л298 просто поменять с мотора А на Б , ну и соот. Б на А

    если молчок то похоже на драйвер,если мотор пойдёт то, то дело в nodemcu
     
  9. Grzeg

    Grzeg Нуб

    поменял, но поёхало только одно колесо, когда зажымаю RST, то ёдет другое колесо