TODOPIC
Microcontroladores PIC => Todo en microcontroladores PIC => Mensaje iniciado por: calcius 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)
-
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
-
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 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
-
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.
-
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
-
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?
-
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
-
¿No puedes agenciarte un cristal de 2MHz o menor?