Problema arduino uno y can bus shield

Hola a todos,
soy nueva por aquí y tengo una duda que tal vez me ayudéis a resolver.
Tengo una serie de programas hechos en lab view, en los que me quiero comunicar con un bus CAN formado por varios sensores.
Para que el PC se comunique con el bus he utilizado un arduino uno y un CAN bus shield conectados.
Para que el arduino uno entienda LabView le he cargado el programa de LIFA_Base.ino que aparece en la libreria LabVIEW Interface for Arduino, y este funciona, puesto el PC reconoce el arduino.
Pero al conectarle la shield de CAN bus no funciona y al enviar mensajes a los sensores el programa no me funciona.
¿Alguién sabe a que es debido?
Gracias

Un par de cosas:

Como conectas el arduíno al Pc para que se comunique con LabView, serie?

Qué CAN shield utilizas? tienes puestas las resistencias de finalización en el BUS?

El CAN shield por su cuenta con el arduíno opera bien con los sensores? Sin conectar a LabView?

Si no pones el código podremos ver qué está pasando.

un saludo!

Hola! Lo conecto con el puerto serie si.
Utilizo el CAN Shield de sparkfun. Si tengo puestas las resistencias de finalización en el bus.
No se si el CAN Shield opera bien por su cuenta, por que el programa para que opere está realizado en LabVIEW.
¿Que código necesitas? Al arduino únicamente le he programado el programa LIFA_Base que según tengo entendido es lo único que necesita para “entender” LabVIEW.
Lo pongo adjunto.

LIFA_Base.ino (1.88 KB)

La verdad que desconozco como funciona el LIFA_Base, pero yo probaría primero que el CAN shield opere correctamente, si utilizas la shield de sparkfun ellos mismos tienen una librería sencillísima de usar y así sales de duas de si el shield está fallando y luego ya puedes meterte en ver que está sucediendo al comunicar el arduíno con LabView.

Porque una cosa es "entender" LabView y otra diferente es programar al arduíno desde LabView.

Un saludo!

A ver... creo que hay un problema conceptual!!

Cuando usas LIFA_base.ino te olvidas de todo lo demas que le quieres cargar al Arduino.
Ahora no le estas pasando librería ni nada que VEA el CAN_BUS

Debes MODIFICAR LIFA_fase.ino para que soporte tus códigos, sabes como hacerlo?

Hola!
no, eso es lo que no se hacer....
Tengo que utilizar las librerías del CAN Shield? o como?

Gracias

Tienes que modificar LIFA_base.ino de modo que algo que envies por Labview como comando sea enviado por Serial entendido por el Arduino, que usara CAN como ya lo has probado y entonces si, devolverá los datos y tu en Labview haras lo que quieras hacer.

Otro camino es: olvidate de LIFA y usa puerto Serie y comunicate en Serie con Arduino y Labview.

Crea una serie de comandos ida/vuelta tal que a algo que envies desde Labview, le responda arduino con valores leidos del CAN BUS.

Me comprendes?

Muchas gracias por tu ayuda, ya lo he solucionado.
He instalado el firmware de LINX y ya me funciona. :smiley:

Puedes explicar que es lo que funciona porque mira este comentario en el foroum Labview dedicado a LINX

CAN Network with Arduino

From the link you posted I found this Arduino library for the CAN controller. If you look into the .cpp file you can see that it is using SPI under the hood. So you have two options. You could either use the LINX SPI Vis to recreate the functionality from the Arduino library in LINX, or you could build your own custom version of the LINX firmware that uses custom commands to call those CAN functions, then create VIs to call your custom functions.