Autor Tema: 16F84-Cómo crear pulsos PWM cuyo ancho varie segun un cursor??  (Leído 9174 veces)

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

Desconectado lovando

  • PIC16
  • ***
  • Mensajes: 193
RE: 16F84-Cómo crear pulsos PWM cuyo ancho varie segun un cursor??
« Respuesta #15 en: 10 de Julio de 2004, 20:39:00 »
Huro, exactamente....

El tema es que, necesitas esos 3,9 Khz realmente???.....aunque el tmr0 da la libertad de ejecutar codigo independiente de su incremento/decremento, = puede ser que necesite menos e 3,9 Khz, y en eso estoy, analizando cuanto es lo que en realidad necesito....en todo caso, estamos uper bien con el tema codigo, apenas tenga una demo te aviso.....

Chaoilin

Desconectado Chile_irc

  • PIC12
  • **
  • Mensajes: 66
RE: 16F84-Cómo crear pulsos PWM cuyo ancho varie segun un cursor??
« Respuesta #16 en: 12 de Julio de 2004, 21:59:00 »
Hola denuevo, compañero aun no he pillado el link pero
estoy moviendo un servo motor de esos de radiocontrol
que usa PWM para funcionar y ya estoy usando rutinas de prueba para posisionarlo en 0° 90° y 180° con dos pulsadoes cuando se encienda el circuito el servo estara en 90° con un boton ira a 0° y con el otro a 180°
el servo para ello nesesita pulsos bien definidos por ejemplo
a 50HZ un pulso de 0,2 milisegundos va a 180° con 1.5 mili a 90° y con 2,2mili a 0° usando 6 rutinas (tanto para el pulso alto como para el bajo) la idea es poder llegar a incrementar el pulso con otro interruptor para asi poder controlar el recorrido total del servo paso a paso asi ke teniendo cualquier avance estaremos posteando aqui lo que pasa..  Saludos compañero.

bye bye.

Desconectado huro

  • PIC10
  • *
  • Mensajes: 36
RE: 16F84-Cómo crear pulsos PWM cuyo ancho varie segun un cursor??
« Respuesta #17 en: 13 de Julio de 2004, 12:05:00 »

    Hola pic-chi, la razón por la que te propuse las condiciones anteriores es que es mas fácil hacer el algoritmo con esas condiciones y casi la mayoría de cargas se manejan de esa manera, pero en realidad para desarrollar un progama embebido para microcontrolador necesitamos hacer un modelamiento matematico de la carga, y de esta manera escogeriamos los parametros adecuados para realizar el programa. Recuerdo que hace tiempo realicé uno de estos algoritmos en assembler, voy a ver si lo encuentro, de lo contrario lo vuelvo a construir y apenas lo tenga te comunico.  

     

Desconectado lovando

  • PIC16
  • ***
  • Mensajes: 193
RE: 16F84-Cómo crear pulsos PWM cuyo ancho varie segun un cursor??
« Respuesta #18 en: 20 de Julio de 2004, 22:41:00 »
Huro, siento aun no entregarte el esquema pues aun estoy modelando mi sistema......lo que si puedo decir, es que 3,9Khz es mucha frecuancia para lo que quiero...y por qué?

Pues porque se trata de lo sgte:

un conversor A/D de 8 bits con salida serial conectado al pic, a su vex el pic debe desplegar el valor corregido de la conbversion en un display 7 segmentos de 4 digitos......

Osea, estoy ocupando en la pura rutina matematica mas de 500 us  (lectura del conversor, aplico calculo matematico de correccion, luego paso a BCD)...osea, que el timer0 corriendo sin preescaler me provoca mucho problema y practicamente hace impracticable mi proyecto....asi...creo que usare un preescaler de 16......ya te cuento mas......

a proposito.....se requiere al menos 3 esquemas distintos de generacion pwm, uno para pequeños porcentajes de duty cicle, uno para valores medios, y otro para valores muy cercanos al overflow del tmr0......y esto se hace critico cuando el timer anda a 1us........en el caso que te comento de un preescaler de 16 la cosa cambia pues queda bastante tiempo mas para calcular los respectivos tiempos de duty cicle......lo que si hay que hacer, es que una vez que el sistema parte, tener el tmr0 cargado con un valor preestablecido que no afecte la aplciacion o al menos la haga funcionar normal....recordemos ue al escribir en el tmr0, su incremento se inhibe en los sgtes 2 ciclos...asi que hay que restar 2 a avalor calculado del tmr0...

Cuentame como has ido en tu algoritmo....

Un saludo

Desconectado Chile_irc

  • PIC12
  • **
  • Mensajes: 66
RE: 16F84-Cómo crear pulsos PWM cuyo ancho varie segun un cursor??
« Respuesta #19 en: 24 de Julio de 2004, 10:39:00 »
Hola colega ya estas metido con display.  interesante..
jaja lo que es yo toy mas abajo aun aunque no tengo claro para que es ese circuito o que se deve visualizar en display..

Bueno con respecto al famoso servo que te comente con modulacion de pulsos lo termine
y te dejo este link para ke veas el programa en ASM
esta todo explicado ahi de como funciona, esta probado lo arme y todo y controla el recorrido de un servo usando pwm

son 3 rutinas basicas una para posicionar en 0° otra en 90° y otra en 180°  estas rutinas pueden ser variables para cambiar de  Grados la posicion del servo, oviamente es el primer paso. te lo dejo por si te sirve alguna cosa de el.

Saludos..


http://www.aeromodelistasdechile.cl/otros/Futaba.txt


Desconectado lovando

  • PIC16
  • ***
  • Mensajes: 193
RE: 16F84-Cómo crear pulsos PWM cuyo ancho varie segun un cursor??
« Respuesta #20 en: 24 de Julio de 2004, 12:24:00 »
Bueno, el pwm genera voltajes deseado para la salida del tip142 (puede ser entre 5 y 25 volt).....el comparador compara este pwm con el voltaje en la resistencia de .1 ohm....

cuando este voltaje es superior al pwm, el comparador va a tierra y el diodo conduce probocando que el TIP142 se corte y no conduzca......

Esa es la idea, por ahora, el LCD despliega los valores medidos mediante en ADC0832.....

Tres cursores, uno para seleccionar rango de avance (1 bit o 10 bits de incremento para el tmr0)...y los otro dos ejecutan el incremento/decremento del duty)


Estos valores del TMR0 controlan el pwm......(el tmr0 debe cargarse en conplemento a 2 para el pulso bajo y normal para el alto)


Eso es....

Desconectado huro

  • PIC10
  • *
  • Mensajes: 36
RE: 16F84-Cómo crear pulsos PWM cuyo ancho varie segun un cursor??
« Respuesta #21 en: 26 de Julio de 2004, 15:04:00 »

  Hola pic-chi:   He estado viendo tu esquemático y me parece interesante la solución que le haces al LCD, usar sólo 3 pines del micro para controlarlo, tambien veo que quieres controlar el motor por lazo cerrado usando CAD serial. Bueno, vamos por partes, lo primero que tenemos que hacer son las rutinas para controlar el LCD y el CAD serial, y lo segundo es que me des los parametros encontrados de tu motor para poder hacer el algoritmo del PWM y controlar tu motor en forma adecuada.

Desconectado lovando

  • PIC16
  • ***
  • Mensajes: 193
RE: 16F84-Cómo crear pulsos PWM cuyo ancho varie segun un cursor??
« Respuesta #22 en: 26 de Julio de 2004, 21:11:00 »
Hola Huro

Le verdad es que no controlo un motor....por ahora deseo que el TIP142 se corte o sature segun al señal PWM, son solo 2 estados.....lo unico que cambia es el voltaje que permite pasar el TIP142, desde 0 a 25 volts (regulado por el transistor de proteccion)....

La señal es sensada en el extremo de abajo usando un LM358  y luego es comparada con la señal PWM, la cual varia de 0 a 255 pasos.....estoy pensando hacerlo con un preescaler de 16.....asi tengo tiempo para la rutina del ADC, del calculo matematico de la medicion, y del despliegue en el LCD de los resultados


No te he visto en el msn


Saludos

Desconectado huro

  • PIC10
  • *
  • Mensajes: 36
RE: 16F84-Cómo crear pulsos PWM cuyo ancho varie segun un cursor??
« Respuesta #23 en: 27 de Julio de 2004, 11:00:00 »

   Me parece que no hay problema si usamos cualquier rango para controlar la carga, aqui vamos a darle prioridad al PWM, por lo tanto a esa parte lo hacemos trabajar por interrupción, las demas rutinas, la del LCD, el CAD serial, el teclado, retardos y los que vengan pueden trabajar en forma lineal. Y para no tener problemas en el control de la carga, porque en esta parte no debe haber errores, en el programa lineal, cada vez que se cambie de banco desactivamos la interrupción, de esta manera evitamos que se pierda la linealidad del programa cuando ocurra la interrrupción.



Desconectado lovando

  • PIC16
  • ***
  • Mensajes: 193
RE: 16F84-Cómo crear pulsos PWM cuyo ancho varie segun un cursor??
« Respuesta #24 en: 27 de Julio de 2004, 22:56:00 »
Hola Huro

Me parece atinada tu apreciacion......

Debo decirte que aunque PWM s nuestro objetivo.....nod ebo dejar de aldo las otras cosas, pues estan incluidas en mi proyecto y afectan el diseño del PWM....


Pero de todas maneras, usando un factor de 16 permite olgadamente manejar los tiempos dejados por el TMR0 para ejecutar las otras rutinas...

Ya estoy casi terminnado la parte de recuperacion de datos desde el ADC0832...pronto la pingo en el post.....toda vez la tenga probada en mi protoboard   ( o proteus)

Te pido por favor leas el App note N°: 654....es en ese codigo en cual me estoy basando, usa dos esquemas de generacion pwm....uno para pulsos intermedios (29 pasos < duty < 228 pasos) y otro para pulsos cortos , de hasta 29 pasos de duty tanto en HIGH como en LOW..

Es muy inetresante la forma que lo logra....

Estamos en contacto.....y espero tus opiniones respecto de ese paper

Saludos desde Chile