Multiple devices connected causes jitter/glitching

I have a school project with an arduino uno powered through the usb cable to a laptop, I'm using 5 Servos (SG90, 4.8-6V and possibly 350mA when stall), 1 TCS34715 rgb color sensor, and 1 stepper motor which I haven't tried with this whole configuration yet.
The 5V pin and GND pins are connected to a breadboard, and on the same rows I have all 5 servos + the color sensor connected, servos go to pins 3, 4, 5, 6 and 7, while SDA and SCL are connected to A4 and A5.
All these parts tested separately have proven to work, and together, when 3 servos are attached to the pins in the project code it works perfectly, when I uncomment the ones I had commented out, and upload it to the board, servos will go crazy, I have noticed an erratic sequence by the L led (which blinks lightly a lot in this case) and the TX/RX leds, TCS 34725 sensor builtin led will also blink repeatedly in a dim light.
I'm not an expert whatsoever when talking about circuits, which is primarily why I'm here, is this possibly because current draw from the board is too high it keeps it resetting or something? Or does it have anything to do with the breadboard circuit? There's also a DC Power Supply I was gonna try tomorrow, or maybe I could also try with a battery? To power at least a couple of the servos, and the rest with the arduino itself.

Hello hareka
The Arduino isn´t a PSU for the servos. Use an external PSU for the servos connected.
Have a nice day and enjoy programming in C++ and learning.
Errors and omissions excepted.
Дайте миру шанс!

If not a lack of current to the project, The problem is inevitably ‘blocking code’ e,g. delay() etc.
It might not be that obvious- with for loops or code inside libraries holding up the timing.

try to calculate youself
The maximum current from laptop USB is 500ma (if it USB2.0) or 900ma (USB3)/ But your setup is 5 servos (350 ma each) one stepper and controller itself

Some sites suggest that, but a more reasonable figure would be double that.

Which it isn't.

The OP @hareka specifies a UNO (unfortunate choice but ...) which has a polyfuse in the USB connection rated at 500 mA, so the suggestion of any greater current is spurious. :roll_eyes:

Those are MG90s, the ones I'm using are SG90s (Servo Motor Micro SG90 - ProtoSupplies).

So, current supplied by the UNO is 500mA? Does that include current that the UNO itself draws? I'd probably need to power the breadboard through a battery set to 1.8A then

You mean a lack of delays? Pretty sure I've set up quite a couple of delays after every servo action to ensure nothing goes wrong, I could post the code later

Of course. :sunglasses:

That is why people are telling you to power things properly. You provide a power supply for the servos and you provide a power supply for the Arduino; these are quite separate requirements.

If your power supply for the servos is capable of the total stall currents (which I suspect will be much the same for SG90/ MG90 if they use the same motors) without "sagging" and is no more than 5.2 V, then you can use this to power the UNO via the "5V" pin.

The only caveat is to disconnect power from the "5V" pin when you connect to a PC via USB just in case it feeds 5 V back into the PC's USB subsystem and interferes with it.

Well of course, delay() will by definition cause a hiccup in the operation. :roll_eyes:

The SG90 stall current is about 650 mA.

For 5 SG90 servos, the servo power supply must be able to provide at least 5 times that, or over 3 Amperes.

Solved: Tried it with a dc power supply today, peak current was indeed over 1.3A at times.
Thanks fot the replies

But what you measured will depend entirely on how well your current meter deals with brief current bursts.

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