el 05-30-2010 01:49 AM
Buenas tardes, tengo una duda acerca de como hacer un conversor de digital a análogo, mi proyecto adquiere un dato digital por puerto serial, ese dato ya lo tengo convertido a decimal, según las ecuaciones matemáticas tengo que dividir ese dato para que me muestre el voltaje que se debe estar enviando, pero la cuestión es, como hago para que mi programa sepa cuantas veces tiene que dividir?, se que es con una sumatoria, pero en realidad no se como manejar esa parte, he utilizado un comparador, para que cuando el valor este entre el rango entre 5 y 0 deje de dividir, pero no se muy bien como hacer la conversión, cualquier colaboración se los agradecería.
el 05-30-2010 11:57 PM
Hola, perdona pero tu problema no es nada claro. Según lo que he entendido, tu lees una señal desde un microcontrolador externo y de esta medición debes sacar un dato que vas a trasmitir a un un conversor para sacar una señal análoga: ¿correcto? Y tu problema es transformar la medición análoga que tienes (p.ej. 8.24) a algo que el conversor entienda y ejecute correctamente.
Bueno: si es así, para hacer el cálculo tu tienes que conocer dos elementos: la resolución de tu conversor externo y el rango máximo de la señal análoga que este saca. Asumiendo que tu conversor es de 12 bits (esto es tiene 4096 valores distintos, desde 0 hasta 4095) y que esto saca 10 V en su máximo, el valor que tienes que darle para obtener los 8.24 de arriba es:
valor por obtener / máxima salida análoga * resolución conversor
en el ejemplo:
8.24 / 10 * 4096 = 3375
que es el valor que tienes que enviar a tu conversor para obtener la señal análoga.
el 05-31-2010 12:13 AM
hola roberto, mira, mi proyecto consiste en tomar los datos de un sensor a travez de puerto serial, para poder enviar los datos utilice un microcontrolador PIC16F877A, con el cual mando la señal en digital, una vez obtenida esa señal en digital tengo que transformarla en analogica, esta señal que estoy recibiendo la necesito pasar a voltaje porq deacuerdo con eso podre establecer una distancia.
hasta el momento lo que tengo es lo siguiente:
recibo el dato del sensor en digital ya lo tengo en binario
una vez en binario tengo que dividirlo entre dos hasta que el dato se convierta en un valor entre 5 y 0 voltios, ese dato es el que necesito para despues multiplicarlo por la pendiente de la recta que se obtiene al comprar el voltaje con la distancia, y una vez multiplicados me dara la distancia que he medido.
pero no tengo ni idea de como hacer la conversion en labview, tengo claro que la resolución debe ser de 2a la n, en la cual n es de 8 bits que son los datos que estoy recibiendo, es decir 256 o de 0 a 255 pero en realidad ya estoy bloqueada. cualquier colaboracion te la agradesco enormemente.
el 05-31-2010 12:27 AM
el 05-31-2010 12:37 AM
el 05-31-2010 01:43 AM
Perdona, había equivocado.
Lo que tienes que hacer es calcular el valor análogo que corresponde a un decimal recibido poer el conversor.
Vale el procedimiento que te indicaba antes, pero al revés. La idea es partir de una simple proporción:
valor análogo : valor "binario" = máximo análogo : máximo binario
esto es:
valor análogo = valor binario / máximo binario * máximo análogo
en tu caso, si el conversor del pic es de 8 bits, si recibes un valor 156 esto equivale a
valor análogo = 156 / 256 * 5 = 3.05 V
Puede que me equivoque, pero lo que indicabas tú de la división por 2 es un método para convertir de decimal a binario (y tendrías que considerar los restos: mira aquí :Short division by two with remainder).
Por último me cabe una duda: si el conversor es de 8 bits ¿porqué construyes un valor U16 paqueteando dos bytes desde el mensaje del PIC?
el 05-31-2010 03:17 AM