Arduino y Servos

Me enteré de la existencia del Arduino hace 3 dias, y hace 2 dias que lo tengo, y debo decir que estoy encantado con la de cosas que se pueden hacer.

Soy estudiante de Teleco, tengo conocimientos de C y de Electronica.

He montado ya algunas cosas sencillas como controlar 7 LEDs con un potenciometro, eligiendo cual debe encenderse, y cosas faciles, pero al intentar controlar un Servo, me dan quebraderos de cabeza....

He de decir que he buscado lo que pasa, lo que debo hacer o alguna posible solucion, pero no he encontrado nada.

El caso es que, al conectar un servo que tengo de un coche RC de gasolina, me tira abajo el sistema, no reconoce bien el USB, y se queda cargando, y el servo no se mueve con soltura, asique se me ocurrió que es posible que demande tanta corriente que el Arduino no sea capaz de suministrarla, asique he conectado la alimentacion a una fuente regulable que tengo, puesta a 5V y el cable de control al Arduino, pero directamente no me ejecuta las ordenes que le doy, como si no lo reconociera.

Supongo que será la cosa mas idiota del mundo, que sea cambiando un jumper de posicion para no tener que suministrar energia el, o yo que se, pero no se que hacer. :-/

En fin, Gracias por vuestras respuestas y un saludo a todos.

Sois una comunidad cojonuda.

Como funciona ese servo?, es un servo comun y corriente?

Supongo que será la cosa mas idiota del mundo, que sea cambiando un jumper de posicion para no tener que suministrar energia el, o yo que se, pero no se que hacer. Undecided

Por lo que se depende de algunos modelos de arduino reconocen automaticamente de donde se alimenta. Depende a laplaca que tengas

El caso es que, al conectar un servo que tengo de un coche RC de gasolina, me tira abajo el sistema, no reconoce bien el USB, y se queda cargando, y el servo no se mueve con soltura, asique se me ocurrió que es posible que demande tanta corriente que el Arduino no sea capaz de suministrarla, asique he conectado la alimentacion a una fuente regulable que tengo, puesta a 5V y el cable de control al Arduino, pero directamente no me ejecuta las ordenes que le doy, como si no lo reconociera.

A mi esto me sucede (suponiendo que la programación está correcta) cuando:

1º Arduino no me entrega toda la corriente, por lo que debo poner una etapa de potencia (ejemplo: Arduino controla la base de un TIP, que es un transistor bjt de alta corriente y el TIP lo acondicionas para que te entregue la corriente que necesites, si es para un servo pienso que es un TIP y no un accionador mecánico, aká relé, el q debe usarse por la rapidez necesaria, además el relé se desgastaria mas rapido y tb tiene una histéresis mayor)

2º Cuando no puenteo todas las tierras a una masa común, el Arduino hace cualquier cosa.

Me dices como es tu servo, de ser posible que modelo es?

El problema esta solucionado, al final era una tonteria, que no habia unificado masas, pero muchas gracias por tu paciencia.

Ahora que esta este post abierto, me gustaria controlar 12 servos, pero en la libreria <servo.h> solo se pueden controlar dos servos a pesar de que tengo 6 salidas PWM, y aunque usara todas las salidas digitales controlandolo manualmente (demasiadas lineas de codigo y un lio tremendo) solo hay 10 salidas.

Hay alguna forma de poder controlar mas servos?

Por si teneis curiosidad, de por que necesito tantos servos, quiero hacer algun tipo de andador, como algun hexapod o similar, con 4 patas minimo, y cada para necesita 3 servos.

En fin, gracias de nuevo.
Un saludo.

Por software de momento muevo yo 4 sin problemas. Echale un vistazo a esta url:

http://www.sherkhan.net/blogs/frikadas/?p=153

Yo tengo en mente hacer un hexapod también, porqué será que todos pensamos en lo mismo? :stuck_out_tongue:

Sobre controlar servos... la librería softwareservo permite controlarlos en todas las salidas digitales, pero con eso puedes con 13 y no mas... no son suficientes para los 18 del hexapod

Yo me estoy planteando:
a) Usar una PIC o dos específicamente para controlar servos.
b) Conectar 2 o 3 arduinos mediante i2c, para un "cerebro distribuido"
c) Usar un shift register o similar y controlarlo a mano, haciendo los pulsos en serie. Esta es la que mas me motiva, pero no tengo claro si tendrá la suficiente precisión.

Algo así como:
Almaceno en un array los tiempos en ms a los que quiero establecer los servos.
pongo todas las salidas paralelas del/los shift registers en 1 y empiezo a contar tiempo.
Comparo cada variable del array con el tiempo transcurrido y voy enviando 0 o 1 en serie según corresponda.
Vuelco los valores del shift register a las salidas paralelas.
y así hasta que todas las salidas sean 0, momento en que retorno el control al arduino.

Con eso, en teoría, podría controlar N servos, ¿no? Ahora me falta saber que precisión puede dar.