Проблема с использованием 2 двигателей

motor joystick

Я хотел бы, чтобы оба двигателя вращали прикрепленные колеса вперед, когда я толкаю джойстик вперед и наоборот. Когда джойстик неподвижен, двигатели должны перестать вращаться. В тот момент, когда я нажимаю джойстик на оси x и моя переменная x увеличивает вращение обоих двигателей, но когда я нажимаю ее в противоположном направлении и x уменьшается, вращается только двигатель A. Кроме того, когда я подключаю arduino к источнику питания (USB-кабель к ПК), двигатель B вращается около 1 секунды, а затем останавливается.

Это схема у меня есть (извините за отсутствие схемы, будем надеяться, что этого замечательного рисунка достаточно): Text

Код:

int MotorAA = 7;
int MotorAB = 8;

int MotorBA = 11;
int MotorBB = 12;

int x = 0;

void setup() {
  Serial.begin(9600);
  
  
  pinMode(MotorAA, OUTPUT);
  pinMode(MotorAB, OUTPUT);

  pinMode(MotorBA, OUTPUT);
  pinMode(MotorBB, OUTPUT);


  digitalWrite(MotorAA, LOW);
  digitalWrite(MotorAB, LOW);

  digitalWrite(MotorBA, LOW);
  digitalWrite(MotorBB, LOW);
}

void loop() {
  x = analogRead(A0);
  Move();
  Serial.println(x);
}

void Move() {
  if (x == 0){
    return;
  }
  
  if (x > 520)
  {
    digitalWrite(MotorAA, HIGH);
    digitalWrite(MotorAB, LOW);

    digitalWrite(MotorBA, HIGH);
    digitalWrite(MotorBB, LOW);
  }
  else if (x < 480)
  {
    digitalWrite(MotorAA, LOW);
    digitalWrite(MotorAB, HIGH);
    
    digitalWrite(MotorBA, LOW);
    digitalWrite(MotorBB, HIGH);
  }
  else{
    digitalWrite(MotorAA, LOW);
    digitalWrite(MotorAB, LOW);

    digitalWrite(MotorBA, LOW);
    digitalWrite(MotorBB, LOW);
  }
}

, 👍0

Обсуждение

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

@Delta_G Спасибо, что ответили. Я подключил модуль драйвера двигателя к USB-зарядному устройству с напряжением 5 В и все то же самое. Когда я подключил счетчик между водителем двигателя и двигателем, он показал ~0,12 А., @Magalek

@jsotola Хороший момент, я обновлю пост. Я хотел бы, чтобы двигатели вращали прикрепленные колеса вперед, когда я толкаю джойстик вперед, и наоборот. Когда джойстик неподвижен, двигатели должны перестать вращаться., @Magalek

изолируйте зону поражения ... поменяйте местами линии А с линиями В ... остается ли проблема с мотором? ... она движется ? ... переключите двигатели ... проблема связана с двигателем? ... такое тестирование позволит вам определить, где происходит сбой, @jsotola

@jsotola Как ни странно, когда я оставил только землю и питание, подключенные к драйверу, двигатель B действует так же. Я подумал, что без включения контактов двигателя " а " и " в " на приводе он не должен двигаться., @Magalek

двигатель будет вращаться только в том случае, если IA и IB различны ... вы можете снять Arduino ... подключить L9110s к макетной плате ... подключить все четыре входа к земле ... подключить двигатели ... теперь подключение любого из четырех входов к V+ должно запустить один из двигателей ... протестировать все четыре входа, по одному за раз, @jsotola

@jsotola Я сделал то, что вы сказали, и я думаю, что есть проблема с выводом B-IA, который при подключении к источнику питания не вращает двигатель. Я посмотрел на модуль и увидел, что на R5 отсутствует какой-то припой(кажется?) [изображение]. (https://i.imgur.com/eZj9ciK.jpg) может ли это быть причиной?, @Magalek


1 ответ


1

Arduino определенно не может питать так много двигателей. Максимальный выходной ток Arduino составляет 0,1 А, и вы, возможно, рисуете около 0,5 А. Используйте внешнюю батарею, такую как липовая батарея, для контроллера двигателя.

ПРИМЕЧАНИЕ: Пожалуйста, будьте осторожны! Рисование такого количества усилителей из Arduino может убить его! Поэтому, пожалуйста, используйте LiPo или обычные батареи!

,