# Duda con servo s3003



## carlitosx (Jul 23, 2011)

holas, saben eh buscado informacion sobre el como trabajan estos servo, pero no me queda claro...
sale esta informacion pero no entiendo,
Operating Speed (4.8V): 0.23sec/60 degrees at no load
Operating Speed (6.0V): 0.19sec/60 degrees at no load

se que trabajan por medio de PWM, donde hay un tiempo donde X segundo o microsegundo equivale a tal grado y debe tener un tiempo de espera de X segundo al siguiente movimiento......

pero no se cual es ese tiempo para cada grado en entre 0 y 180...

porfa, ayudenme...gracias.

tamien encontre esto....
0.23sec/60 grados sin carga
0.19sec/60 grados sin carga
+ Control de Ancho de Pulso 1520usec Neutral
45 °. uno de los lados del pulso viaja 400usec

Las agujas del reloj / Pulso Viajando 1520-1900usec


----------



## dragondgold (Jul 23, 2011)

Aca explica en detalle como son los pulsos para enviarle:

http://robots-argentina.com.ar/MotorServo_basico.htm

Saludos!!


----------



## diego_z (Jul 24, 2011)

carlitosx dijo:


> holas, saben eh buscado informacion sobre el como trabajan estos servo, pero no me queda claro...
> sale esta informacion pero no entiendo,
> Operating Speed (4.8V): 0.23sec/60 degrees at no load
> Operating Speed (6.0V): 0.19sec/60 degrees at no load


 
agrego algo , eso es la velocidad a el voltaje que alimentes


----------



## carlitosx (Jul 26, 2011)

ok gracias.... 
esa pagina la revise e igual tengo claro algunas cosas y me imagino que entre los valores minimos y maximos realizo mi escalamiento y veo lo grados... pero para este servo cual es el valor minimo y maximos, es decir 0-180 grados...
0.23sec/60 grados sin carga
0.19sec/60 grados sin carga
se que esto es la velocidad segun voltaje por lo me dieron a entender...

pero lo otro no lo se mucho....
porfa ayuda, gracias...

+ Control de Ancho de Pulso 1520usec Neutral
45 °. uno de los lados del pulso viaja 400usec
Las agujas del reloj / Pulso Viajando 1520-1900usec

miren lo q tengo es esto....

set_tris_a(0x00);
	output_a(0);
	a=0;
	b=50;

{	while(true)
if (a<50)
		{
			output_high(pin_a0);
			delay_us(400);
			output_low(pin_a0);
			delay_ms(20);
			a++;
			}
		else
		if (b<51)
		{
			output_high(pin_a0);
			delay_us(2400);
			output_low(pin_a0);
			delay_ms(20);
			b--;
			}
		else
		{
			a=0;
			b=50;

este programa mueve en la primera parte va de 0 a 45, despues vuelve a 0 y nuevamente se mueve a 45 de forma consecutiva hasta q a>50.
en el otro comparador si b<51, mueve el serevo a los 180 grados...

bueno, tengo claro eso, pero tengo la duda... si 400us son 45 grados y cuando el servo esta en 45 grados los mismo 400us es 0 grado, q valor debo tomar para que sea una valor entre a y 45 grados??
y lo otros, me imagino que cada grado tiene su equivalencia en tiempo (us) si yo tengo un minimo y maximo, funcionara si hago un escalamento entre ese tiempo y en grados??

estoy confundido... porfa ayuda..
gracias


----------

