blogComment faire

Projets Arduino : Comment lire les encodeurs rotatifs Arduino

Les décodeurs rotatifs existent depuis des années. Ils peuvent être utilisés en robotique et notamment dans les moteurs pour détecter la direction et la vitesse. De plus, vous pouvez les utiliser pour les objectifs photographiques, les trackballs, les souris optomécaniques et, bien sûr, les projets Arduino. Tiens, on va en parler.
Les principaux composants des codeurs rotatifs sont :

  • Planche à pain
  • Fils de cavalier
  • Module codeur rotatif
  • cable USB

La plupart des encodeurs de base ont 3 broches et l’une d’entre elles est commune. Les autres broches peuvent changer d’état et être basses ou hautes, vous pouvez donc obtenir 4 combinaisons au total – 00, 01, 10 et 11. Ainsi, lorsque vous le tournez, votre contrôleur peut dire que vous étiez à 00, et maintenant vous sont à 01. Certains encodeurs peuvent avoir 4 ou 5 broches et ils sont un peu plus difficiles à utiliser.

Module codeur rotatif

Comment fonctionnent les encodeurs rotatifs ?

Voyons ses principes de fonctionnement. Il génère des impulsions carrées – l’encodeur a un disque avec des zones de contact qui sont connectées aux broches A, B et C. Les deux premières broches commencent à entrer en contact avec la broche C lorsque le disque commence à tourner pas à pas. Ensuite, les deux signaux de sortie d’onde carrée sont générés.

Vous pouvez utiliser n’importe quel signal de sortie pour déterminer la position de rotation et compter le nombre d’impulsions. Cependant, si vous souhaitez également connaître la direction, vous devez évaluer les deux sorties en même temps.

Par exemple, si vous avez deux signaux de sortie décalés de 90 degrés et que votre encodeur tourne dans le sens des aiguilles d’une montre, la sortie B est derrière la sortie A. Cela peut sembler déroutant au début, mais lorsque vous essayez ceci une fois, vous verrez que c’est très simple.

Il existe un moyen simple de programmer votre contrôleur Arduino pour lire le sens de rotation et la position de l’encodeur. Si la rotation de votre RT est dans le sens antihoraire, les signaux auront des valeurs égales. Ainsi, si vous comptez les pas à chaque fois que le signal passe de bas à haut ou de haut à bas, vous verrez que les signaux de sortie ont des valeurs égales.

Comme vous pouvez le voir, au lieu d’utiliser d’anciens potentiomètres analogiques, vous pouvez utiliser RT comme alternative. Les enregistreurs rotatifs se ressemblent beaucoup et vous pouvez les utiliser comme capteurs de rotation. Ils tournent continuellement et sont divisés en segments, il est donc plus facile de travailler avec eux.

Chaque mouvement dans le sens des aiguilles d’une montre ou dans le sens inverse des aiguilles d’une montre permet de fermer ou d’ouvrir des commutateurs et chaque segment a une sensation de clic. Il existe différents modèles RT et les modèles modernes ont un interrupteur momentané à poussoir avec 3 broches d’un côté (A et B sont les broches de codage et C est la broche de masse ou commune) et 2 broches de l’autre côté (interrupteur N/O contacts) pour l’interrupteur.

Quelles sont les interruptions ?

Il existe des broches spéciales qui peuvent arrêter votre Arduino à tout moment afin qu’il fasse autre chose avant de passer à l’étape suivante. Ces broches spéciales sont des broches d’interruption et même si vous ne pouvez en obtenir que quelques-unes sur Arduino, ces broches peuvent surveiller la chute, la hausse ou le changement.

Lorsque vous attachez une fonction d’interruption aux broches, elle arrête de tout faire et s’exécute pour une nouvelle fonction si un changement se produit. Même si cela peut être un peu trop pour les débutants car cela brise la nature linéaire des boucles Arduino, c’est un outil très puissant pour les experts.

Comme vous le savez peut-être, les variables globales utilisées dans les fonctions ont un nom : les variables volatiles. Ils peuvent changer leur valeur quand vous en avez besoin. Par exemple, si vous utilisez un volatile plusieurs fois dans une boucle, il peut avoir une valeur différente la deuxième fois s’il y a eu un changement dans la fonction d’interruption.

L’un des problèmes les plus courants avec la lecture de vos encodeurs est que très souvent, si votre contrôleur fait autre chose, comme exécuter le code, l’utilisateur commence à tourner le bouton. Si cela se produit, comment pouvez-vous vérifier rapidement les lignes d’entrée et ne pas manquer une hausse ou une baisse ?

Le fait est que lorsque vous manquez une montée ou une chute, vous perdez la position de l’encodeur. De plus, vous pourriez ne pas être en mesure d’interpréter la direction. Heureusement, vous pouvez utiliser des interruptions pour accomplir cette tâche.

Comme son nom l’indique, les interruptions mettent en pause l’action en cours. Si le code est en cours d’exécution et qu’un événement est qualifié d’interruption (par exemple, vous pouvez spécifier qu’une interruption se produit lorsque le signal passe de haut en bas), alors tout ce qui se passe sera mis en pause et le nouveau code sera exécuté.

En conséquence, l’utilisateur n’a pas à contrôler la synchronisation du code, ce qui est très utile car vous avez souvent une série d’opérations et il est facile de rater quelque chose.

Comment connecter un encodeur rotatif à votre Arduino ?

Lorsque vous devez connecter votre RT à Arduino, vous devez ajouter un anti-rebond avec la configuration pour éviter les erreurs d’encodage. C’est important car il y a deux morceaux de contacts métalliques dans l’encodeur rotatif et ils peuvent se toucher de manière imprécise comme dans un interrupteur mécanique. En conséquence, il se manifestera par des pas en arrière en avançant ou comme des pas manqués. Afin d’éviter cela, vous pouvez utiliser un filtre RC ou ajouter une ligne de code dans le logiciel.

Pour que tout soit encore plus facile, une bibliothèque d’encodeurs est disponible pour les utilisateurs d’Arduino, qui fera le travail difficile pour vous et déterminera l’étape et la direction. Tout ce que vous avez à faire est d’ajouter la bibliothèque à votre projet Arduino actuel et de vous assurer que vous utilisez les bonnes broches. Ensuite, définissez les broches de la bibliothèque et encodez-les.

Vous pourriez aussi aimer:

A lire :  Comment assembler avec Tinkercad
Bouton retour en haut de la page