TODOPIC
Microcontroladores PIC => Todo en microcontroladores PIC => Mensaje iniciado por: ENCARPA en 16 de Octubre de 2004, 09:39:00
-
Amigos, quisiera hacer una convercion AD de un rango de tenciones que valla de 2.5v a 0v y con eso generar un PWM.
Con 2.5v el PWM debe estar al minimo ò "0" y con 0v debe estar en el maximo Duty cicle.
El problema que tengo es que no se como hacer eso precisamente, que el PWM sea inversamente proporcional al muestreo de tenciones.
Mi idea era hacerlo en asembler ya que es el lenguaje con el que mejor me llevo.
Gracias, 
-
Saludos!!!... jejejeje pues muy sencillo!!!!..... solo tienes q ver q resolucion tiene el adc q estas usando para saber cuantos pasos vas a dar entre 0 y 2.5 voltios al tener esta informacion puedes hacer una tabla y cada vez q leas un valor del adc lo ubicas con su opuesto en la tabla y lo mandas al pwm!!!... espero te ayude!


-
Pero, ¿con una tabla no llenaría un montón de líneas de código?
Yo creo que si tienes las dos variables:
V=mV leídos por el ADC
P=frecuencia del PWM expresado en porcentaje
se trata únicamente de expresar la variable V también en porcentaje y luego restar:
V"=V*100/2,5 aquí se adapta la variable V a porcentaje
P=100-V" y aquí se hace el PWM inverso al V
Claro, esto en ASM no tengo ni idea de cómo se hace pero supongo que será más corto que haciendo una tabla.
-
bueno pero es q todo depende de la resolucion de la variable de el!!! si la variable tiene resolicion de 1 voltio o de 500mV la tabla saldra a lo sumo en 4 valores.... tienes q especificar mas!!!
-
Invirtiendo los bits , tendras la lectura inversamente proporcional .
creo que la ins es " COMF "
-
ACERTADO!!!..... no se me ocurrio en el momento..... exactamente eso es lo q tienes q hacer complementas el dato y listo!!!!
-
Pues no lo había pensado, pero es cierto, invirtiendo los bits es lo mismo que si hiciera:
V"=256-V
-
Voy a enredar un poco...

Y si el duty sólo llega a 200. De 0 a 200. Y no me refiereo a porcentaje eeeein!!!
Para que serviría entonces complementar la lectura del AD.
Y no se yo en cuantos casos el duty va a ser de 0 a 255 justos....
Saludos jejeje
-
bueno entonces o se programa la funcio para yevar el voltaje a porcentaje o se implementa la tabla!
-
En ese caso, si usas las fórmulas que escribí antes, donde ponía 100, pones 200 y ya está.
-
Amigos de utilizar la opcion de complementar los registros utilizando la instruccion COMF estos registros serian adresH y adresL no?
La resolucion es de 10bit en un 16f873 y los incrementos quisiera que fuesen de a 250mv.