AYUDA NOVATO - EL BRAZO PIERDE FUERZA Y SE CAE (SOLUCIONADO)

Buenas tardes foreros, he estado buscando mucho sobre un problemilla que tengo, pero la verdad no encuentro nada parecido.

He creado un brazo robotico de metraquilato, (poco peso) con 3 servos de 6kg/fuerza.

El caso es que al cargarlo con el programa, los movimientos de los 3 los hace bien, pero en el tiempo de espera "delay", se queda sin fuerza o sin tensión y se cae el brazo.

:astonished: :astonished: :astonished:

¿a que se puede deber?

Las conexiones estan bien. Me da la sensacion que pierde la tension para mover el 2 y/o el 3er servo.

Esta es la configuracion que le he puesto.

¿Quizas le falte algo?

#include <Servo.h>

Servo servo1;
Servo servo2;
Servo servo3;

void setup ()

{
servo1.attach(3);
servo2.attach(5);
servo3.attach(6);

}

void loop()
{
servo1.write(90);
servo2.write(95);
servo3.write(90);
delay(2000);
servo1.write(95);
servo2.write(90);
servo3.write(95);
delay(2000);
}

Muchas Gracias

P.D.: Los servomotores estan bien, ya que con la configuracion de 1 solo, nunca pierde esa tensión, a partir de 2 o mas empieza el problema.

PD2: Por lo que leo, para que un servomotor se mantenga bloqueado en su posicion, tienen que estar en tension constante.

Osea que entiendo que "delay" lo que hace es "desconectar la fuerza del motor, asi que supongo que tendre que controlar la velocidad de giro, o una variable que desconozco. (Porque si tengo que ponerlo en tension x ms/g) ¿que tengo que poner para que el giro lo mantenga o lo haga en 0,5 segundos?

Tambien leo que es posible que necesite una fuente de alimentacion externa ... no se no creo, ya apunto que solo la conecto x usb, sin fuente de alimentacion.

Puedes hacer un bucle con un for con lo que en el tiempo que estés dentro del for seguirán los servos con la posición que le pongas
Algo así

for(int x =0; x<1000; x++){
Aquí dentro la acción que quieras hacer durante los ciclos que pongas arriba, en este caso 1000( tendrás que ir probando para que llegue a los dos segundos que tienes puestos)
}

Para la segunda acción tendrás que hacer otro for

Igualmente aquí lo tienes explicado

http://arduino.cc/en/Reference/For

Hola Javi, en principio gracias por tu respuesta.

Si, estube leyendo algo sobre lo que me pones y tienes toda la razón, aunque no creo que sea ese el fallo.

Despues de leer mucho, creo que ya he dado con el problema:

"Los servos consumen entre 5V y 7V, pero su consumo es proporcional a carga que soporta su eje, lo que quiere decir que si su carga es grande habrá que usar una fuente de alimentación externa adicional de 5V. Cuando se emplean 2 servos, independientemente de la carga, también hará falta la fuente de alimentación adicional.""

Osea, que yo estoy alimentando 3 servos, con la salida de 5v de la placa por usb ... ¿por eso se cae?, me parece muy logico. No obstante el Lunes comprare una fuente y conectare todos los motores directamente a ella.

Pues nada, el Lunes os cuento si ese es el problemilla.

De todas formas si alguien me puede confirmar que si, es posible que sea eso, me dejareis mas tranquilito el fin de semana.

:sweat_smile: :sweat_smile: :sweat_smile: :sweat_smile: :sweat_smile:

Gracias de nuevo Javi

Alimentar 2 servos con la salida de 5V del arduino, ya suele ser mucho, y si los dos se mueven a la vez, provoca resets del arduino por exceso de consumo, así que 3 servos, ya ni te cuento...

Aliméntalos con una fuente externa, y recuerda unir las masas.

Gracias Carlco y javi de new.

Te leí el Domingo, y la verdad es que me tranquilizaste mucho, ya que empece a buscar información por ahi y sabia que iba a ser eso.

Y como dice el enunciado .. NOVATO ... me salto las reglas principales de la electronica :blush: :blush: :blush: y efectivamente es eso.

He comprado una fuente de Alimentacion de 5v 30a (se que es grande pero para el futuro no, jejje) y va de LUJO, ahora el problema que tengo es de peso, por que no veas que potencia tiene el bicho ...

ASUNTO SOLUCIONADO y espero volver con prenguntas realmente complejas.

GRACIAS DE NUEVO

:wink: :wink: :wink: :wink: :wink: :wink: :wink: :wink: