Discusiones sobre Productos NI

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

inicio en labview, adquisicion de datos, graficar

hola, estoy tomando una señal con un adc de 12 bits que despue va al pic 18f4550 y por usb(protocolo cdc que emula el puerto serie con usb) lo mando a la pc y en labview configuro el puerto serial. mi consulta  que el byte que llega al read del visa como lo tranformarlo para graficar con el factor de conversion 5 volts/4095 cuentas xq es un adc de 12 bits como para empezar.

0 kudos
Mensaje 1 de 7
5.660 Vistas

Serialmente solo se pueden enviar Bytes , así que los 12 bits del conversor análogo se tienen que enviar en dos Bytes  por el puerto serial   (separar parte alta y parte baja), luego en LabVIEW cuando llegue el mensaje; se tiene que unir de nuevo los dos bytes para que arroje el resultado correcto, esto se haría con la funcion " Join Number " o con la funcion "Type cast" por ejemplo.



Ing. Jonathan E. Cruz Ortiz

ENERGÍA PROACTIVA S.A.S

Cel : (+57) 3173669343 - (+57) 3124451894

0 kudos
Mensaje 2 de 7
5.645 Vistas

esto lo que tengo en CCS

 

int16 tension16bits;

 

 tension16Bits=make16(tensionh,tensionl);

 

envio esto:

printf(usb_cdc_putc,"%ld",tension16Bits);

 

despue en el read visa en byte acount lo pongo el valor de 4, y despue los multiplico por 5/4096 y da.. no se si esta mal lo que hago..

Mensaje 3 de 7
5.642 Vistas

Hola Martinutn,

 

La respuesta de Jokelnice me parece muy bien. También te recomiendo wue puedes apoyarte en consultas previas semejantes, las cuales puedes encontrar en estos mismos foros como una forma de complementar:

 

http://forums.ni.com/t5/LabVIEW/i-want-to-send-10-bit-ADC-from-PIC-via-serial-communicaton-i/td-p/51...

 

http://forums.ni.com/t5/forums/searchpage/tab/message?filter=labels&q=PIC+adc+

 

 

Saludos!

 

>Daniel C.

0 kudos
Mensaje 4 de 7
5.592 Vistas

hola gracias, hice esto(adjunto la imagen) donde el byte count esta en valor 4 y desde ccs mando esto en Hex por usb osea esto anda para un sensor (supongo que hago bien):

 

printf(usb_cdc_putc,"%x",Temph);
printf(usb_cdc_putc,"%x"Templ);

 

pero quiero ademas mandar otro igual al anterior pero de otro sensor  y y el byte count lo deberia poner en 8, la pregunta es, como hago para seleccionar la primera cadena de 4 para un sensor y las otra 4 para el otro sensor por eje:

   

 

                                           S2       S1

en el read buffer llegaria [2BFF FF4B)].

0 kudos
Mensaje 5 de 7
5.585 Vistas

Puedes intentar jugar cambiando los tipos de datos a string y uilizando las funciones de sitring para separar los caracteres y luego re convertirlos al tipo de dato requerido. 

 

"String Subset Function -"
http://zone.ni.com/reference/en-XX/help/371361H-01/glang/string_subset/

 

"Search/Split String Function"
http://zone.ni.com/reference/en-XX/help/371361L-01/glang/search_split_string/

 

"String Functions"
http://zone.ni.com/reference/en-XX/help/371361H-01/glang/string_functions/

 

Saludos,

 

Daniel C.

0 kudos
Mensaje 6 de 7
5.491 Vistas

use algunos de eso, al parecer anda y por lo menos grafico, fijate lo que adjunto el programa labview para ver si esta bien, la secuencia que llega al read es:    

 

     S1                  S2

A  FFC3     B      83FF  donde la A y la B separan las 2 secuencia S1 y S2 obvio que va todo junto haciendo 10 bytes (bytes acount)

     Hex                 Hex

0 kudos
Mensaje 7 de 7
5.489 Vistas