TODOPIC

Microcontroladores PIC => Lenguaje Basic para microcontroladores PIC => Mensaje iniciado por: puchy en 22 de Abril de 2006, 12:50:51

Título: servo con 16f84a a 4mzs ¿?
Publicado por: puchy en 22 de Abril de 2006, 12:50:51
hola a todos

weno, la cosa es que quiero controlar un servo (sin trucar) con este pic a 4 mzs

este es el program que utilizo:

inicio
high porta.1
pause 1
low porta.1
pause 19
goto inicio

envia pulsos de un milisegundo a 50zs

pero se puede enviar pulsos de menos de 1 milisegundo  con 4 mzs?

por si acaso le puse un crista de 20mzs(es el 16f84A) y este programa:

inicio
high porta.1
pause 5
low porta.1
pause 95
goto inicio

que tendria que hacer lo mismo , enviar un pulso de 1 milisegundo , pero no lo hace, se vuelve loco

¿teneis alguna idea?

saludos y graciasss
Título: Re: servo con 16f84a a 4mzs ¿?
Publicado por: LordLafebre en 22 de Abril de 2006, 13:18:57
Hola:

Puchy, la funcion Pause genera un retardo de X milisegundos con cualquier cristal que utilices, si se vuelve loco como dices es porque al momento de cambiar el cristal, no estas definiendo la nueva frecuanca a utilizar, para eso te sirve la linea:

define OSC 20 por ejemplo.

de tal manera que si pruebas esto:

inicio
high porta.1
pause 1
low porta.1
pause 19
goto inicio

con un cristal de 4 mhz, y esto:

DEFINE OSC 20

inicio
high porta.1
pause 1
low porta.1
pause 19
goto inicio

con un cristal de 20Mhz, los resultados deben ser los mismos.

Suerte...!!!  :mrgreen:
Título: Re: servo con 16f84a a 4mzs ¿?
Publicado por: puchy en 23 de Abril de 2006, 20:22:39
wenas

weno, hice lo que me has dicho y nada, por si acaso mañana voy a probar con otro cristal de cuarzo de 20.

De todas formas.Con la función  de PAUSE como minimo solo de puede hacer un intervalo de 1 milisegungo,
y para controlar un servo esto es mucho, ya que el giro total es de 2 milisegundos mas o menos. y con esta funcion solo tendria 3 posiciones el servo.

Hay alguna forma de hacer intervalo más pequeños, para controlar el servo mejor.

saludoss
Título: Re: servo con 16f84a a 4mzs ¿?
Publicado por: LordLafebre en 24 de Abril de 2006, 01:19:05
Hola:

Puedes hacer pausas mas pequeñas, en microsegundos con PAUSEUS.
Título: Re: servo con 16f84a a 4mzs ¿?
Publicado por: hsen en 30 de Mayo de 2006, 07:50:03
Perdon Lordlafebre:Yo pensaba que PAUSEUS era  solo para segundos, ¿Cual sería la sentencia para usar micro segundos?
Título: Re: servo con 16f84a a 4mzs ¿?
Publicado por: LordLafebre en 30 de Mayo de 2006, 12:35:59
Hola:

Pause espera un retardo en milisegundos, y pauseus en microsegundos.
Título: Re: servo con 16f84a a 4mzs ¿?
Publicado por: hsen en 30 de Mayo de 2006, 14:09:54
Ok:Yo estaba equivocado.