TODOPIC

Microcontroladores PIC => Lenguaje Basic para microcontroladores PIC => Mensaje iniciado por: Minu en 20 de Octubre de 2008, 06:53:15

Título: Hacer girar un servo
Publicado por: Minu en 20 de Octubre de 2008, 06:53:15
Wenas,Ante todo agradecer la ayuda de este foro,gracias a el estoy aprendiendo un monton.  :-/

Estoy usando un pic 16f628 4Mhz,servo futaba S3003
En algunos ejemplos se utiliza la declaracion "pulsout",en el pic simulator ide no me la reconococe,por lo que uso "servoout"
En el siguiente ejemplo consigo que el servo gire un poco:

Define CONF_WORD = 0x3f10
WaitMs 1000
TRISB = %00000000
PORTB.3 = 0
ServoOut PORTB.3, 30

En este otro ejemplo consigo que gire un poco,continuamente hacia un lado y hacia el otro:

Define CONF_WORD = 0x3f10
WaitMs 1000
TRISB = %00000000
PORTB.3 = 0
loop:
ServoOut PORTB.3, 30
waitms 500
ServoOut PORTB.3,240
waitms 500
goto loop


Así pues intento crear un bucle con la intencion de que el servo recorra los 180º en su totalidad:

Define CONF_WORD = 0x3f10
WaitMs 1000
TRISB = %00000000
PORTB.3 = 0
Dim a As Byte
a = 0
loop:
ServoOut PORTB.3, 30
a = a + 1
WaitMs 20
If a = 4 Then Goto fin
Goto loop
fin:

En cambio,hace el mismo pequeño recorrido que en los casos anteriores. He realizado algunas otras pruebas con resultados similares.
No termino de entender como se puede dominar el giro del servo,para que efectue el recorrido con los grados deseados.

Gracias,un saludo.
Título: Re: Hacer girar un servo
Publicado por: Slalen en 20 de Octubre de 2008, 08:11:52
Mira aqui:

http://slalen.iespana.es/index.php?option=com_content&task=view&id=32&Itemid=48
http://slalen.iespana.es/index.php?option=com_content&task=view&id=36&Itemid=53
http://slalen.iespana.es/index.php?option=com_content&task=view&id=20&Itemid=38
Título: Re: Hacer girar un servo
Publicado por: Minu en 20 de Octubre de 2008, 12:05:08
¿Así pues con esta instruccion de deberia de bastar para llevar el servo hasta un extremo? "ServoOut PORTB.3, 30"
¿o me hace falta algo mas en esa instruccion?
En ejemplos que he podido encontrar,tambien usan oscilador de 4Mhz,para el mismo servo los tiempos calculados van de 0,3ms a 2,4ms,en ellos usan la declaracion "pulsout".
Los Links que me propones estan muy bien,me aclaran mejor un par de conceptos,pero el ejemplo esta en assembler y hexadecimal,cuando lo que necesito es un ejemplo en pic basic. No estoy seguro de si "servoout" sea la declaracion correcta que he de usar.

Gracias.
Título: Re: Hacer girar un servo
Publicado por: Slalen en 20 de Octubre de 2008, 12:17:01
De picbasic no te puedo ayudar...

A ver si algún moderador cambia el post al foro de basic...
Título: Re: Hacer girar un servo
Publicado por: Minu en 20 de Octubre de 2008, 13:21:14
oks,esperare a que muevan el post.Gracias por la ayudita.
Título: Re: Hacer girar un servo
Publicado por: dogflu66 en 20 de Octubre de 2008, 18:11:16
Aqui te dejo el indice de un hilo que tiene varias formas de controlar un servo futaba 3003 con el Basic de PSI.
Título: Re: Hacer girar un servo
Publicado por: Minu en 20 de Octubre de 2008, 18:45:45
Muy agradecido.....es una lastima que el link este desaparecido.... :shock: :-/ :-)
Título: Re: Hacer girar un servo
Publicado por: doppel en 20 de Octubre de 2008, 18:56:19
Hola Minu

Estoy seguro que lo que Carlos quizo colocar fue este link (http://www.todopic.com.ar/foros/index.php?topic=14917.0) , revisa que hay un apartado para servos con ejemplos muy bien desarrollados, con eso tendrás una clara idea de como manejarlos


saludos

Hernán
Título: Re: Hacer girar un servo
Publicado por: dogflu66 en 20 de Octubre de 2008, 19:37:24
Exacto Hernán, esa fue mi intención. Gracias.
Título: Re: Hacer girar un servo
Publicado por: Minu en 21 de Octubre de 2008, 06:37:47
Gracias a los dos por la ayuda,ahora mismo me pongo a mirarme el tema de los servos.
Una coillas mas. ¿Hay alguna manera de saber con certeza si el pic se ha estropeado? por ejemplo usando el PSI. Resulta que haciendo pruebas con lo del servo me da la impresion de que me lo he cargado,ahora ni si quiera consigo encender un led jeje.Lo extraño es que le puedo programar con normalidad.No tiene importancia,he comprado un par mas de pics,aunque me gustaria asegurarme de que se ha colapsado por completo.

Gracias,de veras. Un saludo
Título: Re: Hacer girar un servo
Publicado por: dogflu66 en 21 de Octubre de 2008, 18:37:33
En este caso no hay muchos caminos, lo primero es verificar que el circuito no es perjudicial para el PIC y si es el caso hacer la corrección pertinente.
Y si los problemas continúan pues sustituir el PIC por otro, o instalar el que no marcha con otro programa y distinto circuito que si sabemos que funciona.
Título: Re: Hacer girar un servo
Publicado por: DPPIC en 01 de Noviembre de 2008, 18:53:12
Hola que tal, si entiendes el ensamblador te puedo dar un programa para hacerlo. Un saludo
Título: Re: Hacer girar un servo
Publicado por: JLIGUAL en 01 de Noviembre de 2008, 20:48:53
Minu en ualquie caso piensa que lo primero que debes hacer es desmontar la tapa del servo y quitarle el tope plastico que tiene, por eso solo te corre un poco en cada sentido, normalmente suele andar entre un 55 y un 60º en cada banda (MIENTRAS TIENE EL TOPE PLASTICO).

Ademas debes de modificar el potenciometro del servo, de echo hay en este link: Receptor RC asistido por PIC   (http://www.todopic.com.ar/foros/index.php?topic=20232.0) se habla de ello para hacer un servo multivulta (10 vueltas) entre extremos.



un saludo



Juan Luis Igual