Is it possible to attach more than two Servos to an Adafruit V2 Motor Shield?

With 2 Servo’s, the current limit of the Arduino is reached. But can an external power supply be used to power a Servo, while controlling it from one of the Arduino’s 6 PWM pins?

StackExchange (Arduino): Is it possible to attach more than two Servos to an Adafruit V2 Motor Shield?

Servos do not need to be connected to PWM pins, since the PWM capability is not what drives the servo.

You do not need the shield at all to connect multiple servos.

So, the answer is that in spite of the shield, you can connect multiple servos.

So your saying a Servo does not need to be fed pulses of various lengths, to control its position?
What sorcery is this and how do you do it?

I wanted to connect the Vcc wire to the shield so that it could draw its amps from there, instead of the Arduino.
Don't you need a shield or some other alternative power supply if your running more than two Servos?

So your saying a Servo does not need to be fed pulses of various lengths, to control its position?

I did not say that. I said that the pulses are NOT the shape/duration/frequency of the PWM that the Arduino outputs.

I wanted to connect the Vcc wire to the shield

Of the servo(s)? That’s a good idea (though you don’t need a shield for that).

Don’t you need a shield or some other alternative power supply if your running more than two Servos?

Yes, you need an alternate power supply if you are running more than zero servos. No, you do not need a shield to connect the wires together.

Strip the ends, solder them all together. No shield needed. A shield might look neater, with it’s screw terminals, but there are screw shields without all the stuff that the motor shield has that you don’t need.

For the Arduino, a pulse is a short burst of electricity. So naturally, I assumed the Servos used PWM pins.

But if you don't mind me asking, how does the Arduino generate a pulse width, without using PWM.
Isn't it the purpose of the PWM pins to switch off and on very rapidly, thus simulating a particular V+ ?

If any of the 13 pins can produce a PWM signal, then what makes the pins labeled as PWM unique?

but there are screw shields without all the stuff that the motor shield has that you don't need.

I chose the Adafruit V2 Shield because (a) I didn't want to wait and buy another piece of equipment, and (b) it has an Amp limit of 1.2A. The current draw for 6 Servo's @ 6V, even at its maximum which would be 1080mA. Divided among two of its 4 channels, this should be well within its capability.

However, I ended up braking the Servo.
Even though the terminals (Intended for hobby & stepper motors) were supposedly PWM, it seems that I didn't give the proper value. Could this have worked, or do I need to buy a separate shield designed for Servo's?

BoomTune:
But if you don't mind me asking, how does the Arduino generate a pulse width, without using PWM.
...
If any of the 13 pins can produce a PWM signal, then what makes the pins labeled as PWM unique?

To generate pulses set a pin HIGH wait a bit, set it LOW, wait a bit more set it HIGH again etc. Servos only need very slow (50Hz) pulses so it's no problem to do it on any digital pin.

PWM pins are ones that can do that sort of thing automatically for you and at high speeds without the code needing to do it's own timing. Useful for all sorts of things but not servos.

And again...servos do not need a shield. Just connect all the +ve terminal together and to +ve on a battery/PSU and the ground terminals together to the -ve (and to GND on the Arduino) and you've solved it.

Steve

So, something like;

digitalWrite**(LEDpin,HIGH);**
delay**(1.25);** // Somewhere between 1ms (0°) and 1.5ms (90°)
digitalWrite**(LEDpin,LOW);**

This sounds like an advanced but useful technique.

Because the Servos only require up to 50Hz (50 times a second) pulses and not the 16 MHz or 16 million cycles per sec, they can be controlled by non-PWM marked pins.

and the ground terminals together to the -ve (and to GND on the Arduino)

Since the GND has a current limit of 200mA, is it ok to split the wire and ground (Bury it in the dirt) it elsewhere in case it gets too high?
Or do I need to attach capacitors?

It would be a bit silly to call the pin a servo is connected to LEDpin but that's sort of the idea.

You can't use delay(1.25) because delay() only takes integers. But you can use delaymicroseconds() instead.

It also needs a delay after the LOW and of course it all has to be in a loop so it repeats over and over.

But the Servo.h library sorts all that out for you anyway.

Any current limit on the Arduino GND pin has nothing to do with it. The main current is flowing from battery +ve to battery -ve not through that pin.

Steve

Damn… I hate all those amps crawling on my kitchen bench. :slight_smile:

OP, read up on the meaning of P W M
It’s different fro a simple pulse stream or encoded bit stream.

Servos use Pulse Position Modulation. Some of the Arduino pins do Pulse Width Modulation. PPM and PWM are not the same thing. Mr. Google can help you understand the differences.