Autor Tema: Problema con cotrol de servos y 16F84A (SOLUCIONADO)  (Leído 21308 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado chacruna

  • PIC10
  • *
  • Mensajes: 41
Re: Problema con cotrol de servos y 16F84A
« Respuesta #15 en: 11 de Febrero de 2009, 16:04:51 »
Hola c4_esp_VR, muchas gracias por la respuesta.

Las masas estan todas conectadas entre si (de hecho se siente que el servo se prende)
La fuente que uso para el servo es un transformador de celular de 5 voltios (el tester me tira 6.25v).


creo que voy a tener que empezas a preguntar si alguien me presta un revolver  :(


----

Un problema que encuentro que no se si es del osciloscopio (placa de sonido) o del circuito.

El grafico del osciloscopio esta perfecto, pero aveces me dice que son 50hz y a a veces 100hz (pero la imagen no cambia).

Miren.....


« Última modificación: 11 de Febrero de 2009, 16:25:03 por chacruna »

Desconectado c4_esp_VR

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 735
    • www.muchotrasto.com
Re: Problema con cotrol de servos y 16F84A
« Respuesta #16 en: 11 de Febrero de 2009, 19:54:44 »
Por último, no tendrás puesto un cristal distinto de 4Mhz...

Desconectado pablomanieri

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 639
Re: Problema con cotrol de servos y 16F84A
« Respuesta #17 en: 11 de Febrero de 2009, 20:30:08 »
Al parecer las señales son correctas. Por lo general los cargadores de celulares no entregan mucha corriente. verifica que cuando el servo trata de funcionar, no se te caiga el voltaje de la fuente. Es decir mide la tensión de salida del trafo del celular cuando lo tienes conectado al servo en funcionamiento. Y trata de darle más variación a los anchos de pulso así es más visible el cambio.

Desconectado pablomanieri

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 639
Re: Problema con cotrol de servos y 16F84A
« Respuesta #18 en: 11 de Febrero de 2009, 20:42:42 »
Otra cosa, no te olvides de colocar un capacitor de alrededor de 100nf  muy cerca de los terminales Vcc y gnd del pic para filtrar el ruido que se pueda inducir a éste por la conmutación de las escobillas del motor.

Desconectado chacruna

  • PIC10
  • *
  • Mensajes: 41
Re: Problema con cotrol de servos y 16F84A
« Respuesta #19 en: 11 de Febrero de 2009, 20:55:42 »
Acabo de poner un capacitor de 100nF entre Vcc y masa pero sigue sin funcionar.
Los tiempos que se generan son: el minimo, medio y el maximo, o sea, ALGO deberia hacer.

El trafo le lo suficiente al servo ya que con algunos codigos depronto hacia movimientos erraticos y con bastante fuerza.

Desconectado pablomanieri

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 639
Re: Problema con cotrol de servos y 16F84A
« Respuesta #20 en: 12 de Febrero de 2009, 15:06:11 »
Es muy raro lo que está pasando, con el último código que posteaste debería funcionar. comprobaste que tienes el servo conectado al PIN_B4 del pic (pin 10)

Desconectado chacruna

  • PIC10
  • *
  • Mensajes: 41
Re: Problema con cotrol de servos y 16F84A
« Respuesta #21 en: 12 de Febrero de 2009, 15:15:25 »
Es muy raro lo que está pasando, con el último código que posteaste debería funcionar. comprobaste que tienes el servo conectado al PIN_B4 del pic (pin 10)

Hola pablo, la verdad que todabia no logro entender que sucede.

Alguien puede probar el codigo con un servo futaba, hitec o algo compatible con esos tiempos?

de todos modos voy a ver si consigo otro servo para probar.

Saludos.


pd: el servo estaba conectado al PIN_4 obviamente  :D

Desconectado chacruna

  • PIC10
  • *
  • Mensajes: 41
Re: Problema con cotrol de servos y 16F84A
« Respuesta #22 en: 13 de Febrero de 2009, 00:54:04 »
Descubri algo muy loco (estoy mas cerca!!)

El servo va solo para un lado, es decir: si estoy 2ms va a 1.5ms y despues a 1ms. (hasta ahi todo bien).
El tema es que cuando vuelve la señal a 2ms el servo no vuelve para atras (pero desbloquea la posicion anterior y me deja llevarlo con la mano hasta la posicion en la que este).

Todo esto lo chequie con el osciloscopio.

Algun idea de porque pasa esto? la fuente del servo?

Desconectado MGLSOFT

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 7918
Re: Problema con cotrol de servos y 16F84A
« Respuesta #23 en: 13 de Febrero de 2009, 09:04:49 »
Yo creo que con ese cristal no tienes precision.
A 4 MHZ tienes 1000000 de instrucciones por segundo, equivalente a 1 microsegundo por instruccion.
Como hacer para mantener esa precision cuando estas al mismo nivel de precision??
Y el resto de las instrucciones cuando se ejecuta??

Ponle un cristal de 10 o 20 Mhz y declaralo en Use_Delay correctamente y luego cuentas... :mrgreen: :mrgreen:
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado chacruna

  • PIC10
  • *
  • Mensajes: 41
Re: Problema con cotrol de servos y 16F84A
« Respuesta #24 en: 13 de Febrero de 2009, 10:43:53 »
Yo creo que con ese cristal no tienes precision.
A 4 MHZ tienes 1000000 de instrucciones por segundo, equivalente a 1 microsegundo por instruccion.
Como hacer para mantener esa precision cuando estas al mismo nivel de precision??
Y el resto de las instrucciones cuando se ejecuta??

Ponle un cristal de 10 o 20 Mhz y declaralo en Use_Delay correctamente y luego cuentas... :mrgreen: :mrgreen:

Hola MGLSOFT, gracias por la respuesta.

Te hago una pregunta: porque decis que estoy trabajando al mismo nivel de precision cuando el MINIMO delay_us que hago son de 900us (900 ciclos).


PD: puedo ponerle un cristal de 10 o 20 Mhz al 16F84A?? no se me va a sobrecalentar?


Saludos!!!

Desconectado MGLSOFT

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 7918
Re: Problema con cotrol de servos y 16F84A
« Respuesta #25 en: 13 de Febrero de 2009, 11:26:14 »
Uppsss!!
Olvide la frecuencia de ese micro.
Yo probe mover el servo a 4 MHz y obtenia un funcionamiento erratico.
Cambie de cristal y el mismo software en un PIC16F876 funciono de primera.
La explicacion es la que te hice en el otro post...
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado chacruna

  • PIC10
  • *
  • Mensajes: 41
Re: Problema con cotrol de servos y 16F84A
« Respuesta #26 en: 13 de Febrero de 2009, 12:23:18 »
Uppsss!!
Olvide la frecuencia de ese micro.
Yo probe mover el servo a 4 MHz y obtenia un funcionamiento erratico.
Cambie de cristal y el mismo software en un PIC16F876 funciono de primera.
La explicacion es la que te hice en el otro post...

Hola MGLSOFT, entonses decis que no puedo subirle ni a 10MHZ con este micro??:


Citar
Como hacer para mantener esa precision cuando estas al mismo nivel de precision??

Me podrias explicar esto de nuevo?, todabia no entiendo porque 4 Mhz es poco.

Desconectado pablomanieri

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 639
Re: Problema con cotrol de servos y 16F84A
« Respuesta #27 en: 13 de Febrero de 2009, 15:11:40 »
Probaste de medir la salida del pwm con el servo conectado o siempre sin conexión. Otra cosa, configura el puerto A todo como salida pues se te puede inducir ruido en estos pines y hacer que el micro se pierda.

Realicé unas simulaciones con el MPLAB con el código que posteaste con la salida en el pin_B4 y los tiempos que me dieron fueron los siguientes:

el período para un ancho de pulso de 1.5 ms:

período: 20,055ms
pulso en alto: 1,514ms

para un ancho de pulso de 2,100ms

período: 20,062ms
pulso en alto:2,111ms


para un ancho de pulso de 900us

período: 20,056ms
pulso en alto:911us

Desgraciadamente no tengo un servo para probar.



Desconectado MGLSOFT

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 7918
Re: Problema con cotrol de servos y 16F84A
« Respuesta #28 en: 13 de Febrero de 2009, 15:15:46 »
Cada ciclo de clock mide un microsegundo a 4 MHz.
Una instruccion de Delay lo que hace es un loop de X veces para hacer una demora como la solicitada.
Como haces para anular el consumo de microsegundos del resto de las instrucciones??

Probaste con Delay_ms ??

Esto que dice Pablo es parte la diferencia normal del cristal y parte el resto de instrucciones del programa.
Prueba asi como esta a ver si bajando a casi 19,5 mseg el periodo te funciona.
Los servos esperan un pulso de periodo ANTES de los 20 mseg...

A lo mejor es lo que me pasaba a mi tambien.. :mrgreen:
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado chacruna

  • PIC10
  • *
  • Mensajes: 41
Re: Problema con cotrol de servos y 16F84A
« Respuesta #29 en: 13 de Febrero de 2009, 15:35:59 »
Probaste de medir la salida del pwm con el servo conectado o siempre sin conexión.

La salida la medí de las dos maneras y siempre obtuve la señal "pseudo-correcta".

Otra cosa, configura el puerto A todo como salida pues se te puede inducir ruido en estos pines y hacer que el micro se pierda.

Buen dato  :idea:

Probaste con Delay_ms ??

Esto que dice Pablo es parte la diferencia normal del cristal y parte el resto de instrucciones del programa.
Prueba asi como esta a ver si bajando a casi 19,5 mseg el periodo te funciona.
Los servos esperan un pulso de periodo ANTES de los 20 mseg...
Tambien probe con delay_ms pero era lo mismo.

El tema de que los servos esperen ANTES el pulso puede ser un tema, voy a probar variando esos valores un poco.

De todos modos voy a comprar un micro servo de otra marca para ver que onda.

Muchas a gracias a los dos!!!