banner
Maison / Nouvelles / Potentiomètres vs encodeurs rotatifs et comment les utiliser avec Arduino
Nouvelles

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

May 22, 2023May 22, 2023

Les potentiomètres et les encodeurs rotatifs semblent presque identiques à première vue, mais ils fonctionnent de différentes manières. Découvrez comment utiliser les deux avec un Arduino.

Parmi les composants électroniques de contrôle de l'utilisateur, les boutons rotatifs se distinguent comme l'un des plus satisfaisants à utiliser. Ils peuvent compléter les écrans tactiles et autres périphériques d'entrée, tout en fonctionnant bien avec les boutons et les commutateurs. Mais comment pouvez-vous ajouter un bouton à vos propres projets DIY 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 les uns aux autres.

La plupart des potentiomètres et encodeurs rotatifs que les bricoleurs rencontreront se présentent sous un facteur de forme similaire. Ils ont une base cuboïde ou cylindrique avec des pattes de connecteur attachées et un arbre rond qui se tord et a des découpes pour qu'un capuchon puisse s'asseoir.

Certains potentiomètres ont un aspect différent, comme ceux qui se présentent sous la forme de longues diapositives, comme ceux que l'on trouve sur les platines de mixage de musique. En ce qui concerne le type rotatif, cependant, à première vue, ils semblent presque identiques aux encodeurs rotatifs, vous seriez donc pardonné de penser qu'ils sont identiques.

Un potentiomètre est essentiellement une résistance variable. Lorsque l'arbre est tourné, la résistance à l'intérieur du potentiomètre change, permettant à un 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 les rend très similaires à utiliser.

Les potentiomètres ont toujours un point de départ et un point final définis où l'arbre ne peut plus être tourné. Certains potentiomètres ont une sensation cahoteuse lorsqu'ils sont tournés, mais beaucoup sont également lisses, comme ceux que l'on trouve sur les anciennes 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 Arduino.

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. Cela indique à l'appareil dans quelle position se trouve l'encodeur. Outre l'arbre rotatif, les encodeurs rotatifs ont généralement également un bouton intégré qui est actionné en poussant l'arbre vers le bas.

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

Grâce à leur conception simple, utiliser un potentiomètre avec un Arduino est simple. Votre potentiomètre a 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.

Votre code de potentiomètre Arduino commence par la baseinstallation()etboucle() modèle que vous verrez lorsque vous créerez un nouveau fichier dans l'IDE Arduino. Tout d'abord, ajoutez unconst entiervariable au début du code pour enregistrer la connexion de la broche analogique du pot, dans ce cas, A0.

Suite à cela, leinstallation() fonction est simple : il vous suffit de déclarer la broche de votre potentiomètre en entrée. Vous pouvez également démarrer une connexion série si vous souhaitez envoyer des données à votre PC pour des diagnostics.

Ensuite, il est temps de configurer leboucle() fonction. Commencez par créer unentiervariables à l'aide de lalectureanalogique() fonction pour mémoriser la position de votre potentiomètre. Suite à cela, vous pouvez utiliser lecarte() pour réduire la taille de la valeur à laquelle vous avez affaire, 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, unsiLa déclaration fonctionnerait bien pour déclencher le code lorsque le potentiomètre est dans une position spécifique.

Les encodeurs rotatifs nécessitent un code plus complexe que les potentiomètres, mais ils sont toujours assez faciles à utiliser. Votre encodeur rotatif a cinq broches : la masse, VCC, une broche de 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 à des connecteurs numériques individuels sur l'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 que cette bibliothèque est installée avant de commencer à travailler sur votre code.

Tout comme votre code de potentiomètre, vous pouvez démarrer votre script d'encodeur rotatif avec l'Arduino de baseinstallation()etboucle() modèle de fonction. Commencez par déclarer la bibliothèque SimpleRotary et affectez vos broches d'encodeur dans cet ordre ; CLK, DT et SW.

Vous n'avez rien à ajouter à votreinstallation()sauf si vous souhaitez utiliser le moniteur série pour diagnostiquer votre encodeur rotatif.

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

Vous pouvez utilisersiinstructions pour déclencher un autre code en fonction du sens de rotation de l'encodeur.

Vous devez également ajouter du code pour le bouton de votre encodeur auboucle() fonction. Ce processus est très similaire, sauf que vous utiliserez lerotatif.pousser()fonction, plutôt querotatif.rotate().

Ce script est assez simple et vous pouvez faire beaucoup pour vous l'approprier. Cela vaut la peine de consulter la documentation du projet SimpleRotary pour vous assurer que vous utilisez toutes ses fonctionnalités clés. Une fois assemblé, votre code d'encodeur devrait ressembler à ceci.

Comme vous pouvez le constater, les encodeurs rotatifs et les potentiomètres fonctionnent de manière assez différente. Ces deux composants vous offrent de nouvelles façons de contrôler vos projets électroniques, mais lequel choisir ?

Les potentiomètres sont abordables et faciles à utiliser, mais ne permettent qu'une plage d'entrée limitée. Cela les rend parfaits lorsque vous souhaitez contrôler la luminosité d'une LED, ou augmenter et réduire la puissance allant à des composants spécifiques, et d'autres tâches similaires.

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

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

Samuel est un rédacteur technologique basé au Royaume-Uni, passionné par tout ce qui concerne le bricolage. Ayant démarré des entreprises dans les domaines du développement Web et de l'impression 3D, en plus d'avoir travaillé comme écrivain pendant de nombreuses années, Samuel offre un aperçu unique du monde de la technologie. Se concentrant principalement sur des projets de technologie de bricolage, il n'aime rien de plus que partager des idées amusantes et passionnantes que vous pouvez essayer à la maison. En dehors du travail, Samuel peut généralement être trouvé en train de faire du vélo, de jouer à des jeux vidéo sur PC ou de tenter désespérément de communiquer avec son crabe de compagnie.

FAIRE UTILISER LA VIDÉO DU JOUR FAIRE DÉFILER POUR CONTINUER AVEC LE CONTENU setup() loop() const int setup() loop() int analogRead() map() if setup() loop() setup() loop() rotary.rotate() int si boucle() rotatif.push() rotatif.rotate()