À l'aide d'un bouton rotatif avec AVR Micro contrôleur

Je vais avoir du mal à trouver un encodeur rotatif pour fonctionner correctement avec AVR micro-contrôleurs. L'encodeur est une mécanique ALPES de l'encodeur, et je suis en utilisant Atmega168.

Clarification

J'ai essayé d'utiliser une Interruption Externe pour écouter les broches, mais il semble que c'est trop lent. Lorsque la Broche de haute, l'interruption de la procédure commence et vérifie ensuite si la Broche B est élevé. L'idée est que si la Broche B est élevée, le moment Broche passe à l'état haut, il est contre-rotation dans le sens horaire. Si la Broche B est faible, alors qu'il est en rotation dans le sens horaire. Mais il semble que le RÉGULATEUR prend trop de temps à vérifier la Broche B, il est donc toujours lire aussi élevé.

J'ai aussi essayé de créer un programme qui bloque tout simplement jusqu'à ce que la Broche B ou la Broche de changements. Mais il se pourrait qu'il y est trop de bruit lorsque le codeur de rotation, parce que cela ne fonctionne pas non plus. Ma dernière tentative était d'avoir un timer qui stocke les 8 dernières valeurs dans une mémoire tampon et vérifie si elle va de faible à élevé. Cela ne fonctionne pas non plus.

J'ai essayé de portée de l'encodeur, et il semble qu'il utilise entre 2 et 4 ms à partir de la première Broche de change jusqu'à l'autre Pin changements.

InformationsquelleAutor Marius | 2008-08-29