le 07-24-2019 09:34 AM
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,
le 07-26-2019 12:45 AM
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 ++; }