From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.

Discusiones sobre Productos NI

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

Comunicar Arduino DUE con Labview 2012

Hola a todos,

 

Acabo de bajar la libreria de arduino para labview y me encontre con que los dispoitivos a seleccionar son: UNO, Mega 2560 y Dimuelanove w/atmega 328.

He buscado en los foros, pero no encuentro ningun tema que haga referencia a esta placa de Arduino DUE. es posible configurar la comunicacion para la placa de Arduino Due?, existe alguna libreria para este dispositivo?

 

Muchas Gracias.

0 kudos
Mensaje 1 de 35
9.451 Vistas

Hola muy buen día!

 

Desafortunadamente no existe una librería que puedas utilizar para programar este dispositivo en LabVIEW. Puedes encontrar más información en el siguiente link, 

 

LabVIEW for Arduino Due

http://forums.ni.com/t5/LabVIEW-Idea-Exchange/LabVIEW-for-Arduino-Due/idi-p/2082196

 

Saludos!

José Alberto G.
National Instruments
ELP Support Engineer
www.ni.com/soporte
0 kudos
Mensaje 2 de 35
9.439 Vistas

Hola Pablo,

 

       Aunque la libreria LIFA actual no funciona con el Arduino DUE, puedes comunicarte con LabVIEW sin ninguna libreria a traves del puerto serial Comunicación Serial Utilizando LabVIEW con un Microcontrolador

 

       Y debido a que quieres sacar provecho a toda la velocidad que presenta el DUE sobre los otros modelos, esa es la manera mas conveniente.

 

Saludos,

Luis A. Mata C.
Ing. Electrónico
Whatsapp: +58-414-1985579
BBM Pin: 2B83E99A
Thanks: Kudos
0 kudos
Mensaje 3 de 35
9.122 Vistas

Hola

 

Pero mediante l método que propones, sólo se puede mandar letras o palabras al puerto serie

Se podrían enviar números? Mi caso es qeu no se puede (aun) conectar Labview con Arduino Due y lo que querría es que los datos numéricos generados en mi programa de Labview fueran enviados a DUE.

¿Cómo podría hacerlo?

 

Muchas gracias!

0 kudos
Mensaje 4 de 35
8.709 Vistas

Hola errubens04,

 

       Aunque las funciones write y read de VISA para escribir y leer del puerto serial utilizan son strings, la realidad es que cada caracter de ese string tiene un numero equivalente en la tabla ascii que es en realidad el byte (8 bits) que se esta enviando, asi que en principio puedes mandar cualquier cosa descompuesta en bytes, lo importante es que definas una trama que te permita luego del otro lado tomar esos bytes y rearmar el tipo de datos que querias, por ejemplo un entero de 32bits lo tendrias que mandar como 4 bytes.

 

       SI tienes la idea intentalo, sino indica exactamente cuales son esos numeros y con que tipo de datos lo estas representando para tratar de ayudarte.

 

Saludos,

Luis A. Mata C.
Ing. Electrónico
Whatsapp: +58-414-1985579
BBM Pin: 2B83E99A
Thanks: Kudos
0 kudos
Mensaje 5 de 35
8.706 Vistas

Hola! Gracias por contestar tan rápido

Mi programa es un generador de ondas. Mediante Labview, se genera una onda senoidal, cuadrada o triangular, a la frecuencia y amplitud que indique el usuario mediante el panel de control. La señal generada a la salida es la que debe ser la entrada del Arduino DUE (como entrada PWM) para que, a través de su DAC interno, transforme la señal a analógica y la muestre en un osciloscopio tal como la hemos diseñado en Labview.

 

Muchas gracias por tu ayuda

0 kudos
Mensaje 6 de 35
8.702 Vistas

Hola errubens04,

 

     El DAC del Arduino puede trabajar hasta 12bits, eso implicaria que necesitas enviar 2 bytes con 16 bits para cada nuevo valor si quieres trabajar a full resolución.

 

     Como prueba inicial para que te familiarices con el proceso vamos a ir de menos a mas, y vas a tomar tu señal de tu generador de ondas y la vas a convertir a un numero entero entre 0 y 255 (si no lo sabes hacer preguntame y te digo), luego ese byte lo vas a volver un string (puedes inicializar un arreglo de un elemento y usar byte array to string), y eso es lo que vas a enviar por tu puerto serial usando VISA Write. Y del lado del Arduino vas a fijar la resolucion del DAC a 8 bits, y cada vez que te llege un valor lo escribes en el DAC.

 

      Una vez que tengas lo anterior funcionando empezamos a idear para que trabaje a maxima resolucion, pero al enviar 2 bytes vamos a disminuir la frecuencia a la mitad, y es posible que tengamos que enviar hasta un tercer byte de sincronizacion que disminuiria la frecuencia máxima a un tercio.

 

Saludos,

       

Luis A. Mata C.
Ing. Electrónico
Whatsapp: +58-414-1985579
BBM Pin: 2B83E99A
Thanks: Kudos
0 kudos
Mensaje 7 de 35
8.700 Vistas

Hola de nuevo!

 

Me he vuelto a poner con ello. No se hacer el paso del string a un número entero entre 0 y 255.

Por otro lado, mi ordenador no tiene puerto serial tipo RS232, cosa que indicas en los requisitos.

 

Un saludo

0 kudos
Mensaje 8 de 35
8.577 Vistas

Hola,

 

"Me he vuelto a poner con ello. No se hacer el paso del string a un número entero entre 0 y 255."

 

Hay una función Strint to Byte Array, y otra funcion de Byte Array to String. Un Byte es un U8 es decir un entero sin signo de 8 bits. En la paleta de numeros hay conversiones entre los distintos tipos de numeros.

 

 

"Por otro lado, mi ordenador no tiene puerto serial tipo RS232, cosa que indicas en los requisitos."

 

Los Arduino tienen integrado un chip llamado FTDI232 (o algo asi) que te crea un puerto COM con un número (el mismo que usas para programar) y al que estas conectado por USB, pero que para efectos de leer y recibir se comporta igual que los puertos RS-232.

 

Saludos,

Luis A. Mata C.
Ing. Electrónico
Whatsapp: +58-414-1985579
BBM Pin: 2B83E99A
Thanks: Kudos
0 kudos
Mensaje 9 de 35
8.567 Vistas

Hola,

 

    Releyendo el post, tu generador genera valores entre dos numeros, digamos 0 y 5, si multiplicas la salida por 51, te da un numero entre 0 y 255, ese numero lo pasas a byte usando U8, y luego usas un build array al que le cableas ese unico elemento, y luego usas byte array to string, de esa manera tienes un string que representa ese valor, y que puedes escribir por el puerto serial usando la funcion write, de esta manera en el arduino solo lees lo que te llega y lo vas mandando al dac.

 

     Pruebalo y me dices que problemas tienes, sube alguna imagen, o escribe la parte del codigo en tu arduino.

 

Saludos,

Luis A. Mata C.
Ing. Electrónico
Whatsapp: +58-414-1985579
BBM Pin: 2B83E99A
Thanks: Kudos
0 kudos
Mensaje 10 de 35
8.566 Vistas