dans Hardware, Software

Utiliser un codeur incrémental avec la librairie rotaryEncoder

Bonjour à tous, Dans la série des composants élémentaires, nous allons parler aujourd’hui du codeur incrémental. En effet ce composant bien pratique est très utilisé dans la vie courante. Nous allons donc voir ensemble comment l’utiliser avec un Raspberry 🙂  

I) Qu’est-ce qu’un codeur incrémental

Mais avant toute choses, qu’est-ce qu’un codeur ? En image voici ce dont il s’agit : rotaryEncoder Un simple bouton à première vue, mais qui en plus de cela permet de détecter la rotation de la tête. En résumé, vous allez pouvoir détecter via le raspberry une pression sur la tête de ce bouton, mais aussi des signaux (impulsions) lors de la rotation sens horaire ou anti-horaire. La différence avec un simple potentiomètre est que la tête est en réalité une vis sans fin. Si vous aviez eu un potentiomètre vous vous seriez retrouvé bloquer au bout d’un moment à force d’avoir tourné dans un sens, ici avec notre vis sans fin, plus de soucis : il n’y a pas de limite dans un sens comme dans un autre.   Mais comment marche ce genre de système ? En quelques mots, il s’agit dans la plupart des cas d’un montage contenant une pièce mécanique qui tourne et laissant passer de la lumière à chaque rotation. De l’autre coté, à l’intérieur du codeur se trouve la plupart du temps pour faire court, un amplificateur et une résistance photosensible pour détecter la rotation dans un sens, et les mêmes composants pour la rotation dans le sens inverse. On détecte ainsi des impulsions qui sont déphasées d’un certain angle et permet de savoir, fonction de qui est en avance sur qui, dans quel sens vous êtes entrain de tourner votre codeur, ce qui importe est de savoir quel résistance récupère la première impulsion finalement. Bref, ces explications courtes et résumées ne seront pas mieux que de lire la documentation pour se représenter les choses. Pour plus d’informations, je vous ai donc mis ci-dessous la documentation du codeur que j’utilise :

http://partage.leblogdekzl.fr/raspberrypi/rotaryEncoder/PEC11.pdf

 

II) Montage électrique

Mais comment se branche ce type de composant ? Comme je le disais précédemment, il s’agit finalement d’un simple bouton et d’une vis sans fin. On va donc s’attendre à avoir un système en deux parties, voici donc le schéma du branchement qu’il faudra réaliser pour utiliser dans tous les cas le codeur. circuit C’est tout pour cette partie, à présent passons à la partie informatique! 🙂  

III) Librairie rotaryEncoder

Comme je le disais précédemment, le circuit que vous venez de réaliser est normalement le même quelque soit la librairie que vous allez utiliser. Pour ma part, j’ai réalisé la librairie rotaryEncoder, dans le but de vous simplifier la tâche, je n’ai pas non plus trouvé d’autres librairies fonctionnelles et simple d’utilisation, néanmoins je suis sûr qu’il doit bien en exister une !

http://partage.leblogdekzl.fr/rotaryEncoder/

Toutefois, j’ai mis un point d’honneur concernant la simplicité d’utilisation de cette librairie et documenté cette dernière, la documentation est disponible à ce lien : http://partage.leblogdekzl.fr/rotaryEncoder/doc/ et sera mis à jour à chaque nouvelle version de la librairie que j’aurai développé ! De plus, vous trouverez dans l’archive de la librairie un code raspi-encoder.cpp illustrant un exemple simple d’utilisation du codeur incrémental, si jamais la documentation ne vous suffit pas.  

Conclusion,

Au final, vous voilà avec un nouveau composant adapté sur Raspberry, vous permettant de concevoir des projets plus complexes. Néanmoins n’hésitez pas à m’écrire des commentaires si jamais vous avez des problèmes à utiliser cette librarie et que ma documentation n’est pas claire !

Laisser une Réponse à en melody Annuler la Réponse

Ecrire un Commentaire

Commenter