Autor Tema: control servo  (Leído 2680 veces)

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

Desconectado calcius

  • PIC10
  • *
  • Mensajes: 45
control servo
« en: 01 de Noviembre de 2004, 05:17:00 »
Buenas a todo... una pregunta.Como controlais vosotros los servos trucados para que giren 360º? yo lo estoy controlando en 300Hz con ciclos de control entre 1 y 2 ms pero el problema esque a veces se satura y produce un zumbido, se que lo ideal seria controlarlo en el rango de 50-100Hz pero me parece que no puedo llegar a esas frecuencias con el PWM de pic(correjirme si estoy equivocado)

Desconectado fenix_jn

  • PIC18
  • ****
  • Mensajes: 418
RE: control servo
« Respuesta #1 en: 01 de Noviembre de 2004, 10:45:00 »
Hola, bueno apenas estoy comenzando a leer sobre el PWM en los PICs, encontre un documento en la pagina de microchip q habla acerca de hasta 123 Hz de PWM, con el inconveniente de necesitar un clock de 2 MHz.

El documento PDF esta en http://ww1.microchip.com/downloads/en/AppNotes/00594b.pdf

Desconectado odukec

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 174
RE: control servo
« Respuesta #2 en: 02 de Noviembre de 2004, 14:46:00 »
Escrito originalmente por calcius
Buenas a todo... una pregunta.Como controlais vosotros los servos trucados para que giren 360º? yo lo estoy controlando en 300Hz con ciclos de control entre 1 y 2 ms pero el problema esque a veces se satura y produce un zumbido, se que lo ideal seria controlarlo en el rango de 50-100Hz pero me parece que no puedo llegar a esas frecuencias con el PWM de pic(correjirme si estoy equivocado)


Con PWM puedes generar pulsos aproximadamente hasta 19Khz con un cristal de 20Mhz y sin divisor en el timer 2, asi que el rango del que hablas no tiene ningún problema en generarlo.

Para calcular el periodo se usa esta formula
(1/clock) x 4 x divisor_timer_2 x (periodo(0-255)) esto es valido para lenguaje c, no se para assembler.

Para que funcione el servo 360º hay que destaparlo y hacer modificaciones mecanicas, esto es a un piñon en el interior quitarle una "pestaña" o "tope", esto depende el modelo del servo, asi que lo mejor es destaparlo y "echarle cabeza" Idea
En realidad no es dificil esta tarea, claro esta que estas modificaciones son dificilmente reversibles asi que hay que tener la seguridad de hacerlo, sobretodo porque un servo es costoso, si no sabes busca en google y hay sale mas info.

Saludos

Desconectado fenix_jn

  • PIC18
  • ****
  • Mensajes: 418
RE: control servo
« Respuesta #3 en: 02 de Noviembre de 2004, 18:56:00 »
De acuerdo a la documentacion que tengo, un PWM a 20 MHz es capaz de manejar mas de 78KHz. claro con 8 bits de resolucion, mayor frecuencia menor resolucion.

Las formulas para calcular los periodos y el ciclo activo son:

TPWM = (PR2 + 1) * 4 * TOSC * TMR2 Prescaler

A partir de esta formula puedes despejar PR2 para FPWM deseada

La resolucion maxima viene dada por la formula:

TPWM = 2RESOLUCION * TOSC *TMR2 Prescaler

La resolucion sera usada para determinar el ciclo activo de un pulso PWM.

Formulas extraidas de PICmicro MID-RANGE FAMILY (DS31014A) de Microchip Technology Inc. 1997

Nota: En este mismo documento se encuentra valores de ejemplo para un PWM con frecuencia de 208.3 KHz.

Desconectado pocher

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 2568
RE: control servo
« Respuesta #4 en: 03 de Noviembre de 2004, 08:27:00 »
No son esos los números que me salen a mí. A mí me salen:

Para 2MHz: fmín=122Hz y fmáx=250KHz

Para 4MHz: fmín=244Hz y fmáx=500KHz

Para 20MHz: fmín=1,22KHz y fmáx=2,5MHz

Para 40MHz: fmín=2,44KHz y fmáx=5MHz

En fin, a ver si entre todos lo dejamos claro.

Un saludo



Desconectado calcius

  • PIC10
  • *
  • Mensajes: 45
RE: control servo
« Respuesta #5 en: 03 de Noviembre de 2004, 08:48:00 »
gracias por la info, pero no se si me explique mal o si no me entendisteis la pregunta, pero el caso es que yo ya tengo los servos trucados, les quite el tope mecanico y el potenciómetro lo sustitui por uno multivuelta, lo que pasa que para controlar la velocidad del mismo lo ideal seria hacerlo a 50-100hz como mucho poruqe asi lo que haces es engañar al servo con el punto de referencia y gira continuamente. lo que pasa es que con el pic no puedo llegar a esas frecuencias y lo he probado a 300 hz y funciona pero a la maxima velocidad, sin dejarme controlarla. como lo haceis vosotros?

Desconectado odukec

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 174
RE: control servo
« Respuesta #6 en: 03 de Noviembre de 2004, 12:12:00 »
Hola..

Disculpen .. entonces me equivoque.. la verdad lo máximo que e generado por PWM son 12Khz, y no se de donde generar frecuencias mas altas.. lo siento.

Saludos

Desconectado pocher

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 2568
RE: control servo
« Respuesta #7 en: 03 de Noviembre de 2004, 12:24:00 »
¿No puedes agenciarte un cristal de 2MHz o menor?


 

anything