Comment l'encodeur rotatif fonctionne avec Arduino!

Un encodeur rotatif est un excellent périphérique d'entrée pour tout projet tel que le menu d'une imprimante 3D. Donc, dans ce tutoriel, nous apprendrons comment fonctionne un encodeur rotatif et comment l'utiliser avec Arduino.

Alors, commençons!

Étape 1: regardez la vidéo!

Si vous ne voulez pas lire tout ce que vous pouvez regarder ma vidéo, ce sera beaucoup plus facile à comprendre.

Étape 2: Présentation

Un codeur rotatif, également appelé codeur d'arbre, est un dispositif électromécanique qui convertit la position angulaire ou le mouvement d'un arbre ou d'un essieu en signaux de sortie analogiques ou numériques.

Il existe deux principaux types d'encodeur rotatif

1) Absolue - La sortie d'un codeur absolu indique la position actuelle de l'arbre, ce qui en fait un transducteur d'angle.

2) Incrémental - La sortie d'un codeur incrémental fournit des informations sur le mouvement de l'arbre, qui sont généralement traitées ailleurs en informations telles que la position, la vitesse et la distance.

Remarque: L'un que nous utilisons dans notre projet est de type incrémental, nous allons donc nous concentrer sur cela.

Étape 3: Qu'est-ce que l'encodeur rotatif incrémental?

Un encodeur incrémental signalera immédiatement les changements de position (dans le sens horaire et antihoraire), ce qui est une capacité essentielle dans certaines applications. Cependant, il ne rend pas compte ou ne garde pas la position absolue. Par conséquent, le système mécanique surveillé par un codeur incrémental peut devoir être déplacé vers un point de référence fixe pour initialiser la mesure de position.

Étape 4: Construction et travail

J'en ai un dans cette carte de dérivation qui contient déjà les résistances de pull-up requises.

Il a cinq broches - horloge, données, commutateur, Vcc, GND

Construction:

Le bouton que nous faisons tourner est connecté en interne au disque (Pic - 2). Si nous tournons dans le sens horaire ou antihoraire, il se déplacera en conséquence. La partie grise est GND et les points de contact dorés sont connectés à Vcc. Il y a deux points de contact placés à une distance spécifique qui ne sont rien d'autre que notre ligne CLOCK et DATA.

Travail:

Lorsque nous faisons tourner notre encodeur, les deux sorties changeront en fonction de la position de l'encodeur. Ce qui va générer deux trains d'impulsions.

Si vous regardez attentivement, ces deux signaux seront déphasés de 90 degrés. Si l'encodeur tourne dans le sens des aiguilles d'une montre, CLOCK mènera et si l'encodeur tourne dans le sens inverse des aiguilles, alors DATA mènera.

Et en examinant le changement d'état dans le sens horaire, deux signaux auront des valeurs opposées et pour les mêmes valeurs dans le sens antihoraire.

Et maintenant, si nous programmons notre Arduino en conséquence, nous pouvons le faire fonctionner avec notre projet.

Étape 5: programmation

Exemple 1: (Counter.ino)

Maintenant, dans cet exemple, CLK est connecté à la broche 3, DT à 4 et SW à 5, puis nous avons quelques variables pour stocker les données. Dans la section de configuration des vides, CLK, DT et SW sont définis en entrée, puis démarrent la commande série et stockent ici la position actuelle dans le dernier état

Dans la section de boucle vide d'abord, nous lisons l'état actuel de l'horloge et en l'utilisant, vérifiez-la si elle a changé.

Si l'état! = Dernier état signifie qu'il a changé de position. Et si data! = State alors CW else CCW qui augmentera ou diminuera le compteur en conséquence.

Ensuite, en utilisant l'impression en série, la variable de compteur est imprimée. Et si le commutateur est enfoncé, le compteur sera réinitialisé à 0 et l'imprimera, à la fin, mettez l'état dans le dernier état

Exemple 2: (LEDBrightness.ino)

Dans cet exemple, j'ai mis la valeur du compteur dans la fonction d'écriture analogique et utilisé la fonction de contrainte pour limiter la rage entre 0-255 afin qu'elle fonctionne

Remarque: il est préférable d'ouvrir le code dans Arduino IDE et de le lire une fois

Pièces jointes

  • Counter.ino Télécharger
  • LEDBrightness.ino Télécharger

Étape 6: Merci!

Découvrez JLCPCB
Prototype de PCB à 2 $ (10pcs, 10 * 10cm): //jlcpcb.com

Voilà si vous aimez mon travail

N'hésitez pas à consulter ma chaîne YouTube pour plus de choses impressionnantes: //www.youtube.com/c/Nematics_lab

Vous pouvez également me suivre sur Facebook, Twitter, etc. pour les projets à venir

//www.facebook.com/NematicsLab/

//www.instagram.com/nematic_yt/

//twitter.com/Nematic_YT

Articles Connexes