2 L9110s cannot run 4 motors simultaneously

Greetings,

I cant seem to control all four motors simultaneously using 2 l9110s connected to an Arduino Uno R3 with a separate power supply coming from an 18650 battery.

All four motors work independently and can run two motors simultaneously but not all four of them.

Datasheets:
TT Motors
L9110s Motor Driver
MT3608 Boost Converter

Photo:

Schematic:

Code:

// Motor A connections
int AA = 4;   // L9110S module input 1
int AB = 5;   // L9110S module input 2

// Motor B connections
int BA = 2;   // L9110S module input 3
int BB = 3;   // L9110S module input 4

int AA2 = 9;   // L9110S module input 1
int AB2 = 8;   // L9110S module input 2

int BA2 = 7;   // L9110S module input 3
int BB2 = 6;   // L9110S module input 4

void setup() {
  pinMode(AA, OUTPUT);
  pinMode(AB, OUTPUT);
  pinMode(BB, OUTPUT);
  pinMode(BA, OUTPUT);
  pinMode(AA2, OUTPUT);
  pinMode(AB2, OUTPUT);
  pinMode(BB2, OUTPUT);
  pinMode(BA2, OUTPUT);
  
  digitalWrite(AA, HIGH);
  digitalWrite(AB, LOW);
  delay(1500);
  digitalWrite(AA, LOW);
  digitalWrite(AB, LOW);
  delay(1500);
  digitalWrite(BA, HIGH);
  digitalWrite(BB, LOW);
  delay(1500);
  digitalWrite(BA, LOW);
  digitalWrite(BB, LOW);
  delay(1500);
  digitalWrite(AA2, HIGH);
  digitalWrite(AB2, LOW);
  delay(1500);
  digitalWrite(AA2, LOW);
  digitalWrite(AB2, LOW);
  delay(1500);
  digitalWrite(BA2, HIGH);
  digitalWrite(BB2, LOW);
  delay(1500);
  digitalWrite(BA2, LOW);
  digitalWrite(BB2, LOW);
  delay(1500);
// The code above works, the code below does not.
  moveFoward();
  delay(1500);
  stopMotors();
}

void loop() {
  // put your main code here, to run repeatedly:

}

void moveFoward() {
  digitalWrite(AA, HIGH);
  digitalWrite(AB, LOW);
  digitalWrite(BA, HIGH);
  digitalWrite(BB, LOW);
  digitalWrite(AA2, HIGH);
  digitalWrite(AB2, LOW);
  digitalWrite(BA2, HIGH);
  digitalWrite(BB2, LOW);
}

void stopMotors() {
  digitalWrite(AA, LOW);
  digitalWrite(AB, LOW);
  digitalWrite(BB, LOW);
  digitalWrite(BA, LOW);
  digitalWrite(AB2, LOW);
  digitalWrite(AA2, LOW);
  digitalWrite(BA2, LOW);
  digitalWrite(BB2, LOW);
}

Any help would be greatly appreciated :slightly_smiling_face:

Sounds like a combination of not enough capacity in the power supply along with wiring such heavy current through solderless bread board. These are not meant to carry heavy currents like this. There will be a big voltage drop here.

Is there any pattern to which two motors run and which don't?
Like are they restricted to one board, or one motor for each board, or the first two you put on work then the other two don't?

1 Like

Only the first motor in the first board runs when attempting to run all 4

void moveFoward() {
digitalWrite(AA, HIGH);
digitalWrite(AB, LOW);

Video:

I noticed the light on the board dims a bit when it is meant to run all 4
This is running the same code from above.

Those motors will run from 3V, so try connecting the motors drivers directly to the battery and don't use the breadboard. Solder the wires together or cut/strip and twist the connections or use some other connector.

1 Like

Now have FUN!

1 Like

Haha thanks! :smile:

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.