Discusiones sobre Productos NI

cancelar
Mostrando los resultados de 
Buscar en lugar de 
Quiere decir: 

Como hacer un conversor digital a análogo?

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.

0 kudos
Mensaje 1 de 7
8.615 Vistas

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.

 



Proud to use LW/CVI from 3.1 on.

My contributions to the Developer Community
________________________________________
If I have helped you, why not giving me a kudos?
0 kudos
Mensaje 2 de 7
8.604 Vistas

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.

 

0 kudos
Mensaje 3 de 7
8.600 Vistas
la conversión hay que hacerla en labview de digital a analogo
0 kudos
Mensaje 4 de 7
8.598 Vistas
roberto disculpa, mas bien te puedo molestar con que me revises esta partesita?, se supone q tengo el dato en binario y lo divido entre dos muchas veces hasta que sea menor que 5, y luego lo multiplico por 1.1 y me debe mostrar que salio, eso lo hice mediante el nodo de formula, formula node, ya lo estoy correindo pero no me muestra nada a la salida, que podra ser?, es solo revisar el nodo de formula, te lo recomiendo muchisisisisimo.graciaslabv1.JPG
0 kudos
Mensaje 5 de 7
8.593 Vistas

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?



Proud to use LW/CVI from 3.1 on.

My contributions to the Developer Community
________________________________________
If I have helped you, why not giving me a kudos?
0 kudos
Mensaje 6 de 7
8.587 Vistas
muchas gracias Roberto, tu aporte me ayudo mucho con el problema, aunque resulte haciendolo por otro lado, pero igual si funciono, muchas gracias de verdad.
0 kudos
Mensaje 7 de 7
8.582 Vistas