Je développe un prototype qui utilise un encodeur en quadrature pour mesurer son déplacement linéaire. L'encodeur est fixé au corps du prototype et a une roue dans son arbre. Lorsque le prototype avance tout droit, le codeur mesure la distance linéaire. Tous les problèmes autour de la conversion entre les unités linéaires / angulaires ont été résolus.
La raison de mesurer la distance avec un encodeur est que j'ai BESOIN de savoir à chaque fois que le prototype a parcouru exactement 1 mm (1 millimètre = 0,0393 pouce). Chaque fois qu'il se déplace de 1 mm, PIC active un autre système.
La façon dont cela a été fait avant de commencer à travailler dessus est de lire l'encodeur avec un PIC (16F688) dans ses ports d'E / S. C'était plutôt correct, mais quand j'ai ajouté certaines fonctionnalités au code PIC, si la vitesse linéaire du prototype est supérieure à ~ 1,77 in / s (~ 45 mm / s), PIC commence à manquer le nombre d'encodeurs.
I 'ai essayé d'utiliser l'IOC (interruption en cas de changement) de portA pour lire le signal en quadrature (canaux A et B) mais ce n'était pas efficace.
Je sais qu'il y a des dsPIC mais je dois résoudre ce problème dans ma carte et je n'ai que 14 broches pour le faire lol. J'ai donc trouvé ce PIC16F1825 qui a une fréquence plus élevée (4x). Est-ce que (ma basse fréquence PIC) pourrait être mon principal problème ??
Je pensais utiliser les signaux LFLS7183 UP / DOWN avec le minuteur / compteur de PIC ou autre compteur IC afin de réduire la quantité de signalisation vers PIC. Cela fonctionnerait-il? Quel compteur dois-je utiliser? Je n'ai pas 8 broches dans mon PIC à utiliser comme dans celles http://goo.gl/2Wc3d.
Mon encodeur n'est pas mon problème, j'ai coché et il peut suivre jusqu'à 76 pieds / s pour mon rayon de roue.