arduino + labview = acquisition de données

Bonjour à tous,

Voilà je souhaiterai savoir afficher la température via Labview et une carte arduino, je m’explique :

j’ai branché un thermocouple à ma carte via un max31855, et je souhaiterai simplement lire la température via l’arduino et l’afficher sur labview mais je répète une simple lecture, le traitement de la température étant toujours du coté arduino.

voici le programme que j’utilise sur la carte pour le traitement du signal thermocouple :

#include  <MAX31855.h>

// ***** PIN DEFINITIONS *****
const  unsigned  char thermocoupleSO = A0;
const  unsigned  char thermocoupleCS = A1;
const  unsigned  char thermocoupleCLK = A2;

MAX31855  MAX31855(thermocoupleSO, thermocoupleCS, thermocoupleCLK);

void  setup()
{
  Serial.begin(57600);
}

void  loop()
{
  double  temperature;
  
  // Retrieve thermocouple temperature in Degree Celsius
  temperature = MAX31855.readThermocouple(CELSIUS);
  Serial.print("Thermocouple temperature: ");
  Serial.print(temperature);
  Serial.println(" Degree Celsius");
  
  // Retrieve cold junction temperature in Degree Celsius
  temperature = MAX31855.readJunction(CELSIUS);
  Serial.print("Junction temperature: ");
  Serial.print(temperature);
  Serial.println(" Degree Celsius");
  
  delay(1000);
}

Merci.

Il suffit de ire le port série par Labview.

oui ca j'avais compris mais comment lire cette valeur sur labview et l'afficher ?

En plus y'a une lib arduino sur labview : http://sine.ni.com/nips/cds/view/p/lang/fr/nid/209835

Oui j'ai déjà ce toolkit et je l'utilise pour utiliser une carte arduino en simple interface I/O, et c'ets labview qui se charge de traiter les données.

Mais maintenant je souhaiterai uniquement récupérer via la com série, les valeurs traitées par l'arduino, labview ne serai qu'une simple interface visuelle.

ex : arduino traite la température d'un thermocouple via un max31855 ( ex: 20 °c) et transmet ensuite cette valeur à labview pour l'afficher.

http://innovelectronique.fr/2012/05/04/arduino-et-lifa-labview-interface-for-arduino/

Il semble possible de manipuler le port i2c, j'imagine que le SPI également ...

Bonjour, Il est possible de lire tout équipement série en utilisant les VI

  • VISA configure
  • VISA open
  • VISA write
  • VISA READ
  • VISA close

J'ai un projet où l'arduino fait de l'acquisition de données sur un ADC en I²C, la valeur est enregistrée dans une variable. Suivant la commande envoyée via LabView, il renvoie par le port serial la valeur. Ca fonctionne très bien.

Le toolkit permet d'utiliser l'arduino comme un système d'acquisition, mais pas comme un µP exécutant des routines spécifiques. Dans le cas du toolkit le pc a toute l'intelligence, l'arduino n'exécute que les commandes passées. Dans le cas présenté, vous avez la possibilité d'utiliser à la fois le pc pour le datalogging, présentation des information, et l'arduino comme un élément intelligent faisant l'application bas niveau.

je te remercie pour ces précision teslaboy,

oui en effet je souhaite simplement récupérer les valeurs traitées et transmises par l'arduino, donc nul besoin du toolkit dans ce cas là.

Par contre j'ai bien essayé de créer un VI en utilisant VISA READ mais comme je suis un grand débutant labview, aurais tu une base à me transmettre.

Merci.

Bonjour, voici en annexe une bride de code permettant de recevoir la donnée envoyer par le code arduino suivant :

int index=0;

void setup()
{
  Serial.begin(9600);
  
}

void loop()
{
  Serial.println(index++);
  if(index>999)
    index=0;
  delay(500);
}

Le 2000 permet de diminuer le timeout lors de la lecture qui est à la base à 10 secondes. C’est accessoire, juste que c’est moins embêtant en cas de problèmes :).

code.PNG

Super je te remercie, je vais essayé cela.

ca marche, par contre comment faire pour afficher la température sous forme de thermometre.

merci.

Mike74:
ca marche

Super, content de l’entendre.
Pour l’affichage en thermomètre, l’objet se met dans la face avant et est dans les indicateurs numériques. La capture d’écran peut t’aider.

Je te remercie mais pour la partie face avant je sais mais c'est pour la partie diagramme, car on ne peut pas raccorder directement l'afficheur thermomètre sur le buffer de lecture .

Effectivement, Dans le diagramme que je t'ai envoyé, j'affiche une chaine de caractères. Tu peux utiliser le VI "Chaine Fract/Exp en nombre". Suivant le fait que tu utilises une virgule ou un point pour la décimale, tu devras câbler l'entrée "utiliser le séparateur du système" avec un booléen. Tu peux trouver ce VI dans Chaîne > Chaîne/Nombre.

J'espère t'avoir mis sur la piste ;)

Super ! merci ;)

Maintenant que cela fonctionne avec une variable, comment filtrer et afficher plusieurs variables transmises par l'arduino, comme par exemple la température de plusieurs capteurs, etc.... ? :roll_eyes:

Mike74:
Maintenant que cela fonctionne avec une variable, comment filtrer et afficher plusieurs variables transmises par l’arduino, comme par exemple la température de plusieurs capteurs, etc… ? :roll_eyes:

Comme signalé en MP, à toi de définir un protocole sur ton arduino.
Ton arduino n’envoie la valeur que sur demande. A toi de t’arranger pour qu’il comprenne ce que tu demandes comme canal :).

Desolé, je n’avais pas vu le post, uniquement le MP envoyé après. Ainsi, tout le monde profite de la réplique.

code.PNG

Super ! je te remercie et vais bosser sur cette base, je posterai le code une fois validé avec plusieurs valeurs.

Ok, bon courage. Si besoins je peux tuyauter :).