Potentiomètres vs Encodeurs rotatifs et comment les utiliser avec Arduino

Parmi les composants électroniques de contrôle de l’utilisateur, les boutons rotatifs se distinguent comme étant parmi les plus satisfaisants à utiliser. Ils peuvent compléter les écrans tactiles et d’autres dispositifs d’entrée, tout en fonctionnant bien avec des boutons et des interrupteurs. Mais comment ajouter un bouton à vos propres projets Arduino ?

Vous avez deux options principales : un potentiomètre ou un encodeur rotatif. Ces composants peuvent sembler similaires, mais les méthodes pour les utiliser avec un appareil comme une carte de microcontrôleur Arduino sont très différentes. Voyons comment ils se comparent l’un à l’autre.

Potentiomètres et codeurs rotatifs

La plupart des potentiomètres et des encodeurs rotatifs que les bricoleurs rencontreront se présentent sous une forme similaire. Ils ont une base cubique ou cylindrique à laquelle sont attachées des pattes de connexion, ainsi qu’un arbre rond qui se tord et présente des découpes pour accueillir un capuchon.

Certains potentiomètres ont un aspect différent, notamment ceux qui se présentent sous la forme de longues glissières, comme ceux que l’on trouve sur les tables de mixage. En ce qui concerne les potentiomètres rotatifs, cependant, à première vue, ils sont presque identiques aux encodeurs rotatifs, de sorte que l’on peut penser qu’il s’agit de la même chose.

Qu’est-ce qu’un potentiomètre ?

Un potentiomètre est essentiellement une résistance variable. Lorsque l’on tourne l’arbre, la résistance à l’intérieur du potentiomètre change, ce qui permet à l’utilisateur de modifier les propriétés d’un circuit sans avoir à le reconstruire. Les potentiomètres peuvent être à la fois analogiques et numériques, mais les potentiomètres numériques imitent les potentiomètres analogiques, ce qui rend leur utilisation très similaire.

Les potentiomètres ont toujours un point de départ et un point d’arrivée définis où l’arbre ne peut plus être tourné. Certains potentiomètres ont un aspect bosselé lorsqu’on les tourne, mais beaucoup sont également lisses, comme ceux que l’on trouve sur les vieilles chaînes stéréo.

Bien qu’ils soient analogiques, les potentiomètres fonctionnent bien avec les microcontrôleurs. Vous pouvez facilement configurer un potentiomètre avec un Raspberry Pi Pico ou un Arduino.

Qu’est-ce qu’un encodeur rotatif ?

Les encodeurs rotatifs déterminent la position de leur arbre à l’aide d’un capteur pour fournir un signal analogique ou numérique à l’appareil auquel ils sont connectés. Ce signal indique à l’appareil la position dans laquelle se trouve le codeur. Outre l’arbre rotatif, les codeurs rotatifs sont généralement dotés d’un bouton intégré qui est actionné en poussant l’arbre vers le bas.

Voir aussi :  Maîtriser la communication série avec Arduino

Contrairement aux potentiomètres, les encodeurs rotatifs peuvent tourner sans s’arrêter, et ils ont presque toujours des bosses tactiles pour chaque position de l’arbre. De nombreuses voitures modernes utilisent des encodeurs rotatifs pour contrôler leurs systèmes de divertissement.

Comment utiliser un potentiomètre avec un Arduino

Grâce à leur conception simple, l’utilisation d’un potentiomètre avec un Arduino est simple. Votre potentiomètre possède trois connecteurs : masse, sortie et vref. Les broches de masse et vref se connectent respectivement aux connecteurs GND et 5V de votre Arduino, tandis que la broche de sortie du potentiomètre se connecte à l’une des entrées analogiques de votre carte.

Code du potentiomètre Arduino

Le code de votre potentiomètre Arduino commence par le code de base setup() et loop() que vous verrez lorsque vous créerez un nouveau fichier dans l’IDE Arduino. Tout d’abord, ajoutez un const int au début du code pour enregistrer la connexion de la broche analogique du pot – dans ce cas, A0.

Ensuite, la variable setup() est simple : il suffit de déclarer la broche de votre potentiomètre comme entrée. Vous pouvez également démarrer une connexion série si vous souhaitez envoyer des données à votre PC à des fins de diagnostic.

Ensuite, il est temps de configurer la fonction loop() de la fonction loop(). Commencez par créer un fichier int à l’aide de la fonction analogRead() pour enregistrer la position de votre potentiomètre. Ensuite, vous pouvez utiliser la fonction map() pour réduire la taille de la valeur que vous traitez – dans cet exemple pour correspondre aux spécifications PWM, par exemple pour contrôler la luminosité d’une LED. Ajoutez un court délai pour assurer la stabilité.

Maintenant que vous avez la position de votre potentiomètre, vous pouvez l’utiliser avec d’autres parties du code. Par exemple, un si fonctionnerait bien pour déclencher du code lorsque le potentiomètre est dans une position spécifique.

Comment utiliser un encodeur rotatif avec un Arduino

Les encodeurs rotatifs nécessitent un code plus complexe que les potentiomètres, mais ils restent assez faciles à utiliser. Votre encodeur rotatif possède cinq broches : la masse, VCC, une broche bouton (SW), la sortie A (CLK) et la sortie B (DT). Les broches de masse et VCC se connectent respectivement aux connecteurs de masse et 5V de votre Arduino, tandis que les broches SW, CLK et BT se connectent aux connecteurs numériques individuels de l’Arduino.

Voir aussi :  Explorer les différents types de microcontrôleurs Arduino

Code du codeur rotatif Arduino

Pour rendre notre code plus simple et plus facile à utiliser, nous utiliserons la bibliothèque SimpleRotary Arduino créée par MPrograms sur GitHub. Assurez-vous d’avoir installé cette bibliothèque avant de commencer à travailler sur votre code.

Tout comme votre code de potentiomètre, vous pouvez commencer votre script d’encodeur rotatif avec l’Arduino de base. setup() et loop() modèle de fonction. Commencez par déclarer la bibliothèque SimpleRotary et affectez les broches de votre codeur dans cet ordre : CLK, DT et SW.

Vous n’avez pas besoin d’ajouter quoi que ce soit à votre fonction setup() sauf si vous souhaitez utiliser le moniteur série pour diagnostiquer votre encodeur rotatif.

La fonction loop() est une autre histoire. La détermination de la rotation de l’arbre du codeur commence par une fonction rotary.rotate() qui est assigné à une fonction int variable. Si le résultat est 1, le codeur tourne dans le sens des aiguilles d’une montre. Si le résultat est 2, le codeur tourne dans le sens inverse des aiguilles d’une montre. Le résultat sera toujours 0 si le codeur n’a pas tourné depuis la dernière vérification.

Vous pouvez utiliser si pour déclencher d’autres codes en fonction du sens de rotation du codeur.

Vous devez également ajouter du code pour le bouton de votre encodeur à l’instruction loop() à la fonction loop() . Ce processus est très similaire, sauf que vous utiliserez la fonction rotary.push() plutôt que la fonction rotary.rotate().

Ce script est très simple et vous pouvez le personnaliser. Il vaut la peine de consulter la documentation du projet SimpleRotary pour s’assurer que vous utilisez toutes ses fonctionnalités clés. Une fois assemblé, votre code d’encodage devrait ressembler à ceci.

Comment choisir entre les potentiomètres et les encodeurs rotatifs pour les projets

Comme vous pouvez le constater, les encodeurs rotatifs et les potentiomètres fonctionnent de manière très différente. Ces deux composants vous offrent de nouveaux moyens de contrôler vos projets électroniques, mais lequel choisir ?

Les potentiomètres sont abordables et faciles à utiliser, mais ils ne permettent qu’une plage d’entrée limitée. Ils sont donc parfaits pour contrôler la luminosité d’une LED, pour augmenter ou diminuer la puissance de certains composants et pour d’autres tâches similaires.

Voir aussi :  Comment convertir gratuitement des fichiers FBX en OBJ ?

Les encodeurs rotatifs offrent beaucoup plus de possibilités que les potentiomètres. L’inclusion d’un bouton-poussoir signifie qu’ils sont parfaits pour les systèmes de commande de menu, comme on le voit dans de nombreuses voitures modernes. Ce type de composant est devenu très populaire dans le domaine de la construction de claviers mécaniques. Vous pouvez même construire un petit macropad avec un encodeur intégré.

Un aspect similaire, des composants différents

Avec toutes ces informations en main, vous devriez être prêt à vous lancer dans un projet électronique avec un potentiomètre ou un encodeur rotatif. Ces composants peuvent vous permettre de contrôler les circuits que vous construisez, mais vous devez vous assurer que vous choisissez la bonne option pour votre projet.

S’abonner à notre lettre d’information

Quelle est la différence entre un potentiomètre Arduino et un encodeur rotatif ?

La différence la plus évidente entre les potentiomètres rotatifs et les encodeurs est que les encodeurs peuvent tourner en continu dans les deux sens, alors que les potentiomètres ne peuvent tourner qu’à une distance déterminée dans le sens des aiguilles d’une montre ou dans le sens inverse avant de devoir s’arrêter.

Comment utiliser un encodeur rotatif avec Arduino ?

Câblage d’un encodeur rotatif à un Arduino Les connexions sont assez simples. Commencez par connecter la broche +V du module à la sortie 5V de l’Arduino et la broche GND à la terre. Connectez ensuite les broches CLK et DT aux broches numériques n°2 et n°3, respectivement. Enfin, connectez la broche SW à la broche numérique n°4.

Comment utiliser un potentiomètre avec Arduino ?

Connectez les trois fils du potentiomètre à votre carte. Le premier va de l’une des broches extérieures du potentiomètre à la masse. Le deuxième va de l’autre broche extérieure du potentiomètre à 5 volts. Le troisième va de la broche centrale du potentiomètre à la broche analogique A0.

Quels sont les avantages des encodeurs par rapport aux potentiomètres rotatifs ?

Le principal avantage de l’utilisation d’un codeur rotatif par rapport à un potentiomètre est qu’il peut tourner indéfiniment dans la même direction. En revanche, un potentiomètre tourne généralement d’un tour, et ceux qui ont la meilleure résolution tournent au maximum dix fois.

Cliquez pour évaluer cet article !
[Total: Moyenne : ]

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *