Help with adafruit motor shield v2

Hello All,

I am trying to run 4 dc motors off of an Adafruit motor shield. However, on one of the terminals, the motors are only getting 3 volts rather than 12. When I press the reset button on the shield, the motor then gets 12 volts for a couple of seconds and when I hold it down it gets constant 12 volts. Sometimes when I press the reset button the motor gets no voltage rather than 12 volts. I cannot see any shorts or bad soldering anywhere so I am really confused.

Please Help,

Scott

Is that with or without the motors connected? Did you try putting different motors on different terminals to eliminate the possibility of a bad motor? How is the power to the motor shield supplied? Shared with the arduino board or separate?

  1. That is both with the motors connected and disconnected.
  2. Tested the motors, they all work.
  3. Power to the board is separate, comes in from 8 x AA batteries.

Thank you

Try using a wall transformer to power it all. Your AA batteries probably aren't getting it done. If they can't supply the needed current, voltage will sag.

I'll try that in a bit, however, the motors run flawlessly when run on the opposing terminal or directly to the batteries.

Yeah hooking it up to a power supply didn't do it.

Sounds like you have a burned chip on your motor driver shield. I've fried the TB6612 MOSFET driver chip on those boards before. The board has two of these chips. One for M1 and M2 and the other for M3 and M4. If that is the problem, you can still use the other half.

I tried another driver and I still have the same problem. Meanwhile, I stacked two boards together so I can use ports 1 and 2 on both the top and bottom boards.

is there more to this circuit? You tested the motors - they work, you tested a different board - same problem.

No, it's that simple. I'm really stumped on this one. I'm going to try a different Arduino tomorrow because it isn't making any sense to me.

Hi,
What Adafruit shield?
Does it have an Adafruit Library?
If so what examples do they have and have you tried them?
What motors are you using, can you post a link to specs/data?
Can you post a circuit of how you have your project connected?
Can you post a picture of your project so we can see your component layout.?

Can you post the code you are using please?

Have you got some code to JUST control one motor?

Do you have a DMM to measure some circuit parameters?

Thanks.. Tom... :slight_smile:

Hi Tom,

  1. Adafruit Motor shield V2

  2. Does have an Arduino library which is being used.

  3. I have tried the DC Motor example and Stacking test.

  4. Peristaltic Liquid Pump with Silicone Tubing - 12V DC Power : ID 1150 : $24.95 : Adafruit Industries, Unique & fun DIY electronics and kits

  5. Little busy right now to draw a circuit, but it is simply the shield on the arduino. 12 volts supplied through a switch to the shield. Running the Arduino off of USB. Have two motors plugged into each terminal. I get 12 volts on the terminal closest to the 12v input and I get closer to 6 on the other side. Currently, to bypass having to use the terminals which aren't working, I have two shields stacked on each other with motors plugged into terminals 1 and 2 on each. This works fine for now. f

  6. Project is in a lab right now so I can probably send a picture tomorrow.

#include <Wire.h>
#include <Adafruit_MotorShield.h>

Adafruit_MotorShield AFMSbot(0x61); // Rightmost jumper closed
Adafruit_MotorShield AFMStop(0x60); // Default address, no jumpers

Adafruit_DCMotor *myMotor1 = AFMSbot.getMotor(1);
Adafruit_DCMotor *myMotor2 = AFMSbot.getMotor(2);

Adafruit_DCMotor *myMotor3 = AFMStop.getMotor(1);
Adafruit_DCMotor *myMotor4 = AFMStop.getMotor(2);

void setup() {

  AFMSbot.begin(); // Start the bottom shield
  AFMStop.begin(); // Start the top shield

   
  myMotor3->setSpeed(255);
  myMotor3->run(FORWARD);
      delay(480000);
    myMotor3->run(RELEASE);
  myMotor2->setSpeed(255);
  myMotor2->run(FORWARD);
      delay(480000);
    myMotor2->run(RELEASE);
  myMotor1->setSpeed(255);
  myMotor1->run(FORWARD);
      delay(480000);
    myMotor1->run(RELEASE);

}

int i;
void loop() {
  myMotor4->setSpeed(255);
  myMotor4->run(FORWARD);

  

 }
  1. I have run the motors individually before, the code above is with the stacking. That is the only difference. If it was unstacked, myMotor3 and 4 would be in AFMSbot.

  2. Yes, I have tested the shield with the multimeter, but have yet to test the Arduino itself.

Thank You,

Scott