Amélioré l’Arduino Rotary Encoder lecture

Encodeurs rotatifs sont des périphériques d’entrée grandes pour projets électroniques - j’espère que ce Instructable vous inspirera et vous aider à utiliser dans votre prochain projet.

Pourquoi écrire du code de l’encodeur rotatif ?

J’ai voulu utiliser un encodeur rotatif faible coût comme mécanisme d’entrée pour l’un de mes projets à venir et a été initialement abasourdi par les options de code disponibles pour prendre des lectures de l’encodeur rotatif et déterminer combien de "Crans" ou de cycles l’encodeur avait cliqué sur passé et dans quelle direction. Je pense que mon esquisse principale devront utiliser la plupart de la mémoire de mon Arduino, donc je suis en évitant les différentes bibliothèques disponibles encodeur, qui semblait être difficile de faire fonctionner quand j’ai essayé un couple d'entre eux. Ils semblent également utiliser beaucoup plus du budget code que les approches de code esquisse discutés d’ici.

Si vous voulez juste de contourner la pensée derrière mon approche et entrer directement dans le Instructable, n’hésitez pas à passer directement à l’étape 1 !

Autres approches

Plusieurs des principaux esquisse (c.-à-d. ils n’utilisent pas une bibliothèque) approches sont discutés dans le blog de rt post où ils écrivent le code bouton rotatif qui rend les encodeurs moins chers utilisable en tant qu’entrées de l’Arduino. Ils ont aussi un bon exemple de ce qu’ils signal logique qui produit de l’encodeur. RT a trouvé qu’un système de timer interrupt travaille mieux pour eux, mais je crains que la fréquence d’interrogation nuirait à la vitesse de mise à jour écran dans la boucle principale de mon esquisse de projet. Étant donné que la molette se déplacera pour une partie infime de l’époque, que je veux l’écran pour mettre à jour, cela semble une mauvaise correspondance pour mon application.

J’ai choisi de commencer en utilisant le code de Steve Spence ici, qui allait bien sur son propre, mais semble vraiment ralentir lorsque j’ai intégré le reste de mon code de sketch (ce qui implique d’écrire des mises à jour de l’affichage d’un petit écran TFT). Au départ, je me demandais si ça pourrait être parce que la boucle principale contient une instruction debounce.

J’ai ensuite lu article molette d’Oleg sur une version de routine d’interruption du service de son ancien poste, aussi, j’ai pensé qu’il pourrait être une bonne idée d’utiliser la manipulation directe de port de lire les deux axes simultanément et dès que l’interruption se déclenche. Son code peut être utilisé sur n’importe quel pin d’entrée si le code de manipulation de port est réécrite. En revanche, j’ai décidé d’utiliser seulement les interruptions matérielles sur les broches numériques 2 et 3, donc nous pouvons fixer des interruptions à ne tirer que sur un front montant de la tension de la broche, et non sur la broche changement de tension, qui comprend tombant coutures. Cela réduit le nombre de fois où que l’ISR est appelée, distrayant de la boucle principale.

Code d’Oleg utilise une table de recherche pour réduire la taille du code compilé une taille vraiment petit, mais je ne pouvais pas obtenir des résultats fiables qui attrape une rotation très lente ainsi qu’une rotation assez rapide. Gardez à l’esprit que matériel anti-rebond GPIO (voir étape 2) peut aider beaucoup avec fiabilité des lectures mais je recherchais une solution logicielle pour simplifier la construction de matériel et d’être aussi portable dans d’autres applications de matériel que possible.

Voilà qui termine l’introduction de mon défi et considérations. En étape 2, nous jetterons un regard sur le matériel de l’encodeur, terminologie et quelques considérations pratiques lorsque vous souhaitez intégrer une molette dans votre projet.

Articles Liés

Améliorer la lecture à vue

Améliorer la lecture à vue

si votre instrument est le piano, hautbois, batterie ou votre voix, lecture à vue est une compétence essentielle pour un musicien d'avoir. Ce Instructable va vous apprendre comment améliorer vos compétences de lecture à vue sur votre instrument.Étape
Arduino facile des Menus pour les encodeurs rotatifs

Arduino facile des Menus pour les encodeurs rotatifs

Encodeurs rotatifs avec centre - boutons-poussoirs sont cool d'entrée matériel pour les projets, surtout si vous voulez être en mesure de faire défiler les menus et sélectionnez options. J'espère que ce Instructable vous donnera la confiance nécessai
Arduino basé jeu de Pong Bi-color LED Matrix

Arduino basé jeu de Pong Bi-color LED Matrix

Nous avons créé deux projet de jeu instructables jusqu'en utilisant les kits Bi-color LED Matrix Driver Module SLT jolliFactory que nous avons conçu. Ce module LED Matrix est conçu pour pouvoir chain-donc vous pouvez chaîner les modules ensemble au n
Contrôleur de Volume PC USB Media basé sur Arduino

Contrôleur de Volume PC USB Media basé sur Arduino

Bonjour à tous et Bienvenue sur mon troisième Instructable.Un de mes amis a un système de son avec un cadran de réglage du volume, et il est assis sur son bureau à la recherche de vraiment bien. Je voulais quelque chose de semblable, mais avec des fo
Mise en route du Kit Arduino (débutant)

Mise en route du Kit Arduino (débutant)

Salut les gars, l'Arduino Starter Kit fourni par ElecFreaks (portant sur Open hardware 4 ans) est un excellent matériau pour permettre aux utilisateurs dans l'apprentissage étape par étape idéalement. Pour ce kit, il n'y a pas besoin de souder, prise
Arduino pour MySQL Python en utilisant l’interface

Arduino pour MySQL Python en utilisant l’interface

Voici un bref tutoriel qui devrait vous lever et courir interfacer votre Adruino avec une base de données MySQL. Pour des raisons de ce tutoriel, je suppose que vous savez comment configurer et utiliser MySQL. Ce tutoriel ne nécessite pas beaucoup d'
Comment contrôler la carte arduino à l’aide d’un téléphone android et un module bluetooth

Comment contrôler la carte arduino à l’aide d’un téléphone android et un module bluetooth

dans ce tutoriel, vous apprendrez comment utiliser un module bluetooth et inventeur app du MIT pour créer une liaison série sans fil entre un téléphone android et une carte arduino.Voici une courte vidéo montrant un exemple d'application que j'ai cré
Arduino Nano et Visuino : Servo avec molette de contrôle

Arduino Nano et Visuino : Servo avec molette de contrôle

Il y a beaucoup de Instructables sur commande Servo avec potentiomètre, mais parfois il est utile de le contrôler avec un Encodeur rotatif. Dans ce Instructable, je vais vous montrer comment il est facile d'appliquer cela à l'aide de Visuino - un env
Arduino Bluetooth HomeControl (Android)

Arduino Bluetooth HomeControl (Android)

SalutIl s'agit d'un dispositif que j'ai fait pour contrôler 2 sorties sur une application android.vous pouvez connecter des lumières, machine à café, tout est possible.Je l'ai fait avec 3 sockets(Outlets) de puissance2 prises est d'être alimenté par
Arduino Shooting Target Game

Arduino Shooting Target Game

Il s'agit d'un projet que j'ai fait pour mon hobby de tir avec des pistolets co2. J'avais besoin d'un plaisir mais un bon jeu pour travailler sur ma vitesse pour tirer sur des cibles. Après une petite recherche sur Google sur internet j'ai trouver qu
Arduino Nano : Encodeur rotatif avec Visuino

Arduino Nano : Encodeur rotatif avec Visuino

Les encodeurs rotatifs sont des capteurs de rotation précis très utile, aussi souvent utilisés comme dispositifs d'entrée au lieu de potentiomètres contrôlé par l'utilisateur. Ils sont faciles à connecter à l'Arduino, et avec l'aide de Visuino - un e
ARDUINO commandé par moteur avec bouton rotatif et l293d ou puce SN754410NE

ARDUINO commandé par moteur avec bouton rotatif et l293d ou puce SN754410NE

Commande de moteur est très utile pour beaucoup de projets de bricolage. Dans la plupart des cas, le microcontrôleur peut contrôler tous les mouvements du stepper, mais dans certains cas, vous pouvez contrôler manuellement le moteur pas à pas pour ré
Un spectrophotomètre microplaques Arduino alimenté par

Un spectrophotomètre microplaques Arduino alimenté par

Spectrophotomètres sont communs pièces d'équipement dans un laboratoire de sciences biologiques. Ils exécutent une fonction simple - pour mesurer la quantité de lumière a liquide absorbe à une longueur d'onde particulière. De nombreux produits chimiq
RFI-DJ: MP3 lecture RFID chose

RFI-DJ: MP3 lecture RFID chose

The RFI-DJ est un périphérique USB pour lecture de fichiers MP3 de votre ordinateur. Vous avez un ensemble de cartes RFID, chacun avec un nom de chanson écrit à ce sujet. Vous choisissez une carte et placez sur la RFI-DJ, et votre ordinateur va jouer