le 05-25-2016 12:45 PM
salut tous le monde, donc pour ma part j'aimrais savoir comment procédé afin d'affiché plusieurs variable issue d'une carte arduino, en utilisant NI-VISA .... les calcue je pourrais pas les faire sur labview, je doit les faire sur arduino et puis je devrais les affiché sur l'interface labview pour le moment mon programme arduino dispose de 3 serial.print ( 3 variable a affiché) quand j'exécute les trois variable s'affiche dans le même buffer de lecture hors que moi j'aimerais que chaqu’une soit affiché dans un buffer spécifique ..... et merciii
le 05-26-2016 02:01 AM
Double post inutile [http://forums.ni.com/t5/Discussions-au-sujet-des-autres/arduino-labview-serial-communication/m-p/330...]
le 05-26-2016 02:03 AM
Bonjour,
Pas besoin de faire de triple post, un seul aurait suffi.
Comme il n'y a pas de code de présenté je dois prendre ton probleme avec beaucoup d'hypothèses, je suppose que ton probleme est dans le traitement de la chaine que l'arduino te renvoie.
Il faut couper cette chaine (buffer) pour recréer le nombre de variable générer par l'arduino. (certainement avec l'outil "sous ensemble d'une chaine")
bon courage !
le 05-26-2016 05:18 AM
oui vraiment dsl, c'est la premiere fois que je pose une question içi, je suis qu'un simple debutant avec labview ..... pour le code arduino bah le voila ( en bas) il est assez simple, il dispose d'un analoge read ( que je aimrais visualisé sur un graphe) et puis il me calcule le nombre de pic dont dispose le signal ( dans mon cas c'est un signal ECG, nombre de batement par minute) et se nombre je doit l'affiché dans un buffer ...... je doit utulisé NI-VISA ( je doit faire les calcule avec arduino ( nombre de pic ) apres les envoyé à labview, psk surement ya un moyen de les calcule sans passé par arduino mais dans mon cas il faut que sa soit sur arduino .... et dsl d'avoir fait un triple poste ..... ( je suis qu'un bleu faut me pardonné ) et merci
volatile unsigned long cnt = 0;
unsigned long temps=0;
void setup() {
Serial.begin(9600);
}
void loop() {
float ECG = analogRead(A0);
float ECGV= (ECG*5)/1024;
Serial.println(ECG);
if ( ECGV >2.5)
{cnt++;}
long time = millis() - temps;
if (time > 600)
{ Serial.print("BPM=");
Serial.println(cnt);
temps=millis();
cnt=0;
}
delay(1);
}
le 05-26-2016 05:34 AM
Il faut utiliser les outils disponible dans le dossier chaine, pour manipuler la chaine du buffer et extraire les données.
le 05-26-2016 07:04 AM
merci Fanka.m c'est tres gentille de ta part ..... comme tu m'a dit j'ai utulisé "sous ensemble d'une chaine" mais le problemme c'est que le nombre de pic s'affiche que pendant les 300ms que j'ai là .... hors que moi j'aimrais que le nombre de pic s'affiche tt le temps et que leurs valeurs change tous les 1mn .... je sais pas trop si je doit revoire mon programme arduino ou bien quoi ..... jspr que tu arrive a me comprendre .... merci d'avance
le 05-26-2016 07:37 AM
C'est pas tres clair, tu parles de tout le temps est apres "leurs valeurs" change toutes les minute...
Donne des noms à tes variables comme ca je pourrais savoir de quoi tu parles.
si j'extrapole je me dit que tu veux récuperer les valeurs en temps réel pour afficher les valeurs, mais aussi les stocker dans un tableau pour afficher la minute écoulé....
Dans ce cas il faut crée un tableau et stocker les valeurs au fur et a mesure quelles sont envoyés par l'arduino.
Donne plus de detail pour quel'on puisse comprendre ton besoin.
Si tu post le VI ca aide aussi.
le 05-26-2016 07:57 AM
je pense que c'est bon , c'est le programme arduino qu'il fallait change ....... je voulais savoir pour ce qui est des graphe deroulant ..... le temps sur l'ax des x je pense que c'est une combinisant entre le delay de l'arduino et le temps qu'on a fixé sur le vi ..... je voulais savoir comment faire pour avoir le temps rééel , par exemple mon signal ça periode est de 0.8 seconde mais là sur l'axe des x la periode est de 150 !!!! et merci d'avance