1. #1
    Membre à l'essai
    Homme Profil pro
    biologiste
    Inscrit en
    mai 2012
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : biologiste
    Secteur : Santé

    Informations forums :
    Inscription : mai 2012
    Messages : 30
    Points : 16
    Points
    16

    Par défaut Problème de communication entre labview et une carte arduino

    bonjour à tous,
    Je viens vous car j'ai un petit problème de programmation!!
    Je m'explique :
    j'ai crée un vi pour piloter 3 valves avec une carte arduino par labview en utilisant "LIFA"

    Jusque la tout va bien :-)
    Maintenant j'aimerai rajouter un bouton poussoir afin de passer en mode manuel c'est à dire contrôler mes valves via d'autres interrupteur pour me permettre de les purger.

    donc d'un côté, j'ai le pilatage labview et de l'autre un pilotage manuel (arduino).

    j'ai tenter de mettre le code (arduino) de l'interrupteur dans la void loop mais labview n'arrive plus à communiquer avec la carte !!

    Avez vous des idées pour me sortir de cette galère?

    dit moi si vous voulez le vi!

    MERCI PAR AVANCE

    voici le code téléversé dans l'arduino

    Code c : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
     
     
     
    /*********************************************************************************
     **
     **  LVFA_Firmware - Provides Basic Arduino Sketch For Interfacing With LabVIEW.
     **
     **  Written By:    Sam Kristoff - National Instruments
     **  Written On:    November 2010
     **  Last Updated:  Dec 2011 - Kevin Fort - National Instruments
     **
     **  This File May Be Modified And Re-Distributed Freely. Original File Content
     **  Written By Sam Kristoff And Available At www.ni.com/arduino.
     **
     *********************************************************************************/
     
     
    /*********************************************************************************
     **
     ** Includes.
     **
     ********************************************************************************/
    // Standard includes.  These should always be included.
    #include <Wire.h>
    #include <SPI.h>
    #include <Servo.h>
    #include "LabVIEWInterface.h"
     
    /*********************************************************************************
     **  setup()
     **
     **  Initialize the Arduino and setup serial communication.
     **
     **  Input:  None
     **  Output: None
     *********************************************************************************/
    const int buttonPin  = 2;    // broche dédié au bouton
    const int ledPin     = 9;   // broche dédié à la led 
     
    int buttonState      = 0;    // état du bouton
    int lastButtonState  = 0;     // ancienne état du bouton
    int ledState         = 0;   // état de la led 
     
    void setup()
    {
      // Initialize Serial Port With The Default Baud Rate
      syncLV();
     
      // Place your custom setup code here
     
      pinMode(buttonPin, INPUT); // entrée
      pinMode(ledPin, OUTPUT);  // sortie
     
      digitalWrite(7, LOW);    
      digitalWrite(4, LOW);    
      digitalWrite(5, LOW);    
      digitalWrite(6, LOW);    
    }
     
    /**  loop()
    **
    **  The main loop.  This loop runs continuously on the Arduino.  It
    **  receives and processes serial commands from LabVIEW.
    **
    **  Input:  None
    **  Output: None
    *********************************************************************************/
    void loop()
    {
     
      // Check for commands from LabVIEW and process them.
     
      checkForCommand();
      // Place your custom loop code here (this may slow down communication with LabVIEW)
     
     buttonState = digitalRead(buttonPin);//lecture de l'état du bouton
      //Serial.println(buttonState);
        //Serial.println(lastButtonState);
     
      // si l'état du bouton est différent de l'état précedent
      if (buttonState != lastButtonState) 
      {
        if (buttonState == 1) // si l'état du bouton est high
        { 
          if(ledState==1) 
          ledState=0;
          else            
          ledState=1;         
        }
        lastButtonState = buttonState; // nouvelle état du bouton
        //Serial.print(lastButtonState);
      }
     
      digitalWrite(ledPin, ledState);// 
      delay(20);// délais anti-rebond
      //Serial.println(ledState);
     
      if (acqMode == 1)
      {
        sampleContinously();
     
       }
    // fin de la boucle globale
    }

  2. #2
    Membre à l'essai
    Homme Profil pro
    biologiste
    Inscrit en
    mai 2012
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : biologiste
    Secteur : Santé

    Informations forums :
    Inscription : mai 2012
    Messages : 30
    Points : 16
    Points
    16

    Par défaut

    bonsoir,
    finalement, je suis directement passé par le port USB en utilisant VISA ce qui ma permis de mieux gérer le reste de mon programme!
    l'arduino n'a pas besoin de programmation particulière de cette manière !
    ;-)

  3. #3
    Expert éminent
    Avatar de Auteur
    Profil pro
    Inscrit en
    avril 2004
    Messages
    6 660
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : avril 2004
    Messages : 6 660
    Points : 9 461
    Points
    9 461

    Par défaut

    bonjour,

    si je me base sur ce qui est ici :
    http://innovelectronique.fr/2012/05/...e-for-arduino/

    A priori tu n'as rien à télécharger dans l'arduino, c'est labview qui s'en charge. Dans le second exemple qui consiste à l'ire l'état d'un interrupteur, tu as la voie 8 en sortie et la voie 7 en entrée. Dans la boucle while tu lis en permanence l'état de l'entrée 7 avec le VI "Arduino Read".

Discussions similaires

  1. Réponses: 7
    Dernier message: 12/08/2010, 11h40
  2. [Labview 8.6] Entrées / sorties d'une carte NI 9401
    Par ptit_knard dans le forum LabVIEW
    Réponses: 1
    Dernier message: 05/07/2010, 11h48
  3. Problème de communications entre threads
    Par maya09 dans le forum Windows
    Réponses: 1
    Dernier message: 22/02/2006, 22h18
  4. Réponses: 2
    Dernier message: 08/08/2005, 21h30
  5. [MFC] communication entre onglets d'une fenêtre
    Par bigboomshakala dans le forum MFC
    Réponses: 12
    Dernier message: 29/05/2004, 12h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo