Discussions au sujet de NI LabVIEW

annuler
Affichage des résultats de 
Rechercher plutôt 
Vouliez-vous dire : 

Arduino et codeur

Bonjour,

 

J'explique mon projet :

J'ai un codeur incrémental à 2 voies A et B ( +alimentation 5V) branché sur un arduino uno. Je branche ma PIN 2 à A et ma PIN 3 a B  (digital) et la masse à GND. Mais le problème c'est qu'avec LabVIEW je n'arrive pas à lire mon nombre d'impulsions. ou bien de tracé les signaux A et B. 

 

Quelqu'un peut m'aider? 

Je joins mon VI en pièce jointe

 

Cordialement,

0 Compliments
Message 1 sur 2
2 000 Visites

Salut,

 

En fait avec ton VI tu ne lis que la valeur actuelles des inputs. Soit la valeur 0 ou 1. Ce qui n'est pas correct car toi tu cherches la valeur de compteur.

 

Tu vas peut-être te dire qu'il faut simplement compter, c'est à dire incrémenter une valeur lorsque l'input 2 passe de 0 à 1, mais ça ne va pas marcher car c'est beaucoup trop lent du côté de Labview à cause de la communication série.

 

Ce qu'il faut faire, c'est effectuer le comptage du côté de l'arduino. Modifier le sketch en y ajoutant un compteur, et rendre sa valeur disponible par Labview.

 

Du côté Arduino, un interrupt sur l'entrée A devrait faire l'affaire. Si A passe de 0 à 1 et B = 0, alors incrémentation. Si A passe de 0 à 1 et B = 1 alors décrémentation. 

 

Exemple de code :

volatile unsigned long pulseCount;

void setup() {
   // usual stuff
   attachInterrupt(0, countPulse, RISING);
}

void loop() {
  // whatever
}

void countPulse() {
   pulseCount ++;
}

 

 

0 Compliments
Message 2 sur 2
1 955 Visites