Servos Tower Pro SG-5010 No ejecutan el código correctamente (7 Servos)

Hola! Espero se encuentren bien.
Estoy usando servomotores Tower pro SG-5010 con una placa Arduino, cuando conecto 2 o hasta 3 los servomotores funcionan bien lentamente pero luego de un tiempo se traban y comienzan a girar rápido y sin control. Mi objetivo es controlar 7 servos Tower pro SG-5010 (para un brazo mecánico).
He probado con una placa Arduino Mega 2560 y Arduino UNO. Sin embargo el problema es el mismo, la placa Mega llega a soportar un poco más de tiempo más que la placa Arduino Uno.
He probado usando una alimentación 5v y GND externa y en otras ocasiones con la alimentación de la misma placa pero en ambos casos tengo el mismo problema.

Quisiera saber cuál creen que fuese el problema, lo que creo es que puede que la placa Mega y Uno no soportan procesar los 7 Servos Tower Pro SG-5010. Si consideras que ese fuera el caso, ¿Qué placa me recomiendas usar para controlar los 7 servos?

Este es el código que estoy empleando para cada servo, hay momentos en los 2 servos se mueven simultáneamente y en ese caso añado los 2 servos.

#include <Servo.h>
Servo servomotor1;
Servo servomotor2;
Servo servomotor3;

void setup() {
 Serial.begin(9600);
 servomotor1.attach(4);
 servomotor2.attach(5);
 servomotor3.attach(6);
void loop() {
  servomotor1.write(0);
  servomotor2.write(0);
  servomotor3.write(0);
  delay(30);

  for(int i=0; i<=180; i++){
    servomotor1.write(i);
    delay(30);
  }
 delay(1000);
 for(int i=0; i<=90; i++){
    servomotor2.write(i);
    servomotor3.write(i);
    delay(30);
  }
delay(1000);
//Retorno de los servos
for(int i=90; i>=0; i--){
    servomotor2.write(i);
    servomotor3.write(i);
    delay(30);
  }
delay(1000);
for(int i=180; i>=0; i--){
    servomotor1.write(i);
    delay(30);
  }
delay(1000);
}

Básicamente esa es la secuencia que sigue para los 7 servos, no escribo la secuencia completa para no ocupar mucho espacio. Igualmente estaré al tanto de todo requerimiento.
Si hay algo que deba corregir estaré agradecido me puedan decir que es :slight_smile:

Éxitos y saludos!

Te recomendaría usar algo como el PCA9685

Espero que ayude...

Hi @jacobomiranda1

bienvenido al foro de arduino.
Si desea continuar escribiendo en español, informe su hilo a un moderador para mover su hilo al subforo en español.

En general. Si los servos se alimentan de la manera correcta, siempre deberían funcionar a la misma velocidad y no volverse más lentos con el tiempo.

Su descripción suena mientras intenta suministrar los servos desde el pin de 5V de la placa arduino.
¡Este sobrecarga el regulador de voltaje integrado!

Su tablero hace un reinicio y comienza de nuevo con señales de servo que ordenan a los servos a una posición muy diferente a la que estaba en el reinicio.

Su fuente de alimentación externa debe estar conectada así

¿Cuáles son las especificaciones de voltios y amperios de su fuente de alimentación externa?

Aquí hay un tutorial sobre cómo controlar múltiples servos.
use el traductor de google para traducir el texto al español

best regards Stefan

Bueno ya te lo explicaron y tu mismo no ves el problema. Con 2 o 3 servos funciona. Jamás alimentes servosdesde los 5V del Arduino, si es uno solo y de baja corriente puede ser pero no 3 y menos 7.
Debes usar una fuente que sea capaz de alimentar correctamente a todos los servos.
Esto es lo que dice esta pagina sobre tus servos

Voltage 4.8-6VDC (5V Typical)
Current (idle) 10mA (typical)
Current (typical during movement) 100-300mA
Current (stall) 600mA (measured)

o sea.. consideremos 300mA x 7 = 2.1A y ni hablar si el servo se traba porque pasamos a 600x7= 4.2A pero esa situación no es lógica, salvo para 1 o 2 servos simultáneos.
Okay.
Fuente entonces de 2.5 a 3A minimo.
Compartes GND. Alimentas todos los servos con ella, dejas el control como esta.
Listo.
Un solo cable GND corto entre Arduino y fuente de servos. Okay!!

Moderador:
La próxima ten mas cuidado donde publicas.
Si lo haces en el foro en inglés usa ese idioma, si lo haces escribiendo en español debes postear aquí en el foro en Español

Hola Stefan, muchas gracias por tu respuesta! Mis disculpas por elegir el foro equivocado, soy nuevo aquí pero tomaré en cuenta sus consejos para mi próxima participación.
Arreglaré la forma de alimentar mis servos con tus consejos con mis 7 servos.

Una vez más, gracias por su respuesta.

Saludos y éxitos,
Jacobo

Moderador
@ jacobomiranda1
Estas respondiendo en el foro Arduino en español.
Aquí se usa español como en el foro en inglés se usa solo inglés.
Así que por favor edita tu respuesta o usa Google Translate.

@Surbyte Perfecto, gracias. Ya traduje mi respuesta.

@sherzaad Muchas gracias por tu respuesta!

@Surbyte Muchas gracias por su respuesta, voy a intentarlo.

Saludos,
Jacobo

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